Mundarija:

Wi -Fi yoqilgan OLED ESP32 avtomobil o'lchagichlari: 3 qadam (rasmlar bilan)
Wi -Fi yoqilgan OLED ESP32 avtomobil o'lchagichlari: 3 qadam (rasmlar bilan)

Video: Wi -Fi yoqilgan OLED ESP32 avtomobil o'lchagichlari: 3 qadam (rasmlar bilan)

Video: Wi -Fi yoqilgan OLED ESP32 avtomobil o'lchagichlari: 3 qadam (rasmlar bilan)
Video: Почему надо изучать китайский язык? Удивительные цифры и факты за последние 10 лет развития Китая 2024, Dekabr
Anonim
Image
Image
Wi -Fi yoqilgan OLED ESP32 avtomobil o'lchagichlari
Wi -Fi yoqilgan OLED ESP32 avtomobil o'lchagichlari

Tanishuvlar birinchi…

Men mashina o'lchagichlarini qayta -qayta sevimli mashg'ulot sifatida quraman. Yana ikkita yangi misol uchun https://www.instructables.com/id/Remote-Car-Monit… va https://www.instructables.com/id/Remote-Car-Monit… ga qarang. Menga, ayniqsa, mashinaning asl qismlari bilan uyg'unlashganlari yoqadi. Xo'sh, nima uchun bu boshqacha va uni qurishga ilhomlantirgan narsa. Javob ikkita narsadan iborat:

1) ESP32 - Men yangi bolani blok -chipda sinab ko'rmoqchi edim, ayniqsa arduino -ga asoslangan asboblar zanjiri etuk bo'lgani uchun. ESP32 -ni yoqadigan qiziqarli narsalardan biri bu o'rnatilgan Wi -Fi va bluetooth imkoniyatlari bilan IOT. Jamiyat buni osonlashtirish uchun bir nechta kutubxonalar yozgan (veb -serverlar, AP -lar, wifi -mijozlar, mDNS va boshqalar).

2) Arzon OLED ekranlar - 2007 yilda men GD (2004-2007) WRX -da soat o'rnida o'tirgan TFT yordamida o'lchagich yasadim. TFT turli xil ta'mga ega. Ba'zilar kechasi, ba'zilari kunduzi yaxshi ishlaydi va hokazo. Lekin ularning hech biri hamma sharoitda ishlamaydi. Men forum a'zosining quyoshli kunida men ishlatgan o'lchagichlardan biri befoyda bo'lmaguncha, men xatolarimni tushunmadim. Avtomobil ilovalari uchun ajoyib bo'lgan OLED -ga kiring. Ular tunda juda yorug 'emas va (eng muhimi) quyosh nuri ko'p bo'lgan sharoitda ko'rinadi.

Bu ikkitasi bitta, chunki men hamma narsani ikkita oddiy avtomobil o'lchagich, yog 'bosimi va turbo bosimi uchun yozganman. Ikkalasi ham aslida bir xil: kichik raqamli va maksimallar ko'rsatiladigan jonli analogli OLED displeyli kichik form faktor o'lchagichi. Ikkalasi ham Wi -Fi AP va veb -server sifatida ishlaydi. Ularga kompyuter yoki uyali telefon orqali ulansangiz, EKG tipidagi harakatlanuvchi diagramma ko'rinadi (bu biroz innovatsion qism).

Ta'minotlar

HELTEC ESP32 moduli-wifi variantini oling

Yog 'bosimining o'ziga xos qismlari:

Yog 'bosimi sensori - Men avtomat 5222 dan foydalanardim. Yog' bosimi sensori ulanish qismlari - bu mashinaga va o'rnatish joyiga qarab o'zgaradi. Iltimos, xizmat ko'rsatmalari, forumlar, texnikalar va boshqalarga murojaat qiling va buni to'g'ri bajaring, shunda yog 'oqmasligi mumkin

Quvvat o'lchagichning maxsus qismlari:

  • Havo bosimi sensori (agar siz kuchaytirgichni o'rnatmoqchi bo'lsangiz)
  • Havo shlangi
  • T armatura

Men foydalangan kutubxonalar ajralmas edi:

Smoothiecharts - https://smoothiecharts.org/ Zo'r va engil jonli yangilanish jadvallari. Juda moslashtirilgan va Internetdagi boshqa joyda JS kutubxonasiga murojaat qilishga tayanmaydi. Bu "mahalliy-IOT" turini o'rnatishga imkon beradi va butun kutubxona bitta satrga joylashtirilgan bo'lib, veb-server kodida ko'rsatiladi!

ESPAsyncWebServer -https://github.com/me-no-dev/ESPAsyncWebServer- qutida aytilganini qiladi va yaxshi bajaradi.

ThingPulse OLED grafik kutubxonasi (ba'zan squix kutubxonasi deb ham ataladi) - https://github.com/ThingPulse/esp8266-oled-ssd130… - ESP chiplari uchun juda samarali va sodda grafikalar. Menga dangasa dasturlash va hali ham ishonchli animatsiyalar olishimga ruxsat berdi.

Asboblar/boshqa:

lehimlantiruvchi temir - datchiklar uchun uzun kabel o'tkazgichlarini o'rnatish, bortga sarlavhalarni o'rnatish, qisish o'rashini qisqartirish va boshqalar uchun ishlatiladi.

tornavida/rozetkalar/boshqa avtomobil asboblari - datchiklarni mashinaga o'rnatish uchun zarur

ikki tomonlama lenta - korpusga o'lchagichlarni o'rnatish va mashinaga uyni o'rnatish uchun (issiq elim va boshqa narsalar ishlashi mumkin, lekin men 3M tashqi qirrali lentani afzal ko'raman. U yaxshi ushlab turadi va hech narsaga zarar bermasdan tortib olinishi mumkin.)

qaychi - lenta va quvur va fermuarlarni kesish uchun

zip -rishtalar - narsalarni bir -biriga bog'lab qo'yish, simlarni chiziq ostiga va dvigatel bo'lagiga ulash, datchiklarni joyida ushlab turish va hk.

1 -qadam: kod birinchi/apparat ikkinchi

Birinchi kod/ikkinchi apparat
Birinchi kod/ikkinchi apparat
Birinchi kod/ikkinchi apparat
Birinchi kod/ikkinchi apparat

Kodni bu yerdan yuklab olish mumkin:

Yog 'bosimi -

Bosimni kuchaytirish -

Analog ko'rinish o'lchagichlari o'rniga yuzlar bilan bosimni oshiring -

Grafik kodi: ThingPulse kutubxonasi juda samarali, siz xbms -ni bir -birining ustiga chizishingiz va ishonchli natijalarga erishishingiz mumkin!

O'lchov tasvirlari aslida ochiq manbali grafik omboridan olingan (https://thenounproject.com/). Rassom Iconic, CY (https://thenounproject.com/icon/490005/).

Men gimpdan foydalanib, igna har bir belgini ko'rsatadigan 20 xil ramka yaratdim. Tabassumli piktogramma NOVITA ASTRI, ID va bu erda:

Keyin men bu usul yordamida bularni const uint8_t massivlariga aylantirdim (ishora: agar siz ularni ko'rsatganda ranglar teskari bo'lsa, asl nusxadagi ranglarni teskari aylantiring): https://blog.squix.org/2015/05/esp8266- nodemcu-ho …

Jonli animatsiya kodi juda oddiy:

  • Sensordan o'qishni oling
  • O'lchovni o'qish (men ijobiy ko'tarish qiymatlari uchun 1 dan 1 gacha qildim va ignani faqat kuchaytirilganda harakatlantiraman, vakuumda emas)
  • Xbm chizib, keyin hamma narsaga raqam belgilarini qo'ying.
  • yuving va takrorlang

Sensor kodi: Men boshqa ikkita loyihada ishlatilgan sensor kodini qayta ishlataman. Men datchiklardan qochish uchun o'rtacha ko'rsatkichlarni qo'shdim. Bu har bir "o'qish" ni o'qishni o'rtacha 5 o'qishni o'z ichiga oladi.

Boost kodi (sensor 0-5 voltli analog valni beradi, ADC esa 0-1024 gacha).

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 uchun /6.89 ning qoldirilishi ResultPSI = ((((rboost /4095) + 0.04) /0.004) * 0.145 - atmo; // 0.145 ga psi ni hisoblash uchun // esp32 /*rBoost = rBoost + 1 da 4096 qiymatlari; agar (rBoost> = 20) {rBoost = 0; }*/ qaytish (NatijaPSI); }

Yog 'bosimi kodi (datchik o'z qarshiligini sezadigan bosimga qarab o'zgartiradi, shuning uchun uni 0-5v kuchlanishgacha aylantirish uchun kuchlanish taqsimlagichi kerak: qarang: https://electronics.stackexchange.com/questions/3…https:/) Qo'shimcha ma'lumot olish uchun /www.instructables.com/id/Remote-Car-Monito… (pastda)):

int getOilPSI () {float psival = ((analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36))/5); psival = -0.0601*psival + 177.04 - 14.5; psivalni qaytarish; }

Veb -server va AP -ning funktsional imkoniyatlari: AP -ning funksionalligi juda oddiy - siz uzatmoqchi bo'lgan ESSID va parol bilan AP ob'ektini tuzing va siz borishingiz mumkin.

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

WiFi.softAP (ssid, parol);

U hatto DHCP -serverga ega, shuning uchun bu haqda tashvishlanmang. Odatiy bo'lib, uning IP -manzili 192.168.1.4 (nima uchun ekanligini bilmayman, aynan shu tanlangan). Veb -server biroz murakkabroq va biroz tadqiqotni talab qiladi. Asosan, siz asinxron veb -serverni xohlaysiz, shunda u jonli yangilanish ma'lumotlarini olishi mumkin. Yaxshiyamki, buning uchun kutubxona bor. Men JavaScript -ni ishlab chiquvchi emasman, shuning uchun men smetali jadvallarda qoqilmagunimcha, ko'plab grafik va grafik kutubxonalar bilan shug'ullanardim. Boshqa ko'plab grafik kutubxonalar shunday yozilganki, ular veb -saytdagi boshqa kutubxonalardan har qanday kodni meros qilib oladilar, ular sahifa ko'rsatilganda dinamik ravishda yuklanadi. Men buni Internetdan mustaqil ishlashini xohlardim, shuning uchun bu katta topilma edi. Ikkinchidan, u arduino -ga mos keladigan darajada kichik bo'lishi kerak edi va kodda ko'rib turganingizdek, u bitta char qatoriga mos keladi.

Veb -server e'lonlari: #include AsyncTCP.h #include ESPAsyncWebServer.h… AsyncWebServer serveri (80); // uni ishga tushiring va portni tanlang (80-http uchun standart)… server.on ("/", HTTP_GET, (AsyncWebServerRequest *so'rovi) {request-> yuborish (200, "text/html", "… //) katta sahifadagi veb -sahifa + silliq jadvallar kutubxonasi}); server.on ("/val", HTTP_GET, (AsyncWebServerRequest *so'rovi) {// birinchi sahifa aslida qiymat so'rovini qaytaradigan juda kichik sahifani chaqiradi. -> yuborish (200, "text/html", Sboost);}); server.begin ();

2 -qadam: Uskuna va simlarni ulash

Uskuna va simlar
Uskuna va simlar
Uskuna va simlar
Uskuna va simlar
Uskuna va simlar
Uskuna va simlar

Galereyada men foydalanadigan ikkita sensor tasvirlangan. Oltin rangli katta rang - bu avtometr 2242 yog 'bosimi sensori. Ushbu sensorning tanasi va ipi erga ulangan va terminali qarshilik ko'rsatkichidir.

Avtometr har qanday sensori uchun bosimga yoki haroratga qarshilik egri chizig'ini beradi. Men buni kuchlanish taqsimlagich yordamida kuchlanishga aylantirdim (ulanish sxemasiga qarang).

MPX4250AP havo bosimi sensori uchta jonli va bir nechta ishlatilmaydigan pinlarga ega. Ular V kirish, er va sensor chiqishi. U mikrokontroler tomonidan o'qilishi mumkin bo'lgan 0-5V ko'rsatkichini chiqaradi (yoki bu 0-3 voltsli mcu holatida. Shunday qilib, datchik ko'rsatkichi kuchlanish bo'luvchi yordamida kamaytiriladi). Maxsus varaqni bu erda topish mumkin:

Mantiqni 5v dan 3v gacha kamaytirishda bir nechta muammolar mavjud. Mening holatimda men kuchlanish taqsimlagichidan foydalandim va ishchi dastgohim atrofidagi qismlarga ega bo'ldim. Siz qo'shimcha komponentlarning (ikkita qarshilik) mumkin bo'lgan xatosiga asoslanib, o'qishga ozgina xato kiritasiz. Bu ba'zi hollarda o'qishlaringizni 10% ga kamaytirishi mumkin. Men bu bilan yashashim mumkin. Agar qila olmasangiz, siz opamp va rezistorlar yoki mantiq darajasidagi konvertorni ishlatishni xohlashingiz mumkin (har xil elektronika sotuvchilarida mavjud. Sparkfun bu erda: https://www.sparkfun.com/products/12009) Men ba'zida bu o'lchagichda yuqori ko'rsatkichlarga ega bo'laman (aslida men ushbu mahsulotni simlar sxemasida ko'rsatganman).

Men ESP32 -ni USB orqali quvvatlantirdim. Bunga to'g'ridan -to'g'ri zaryadlash moslamasini ulash kiradi: https://www.amazon.com/gp/product/B00U2DGKOK/ref=p… mashinaga, so'ng uni ajratish uchun USB uyadan foydalaning. Ko'ryapsizmi, men hamma narsani kichik maydonda ishlashini ta'minlash uchun to'g'ri burchakli usb kabellaridan foydalanganman (https://www.amazon.com/gp/product/B00ENZDFQ4/ref=p…).

Boshqa fotosuratlarda men teshiklarni kesib tashlagan yoki sim o'tkazgan joylar ko'rsatilgan. Har bir mashina boshqacha bo'ladi. Ehtiyot bo'ling, pichoqlar va qaychi o'tkir, elektr xavfli bo'lishi mumkin, shuning uchun simlarni ulashdan oldin batareyani ajratib oling.

3 -qadam: 3D bosma uy

3D bosma uy
3D bosma uy

Buning uchun men bir nechta 3D bosma korpuslardan foydalanganman.

  • Umumiy katta 2 ekranli dumaloq o'lchagich. Buni birinchi sahifadagi rasmlarda ko'rishingiz mumkin. Men uni soatim yoniga qo'ydim.
  • Taxminan 2008-2014 yillar oralig'ida subaru impreza (wrx, sti va h.k.) soat sohasiga mos keladigan bitta o'lchovli xanjar.
  • Rulda ustunlari va boshqa bir oz yumaloq yuzalarga mos keladigan ikki o'lchovli bo'lak:

Siz ularni ehtiyojlaringizga mos ravishda nusxalashingiz va o'zgartirishingiz mumkin. Ularning hech biri mukammal emas va ularning hammasi biroz sozlashni talab qiladi.

Ba'zi eslatmalar:

  • Men o'zimni plastidip bilan tugatdim; bu dangasalarning afzal ko'rgan usuli.
  • Zımpara plastmassalari mayda zarrachalarni hosil qiladi, bu siz uchun yaxshi emas, mos niqobdan foydalaning.
  • Men uylar uchun PETG ishlatardim. ABS ham yaxshi. PLA asboblar panelida issiq quyoshda burishadi.
IoT Challenge
IoT Challenge
IoT Challenge
IoT Challenge

IoT tanlovida ikkinchi mukofot

Tavsiya: