Мазмуну:

Wifi иштетилген OLED ESP32 унаа көрсөткүчтөрү: 3 кадам (сүрөттөр менен)
Wifi иштетилген OLED ESP32 унаа көрсөткүчтөрү: 3 кадам (сүрөттөр менен)

Video: Wifi иштетилген OLED ESP32 унаа көрсөткүчтөрү: 3 кадам (сүрөттөр менен)

Video: Wifi иштетилген OLED ESP32 унаа көрсөткүчтөрү: 3 кадам (сүрөттөр менен)
Video: Использование карты Micro SD и регистрация данных с Arduino | Пошаговый курс Arduino, урок 106 2024, Ноябрь
Anonim
Image
Image
Wifi иштетилген OLED ESP32 унаа көрсөткүчтөрү
Wifi иштетилген OLED ESP32 унаа көрсөткүчтөрү

Биринчи тааныштыруулар…

Мен машинанын өлчөгүчтөрүн кайра -кайра хобби катары жасайм. Акыркы эки мисал үчүн https://www.instructables.com/id/Remote-Car-Monit… жана https://www.instructables.com/id/Remote-Car-Monit… караңыз. Өзгөчө унаанын оригиналдуу тетиктери менен аралашып кеткендерди жакшы көрөм. Демек, бул эмне үчүн башкача жана аны курууга эмне түрткү болгон. Жооп эки нерсе:

1) ESP32 - Мен жаңы баланы блок чипинде сынап көргүм келди, айрыкча arduino негизделген инструмент жетилгендиктен. ESP32 иштеткен кызыктуу нерселердин бири - Wi -Fi жана bluetooth мүмкүнчүлүктөрү бар IOT. Коомчулук муну бир аз түшүнүктүү кылуу үчүн бир нече китепканаларды жазган (веб -серверлер, AP, wifi кардарлары, mDNS ж. Б.).

2) Арзан OLED экрандары - Артка 2007 -жылы мен GD (2004-2007) WRX боюнча сааттын ордуна отурган TFTди колдонуп ченегич жасадым. TFT ар кандай даамдарда келет. Кээ бирлери түнкүсүн жакшыраак иштесе, кээ бири күндүз жакшыраак иштейт ж.б.. Бирок алардын эч бири бардык шарттарда иштебейт. Форум мүчөсүнүн күн ачык күнүндө мен колдонгон өлчөгүчтөрдүн бири пайдасыз болгонго чейин, жолдорумдун катасын түшүнгөн жокмун. Автомобилдик тиркемелер үчүн эң сонун OLEDди киргизиңиз. Алар түнкүсүн өтө жарык эмес жана (эң маанилүүсү) күндүн көпчүлүк шарттарында көрүнөт.

Бул экөөнү үйрөтүүгө болот, анткени мен бардыгын эки жалпы унаа өлчөгүчтөргө, мунай басымына жана турбо басымына жазгам. Экөө тең негизи бир нерсе: кичинекей формалык көрсөткүч, дискреттүү сандар жана максимумдары бар анималдуу OLED дисплейи бар. Экөө тең wifi AP жана веб -сервер катары иштешет. Аларга компьютер же уюлдук телефон аркылуу туташканда, ЭКГнын кыймылдуу диаграммасы көрүнүп турат (бул бир аз инновациялык бөлүгү).

Жабдуулар

HELTEC ESP32 модулу-wifi вариантын алыңыз

Мунай басымынын атайын бөлүктөрү:

Мунай басымынын сенсору - Мен 5222 мунай басымынын сенсорун туташтыруучу автоматтарды колдондум - бул машинага жана орнотулган жерге жараша өзгөрөт. Сураныч, кызмат көрсөтмөлөрүнө, форумдарга, техникаларга ж.б. кайрылыңыз жана муну эч кандай агуу болбошу үчүн туура жасаңыз

Өлчөгүчтүн конкреттүү бөлүктөрү:

  • Аба басымынын сенсору (эгер сиз күчөткүчтү жасоону кааласаңыз) -
  • Аба шланг
  • T фитингдери

Мен колдонгон китепканалар алмаштыргыс:

Smoothiecharts - https://smoothiecharts.org/ Мыкты жана жеңил жандуу диаграммалар. Абдан ыңгайлаштырылган жана интернеттеги башка жердеги JS китепканасына шилтеме жасоого таянбайт. Бул "local-IOT" түрүн орнотууга мүмкүндүк берет жана бүт китепкана коддогу веб-сервердин билдирүүсү үчүн бир сапка туура келет!

ESPAsyncWebServer -https://github.com/me-no-dev/ESPAsyncWebServer- кутуда айтылгандарды аткарат жана жакшы аткарат

ThingPulse OLED графикалык китепканасы (кээде squix китепканасын чакырышат) - https://github.com/ThingPulse/esp8266-oled-ssd130… - ESP чиптери үчүн абдан натыйжалуу жана жөнөкөй графика. Мага жалкоо программалоону жасоого жана дагы деле ынанымдуу анимацияларды алууга уруксат берди.

Куралдар/башка:

ширетүүчү - сенсорлор үчүн узун кабелдик чуркоо үчүн колдонулат, бортто баштыктарды орнотуу, кичирейтүүчү ороону ж.

отвертка/розеткалар/башка унаа каражаттары - машинага сенсорлорду орнотуу үчүн керек

эки тараптуу лента - корпустарга өлчөгүчтөрдү орнотуу жана унаага корпусту орнотуу үчүн (ысык желим жана башка нерселер иштеши мүмкүн, бирок мен 3M эки жактуу сырттагы лентага артыкчылык берем. Ал жакшы кармалып турат жана эч нерсеге зыян келтирбестен сууруп алса болот.)

кайчы - скотч жана түтүктөрдү жана сыдырма байланыштарды кесүү үчүн

zip галстуктары - нерселерди чогуу кармоо, зымдарды сызыктын астына жана мотор бөлүгүнө бириктирүү, сенсорлорду кармоо ж.

1 -кадам: Code First/Hardware Second

Биринчи код/Экинчи жабдык
Биринчи код/Экинчи жабдык
Биринчи код/Экинчи жабдык
Биринчи код/Экинчи жабдык

Кодду бул жерден жүктөп алсаңыз болот:

Мунай басымы -

Boost басымы -

Аналогдук көрүнүш өлчөгүчтөрдүн ордуна жүзү бар басымды күчөтүңүз -

Графикалык код: ThingPulse китепканасы ушунчалык эффективдүү болгондуктан, xbmsти бири -биринин үстүнө чийип, ынанымдуу жыйынтыктарды ала аласыз!

Өлчөөчү сүрөттөр чындыгында ачык булак графикалык репозиторийден келген (https://thenounproject.com/). Сүрөтчү Iconic, CY (https://thenounproject.com/icon/490005/).

Мен гимпти колдонуп, ийне менен ар бир белгини көрсөткөн 20 ар кандай кадрларды түздүм. Жылмайган сүрөтчөлөр NOVITA ASTRI, ID тарабынан жазылган жана бул жерде:

Андан кийин мен бул техниканын жардамы менен мунун бардыгын const uint8_t массивдерине айландырдым (кыйытма: эгер сиз аларды көрсөткөндө түстөр тескери болсо, түпнускадагы түстөрдү тескери буруңуз): https://blog.squix.org/2015/05/esp8266- nodemcu-ho…

Жандуу анимация коду абдан жөнөкөй:

  • Сенсордон окуп алыңыз
  • Масштабдуу окуу (мен оң күчөтүүчү маанилерди 1ден 1ге чыгардым жана ийнени вакуумда болгондо эмес, күчөгөндө гана жылдырам)
  • Xbm сүрөтүн тартып, анан калган нерселердин баарына сан белгилерин коюңуз.
  • жуугула, кайталап

Сенсор коду: Мен бул эки сенсор үчүн колдонгон сенсор кодун башка долбоорлор үчүн кайра колдонуп жатам. Мен секирүүчү сенсорлордон алыс болуу үчүн орточо көрсөткүчтөрдү коштум. Буга ар бир "окуу" орточо 5 окууну окуу кирет.

Boost коду (сенсор 0-5 вольттон аналогдук вал берет, ал ADC 0-1024төн кадамдарга айланат):

int getBoost () {float rboost = ((analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36))/5); // float ResultPSI = (rboost*(. 00488)/(. 022) +20) /6.89 - atmo; // kpa float ResultPSI үчүн /6.89 калтыруу ResultPSI = (((rboost /4095) + 0.04) /0.004) * 0.145 - atmo; // 0.145 боюнча кальций псиге // esp32 /*rBoost = rBoost + 1 боюнча 4096 баалуулуктар // 4096; if (rBoost> = 20) {rBoost = 0; }*/ return (ResultPSI); }

Мунай басымынын коду (сенсор өзүнүн каршылыгын сезген басымына жараша өзгөртө алат, андыктан чыңалуу бөлгүчтү 0-5v чейин чыңалууга айландыруу үчүн караңыз: https://electronics.stackexchange.com/questions/3…https:/ /www.instructables.com/id/Remote-Car-Monito… (түбүнө карай) көбүрөөк маалымат алуу үчүн):

int getOilPSI () {float psival = ((analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36))/5); psival = -0.0601*psival + 177.04 - 14.5; псивалды кайтаруу; }

Веб -сервердин жана АРнын иштеши: APдин иштеши абдан жөнөкөй - сиз эфирге чыгаргыңыз келген ESSID менен сырсөздү түзүңүз жана барыңыз.

const char *ssid = "boost_gauge_ap"; const char *password = "password";

WiFi.softAP (ssid, сырсөз);

Ал тургай, DHCP серверине ээ, андыктан бул жөнүндө кабатыр болбоңуз. Демейки боюнча, бул IP 192.168.1.4 (эмне үчүн эч кандай түшүнүк жок, дал ушул тандалган). Веб -сервер бир аз татаалыраак жана бир аз изилдөөнү талап кылат. Негизинен сиз асинхрондук веб -серверге ээ болуңуз, ошондо ал маалыматтарды жаңыртып турат. Бактыга жараша, бул үчүн китепкана бар. Мен JavaScriptти иштеп чыгуучу эмесмин, андыктан смузи диаграммаларында мүдүрүлгөнгө чейин көптөгөн китепканалар менен графиктерди карап чыктым. Башка диаграмма китепканаларынын көпчүлүгү баракчаны көрсөткөндө динамикалык түрдө жүктөлүүчү интернеттен башка китепканалардан бардык коддорду мурастап алгыдай кылып жазылган. Мен бул интернеттен көз карандысыз иштөөнү кааладым, ошондуктан бул чоң табылга болду. Экинчиден, ал кичинекей болушу керек болчу, ал ардуиного туура келет жана коддон көрүнүп тургандай, ал бир char массивине туура келет.

Веб -сервердин декларациялары: #include AsyncTCP.h #include ESPAsyncWebServer.h… AsyncWebServer server (80); // аны түзүңүз жана портту тандаңыз (80 http үчүн стандарт болуп саналат)… server.on ("/", HTTP_GET, (AsyncWebServerRequest *өтүнүчү) {суроо-> жөнөтүү (200, "text/html", "… //) веб -баракча + smoothiecharts китепканасы чоң чар массивинде}); server.on ("/val", HTTP_GET, (AsyncWebServerRequest *өтүнүчү) {// биринчи барак чындыгында бул кичинекей баракча деп аталат, ал жөн гана маани суранычын кайтарат -> жөнөтүү (200, "text/html", Sboost);}); server.begin ();

2 -кадам: Аппараттык камсыздоо жана зымдар

Аппараттык камсыздоо жана зымдар
Аппараттык камсыздоо жана зымдар
Аппараттык камсыздоо жана зымдар
Аппараттык камсыздоо жана зымдар
Аппараттык камсыздоо жана зымдар
Аппараттык камсыздоо жана зымдар

Галереяда сүрөттөлгөн мен колдонгон эки сенсор. Чоң алтын түстүү бул Autometer 2242 мунай басымынын сенсору. Бул сенсордун корпусу жана жиби жер жана терминал каршылыкта окуу.

Автометр сизге кандайдыр бир сенсорлору үчүн кысымга же температурага каршылыктын ийри сызыгын берет. Мен муну чыңалуу бөлүштүргүч аркылуу чыңалууга айландырдым (электр схемасын караңыз).

MPX4250AP аба басымынын сенсорунда үч тирүү казык жана бир нече колдонулбаган казык бар. Алар V, жер жана сенсордун чыгышы. Бул микроконтроллер окуй ала турган 0-5в көрсөткүчүн чыгарат (же бул mcu 0-3 вольт болгон учурда. Ошентип, сенсордун көрсөткүчү чыңалуу бөлүштүргүчүнүн жардамы менен кичирейтилет.). Анын спецификалык баракчасын бул жерден тапса болот:

5vдан 3v логикасына чейин азайтууда бир нече маселелер бар. Менин учурда мен жөнөкөйлүк үчүн чыңалуу бөлүштүргүчүн колдондум жана менин жумушчу столумдун тегереги бар болчу. Сиз кошумча компоненттердин мүмкүн болгон катасына негизделген окууга бир аз ката киргизесиз (эки резистор). Бул кээ бир учурларда сиздин окууңузду 10% га арзандата алат. Мен муну менен жашай албайт. Эгер мүмкүн болбосо, сиз опампаны жана резисторлорду же логикалык деңгээлдеги которгучту колдонууну каалашыңыз мүмкүн (ар кандай электроника сатуучуларынан жеткиликтүү. Sparkfun бул жерде бар: https://www.sparkfun.com/products/12009 Мен кээде бул ченегичте жогорку көрсөткүчтөргө ээ болом (чындыгында мен бул продуктту зымдардын схемасында көрсөттүм).

Мен ESP32ди USB аркылуу иштеттим. Буга автоматтык түрдө заряддагычты зым менен кошуу кирет: https://www.amazon.com/gp/product/B00U2DGKOK/ref=p… машинага, андан кийин аны бөлүү үчүн USB хабын колдонуу. Сиз кичинекей бир жерде иштешин камсыз кылуу үчүн туура бурчтуу USB кабелин колдонгонумду көрө аласыз (https://www.amazon.com/gp/product/B00ENZDFQ4/ref=p…).

Башка сүрөттөрдө мен тешкен жерлерди же зым чуркаган жерлерди көрсөтөм. Ар бир унаа башкача болот. Этият болуңуз, бычак жана кайчы курч, электр коркунучтуу болушу мүмкүн, андыктан нерселерди өткөрүүдөн мурун батареяны ажыратып коюңуз.

3 -кадам: 3D басылган турак жай

3D басылган турак жай
3D басылган турак жай

Бул үчүн мен 3D басылган бир нече корпусту колдондум.

  • Жалпы чоң 2 экран тегерек өлчөгүч. Сиз муну биринчи беттеги сүрөттөрдөн көрө аласыз. Мен муну саатымдын жанына сызыкка койдум.
  • Болжол менен 2008-2014-жылдар аралыгында subaru impreza (wrx, sti ж.
  • Рулдук колонналарга жана башка бир аз тегеректелген беттерге туура келген кош өлчөөчү бөлүк:

Буларды сиздин муктаждыктарыңызга ылайыктап көчүрүп жана өзгөртсөңүз болот. Алардын эч бири кемчиликсиз эмес жана алардын баары бир аз жөндөөнү талап кылат.

Кээ бир эскертүүлөр:

  • Мен шахтаны пластидип менен бүтүрдүм; бул жалкоолордун артыкчылыктуу ыкмасы.
  • Пластмассаларды тазалоо сиз үчүн жакшы эмес болгон майда бөлүкчөлөрдү түзөт, тиешелүү масканы колдонуңуз.
  • Мен үйүмө PETG колдондум. ABS дагы жакшы. PLA панелинде ысык күн астында кыйшайып калат.
IoT Challenge
IoT Challenge
IoT Challenge
IoT Challenge

IoT чакырыгынын экинчи сыйлыгы

Сунушталууда: