OLED ESP32 mjerači za automobile s Wi -Fi funkcijom: 3 koraka (sa slikama)
OLED ESP32 mjerači za automobile s Wi -Fi funkcijom: 3 koraka (sa slikama)
Anonim
Image
Image
OLED ESP32 mjerači za automobile s Wi -Fi funkcijom
OLED ESP32 mjerači za automobile s Wi -Fi funkcijom

Prvo upoznavanje…

Izrađujem mjerače za automobile kao neku vrstu hobija iznova i iznova. Pogledajte https://www.instructables.com/id/Remote-Car-Monit… i https://www.instructables.com/id/Remote-Car-Monit… za dva novija primjera. Posebno mi se sviđaju oni koji se stapaju s originalnim dijelovima automobila. Dakle, zašto je ovaj drugačiji i što me inspiriralo da ga izgradim. Odgovor je dvije stvari:

1) ESP32 - Htio sam isprobati novog klinca na blok čipu, pogotovo jer je lanac alata baziran na arduinu prilično zreo. Jedna od zanimljivosti koju ESP32 omogućuje je IOT s ugrađenim mogućnostima wifi i bluetooth. Zajednica je napisala više knjižnica kako bi to učinilo pomalo jednostavnim (web poslužitelji, pristupne točke, wifi klijenti, mDNS itd. Itd.).

2) Jeftini OLED ekrani - Još 2007. napravio sam mjerač pomoću TFT -a koji je sjedio na mjestu sata na GD (2004-2007) WRX. TFT dolazi u raznim okusima. Neki rade bolje noću, neki bolje danju itd. Ali nitko od njih ne radi u svim uvjetima. Nisam shvatio pogrešku u svom načinu rada sve dok jedan od mjerača koje sam koristio nije bio beskoristan tijekom sunčanog dana člana foruma. Unesite OLED, koji su izvrsni za automobilske aplikacije. Noću nisu previše svijetli i (što je još važnije) vidljivi su u većini sunčevih zraka.

Ovo je instrukcija dva za jednog jer sam napisao sve za dva uobičajena mjerača automobila, tlak ulja i turbo tlak. Oboje su u biti ista stvar: mali mjerač faktor oblika s OLED zaslonom analognog izgleda s prikazanim diskretnim brojevima i maksimumima. Oboje također funkcioniraju kao WiFi pristupnici i web poslužitelji. Kad se s njima povežete putem računala ili mobitela, može se vidjeti pokretna tablica EKG stila (ovo je pomalo inovativan dio).

Pribor

HELTEC ESP32 modul-nabavite WiFi varijantu

Dijelovi specifični za tlak ulja:

Senzor tlaka ulja - koristio sam dijelove za spajanje senzora tlaka ulja 5222 - to ovisi o automobilu i mjestu ugradnje. Molimo vas da pogledate servisne priručnike, forume, mehaniku itd. I učinite to ispravno kako ne bi došlo do curenja ulja

Posebni dijelovi mjerača pojačanja:

  • Senzor tlaka zraka (samo ako želite napraviti mjerač pojačanja) -
  • Crijevo za zrak
  • T armature

Knjižnice koje sam koristio bile su neophodne:

Smoothiecharts - https://smoothiecharts.org/ Izvrsni i lagani grafikoni za ažuriranje uživo. Vrlo prilagodljivo i ne oslanja se na pozivanje na js biblioteku negdje drugdje na internetu. To omogućuje postavljanje tipa "lokalni-IOT", a cijela knjižnica staje u jedan niz za izjavu web poslužitelja u kodu!

ESPAsyncWebServer -https://github.com/me-no-dev/ESPAsyncWebServer- radi ono što piše na kutiji i čini to dobro

ThingPulse OLED grafička biblioteka (ponekad se naziva i biblioteka squix) - https://github.com/ThingPulse/esp8266-oled-ssd130… - vrlo učinkovita i jednostavna grafika za ESP čipove. Dopustio mi je da se bavim lijenim programiranjem i još uvijek dobijem uvjerljive animacije.

Alati/ostalo:

lemilica - koristi se za izradu dugih kablova za senzore, ugradnju zaglavlja na ploču, skupljanje skupljajućeg omota itd.

odvijač/utičnice/drugi automobilski alati - potrebni za ugradnju senzora na automobil

dvostrana traka - za ugradnju mjerača u kućišta i ugradnju kućišta u automobil (vruće ljepilo i druge stvari bi mogle uspjeti, ali više volim 3M dvostranu vanjsku traku za ukrašavanje. Dobro se drži i može se skinuti bez oštećenja.)

škare - za traku i rezanje cijevi i patentnih zatvarača

patentni zatvarači - za držanje stvari zajedno, povezivanje žica ispod armature i u motornom prostoru, držanje senzora na mjestu itd.

Korak 1: Prvo kodirajte/Drugo hardver

Kod prvi/Hardver drugi
Kod prvi/Hardver drugi
Kod prvi/Hardver drugi
Kod prvi/Hardver drugi

Kôd se može preuzeti ovdje:

Tlak ulja -

Pojačaj pritisak -

Povećajte tlak s licima umjesto analognih mjerača pogleda -

Grafički kod: Knjižnica ThingPulse toliko je učinkovita da možete crtati xbms jedan na drugi i dobiti uvjerljive rezultate!

Slike mjerača zapravo su došle iz grafičkog spremišta otvorenog koda (https://thenounproject.com/). Umjetnik Iconic, CY (https://thenounproject.com/icon/490005/).

Koristio sam gimp za generiranje 20 različitih okvira s iglom usmjerenom prema svakoj oznaci. Ikone nasmijanog lica su NOVITA ASTRI, ID i nalaze se ovdje:

Zatim sam sve ovo pretvorio u const uint8_t nizove ovom tehnikom (savjet: ako su boje obrnute kada ih prikažete, samo obrnite boje na izvorniku): https://blog.squix.org/2015/05/esp8266- nodemcu-ho…

Kôd animacije uživo prilično je jednostavan:

  • Očitajte sa senzora
  • Očitavanje ljestvice (napravio sam 1 do 1 za pozitivne vrijednosti poticaja i pomaknuo iglu samo kad je u pojačanju, a ne kad je u vakuumu)
  • Nacrtajte xbm, a zatim za sve ostalo zapišite brojčane znakove.
  • isperite i ponovite

Kod senzora: Ponovno koristim kod senzora koji sam koristio za ova dva senzora za nekoliko drugih projekata. Dodao sam malo usrednjavanja kako bih se maknuo od skakavih senzora. To uključuje čitanje svakog "čitanja" u prosjeku 5 čitanja.

Boost code (senzor daje analogni val od 0-5 volti koji ADC pretvara u korake od 0-1024):

int getBoost () {float rboost = ((analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36))/5); // rezultat s plutanjemPSI = (rboost*(. 00488)/(. 022) +20) /6.89 - atmosfera; // napuštanje /6.89 za kpa plovak RezultatPSI = (((rboost /4095) + 0.04) /0.004) * 0.145 - atmosfera; // za 0,145 do calc psi // 4096 vrijednosti na esp32 /*rBoost = rBoost + 1; if (rBoost> = 20) {rBoost = 0; }*/ return (RezultatPSI); }

Kôd tlaka ulja (osjetnik mijenja svoj otpor ovisno o tlaku koji osjeti pa je potreban razdjelnik napona da se to pretvori u napon od 0-5 V vidi: https://electronics.stackexchange.com/questions/3…https:/ /www.instructables.com/id/Remote-Car-Monito…(do dna) za više informacija):

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

Funkcionalnost web poslužitelja i pristupne točke: Funkcionalnost pristupne točke prilično je jednostavna - napravite instancu i AP objekt s ESSID -om koji želite emitirati i lozinkom i spremni ste.

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

WiFi.softAP (ssid, lozinka);

Čak ima i DHCP poslužitelj pa se ne morate brinuti oko toga. Prema zadanim postavkama IP je 192.168.1.4 (nemam pojma zašto, to je ono što sam odabrao). Bit web poslužitelja je malo zeznutiji i zahtijeva malo istraživanja. U osnovi želite asinhroni web poslužitelj kako bi mogao primati ažurirane podatke uživo. Srećom za to postoji knjižnica. Nisam programer javascripta pa sam se pozabavio hrpom biblioteka za grafikone i grafikone sve dok nisam naletio na smoothie grafikone. Većina drugih knjižnica grafikona napisana je tako da nasljeđuje sve vrste koda iz drugih knjižnica sa cijelog weba koje se dinamički učitavaju prilikom generiranja stranice. Htio sam da ovo radi neovisno o internetu pa je ovo bilo veliko otkriće. Drugo, morao je biti dovoljno mali da stane na arduino i kao što vidite u kodu stane u jedan niz znakova.

Deklaracije web poslužitelja: #include AsyncTCP.h #include ESPAsyncWebServer.h… AsyncWebServer poslužitelj (80); // instancirajte ga i odaberite port (80 je standard za http)… server.on ("/", HTTP_GET, (AsyncWebServerRequest *zahtjev) {request-> send (200, "text/html", "… // web stranica + biblioteka smoothiecharts u velikom nizu znakova}); server.on ("/val", HTTP_GET, (AsyncWebServerRequest *zahtjev) {// prva stranica zapravo poziva ovu vrlo malu stranicu koja samo vraća zahtjev za vrijednost -> send (200, "text/html", Sboost);}); server.begin ();

Korak 2: Oprema i ožičenje

Hardver i ožičenje
Hardver i ožičenje
Hardver i ožičenje
Hardver i ožičenje
Hardver i ožičenje
Hardver i ožičenje

Na slici u galeriji su dva senzora koja koristim. Veliki zlatne boje je senzor pritiska ulja Autometer 2242. Tijelo i navoj ovog senzora su uzemljeni, a terminal je očitanje otpora.

Autometar će vam pružiti krivulju otpora prema tlaku ili otpornosti na temperaturu za bilo koji od njihovih senzora. Pretvorio sam ovo u napon pomoću razdjelnika napona (vidi dijagram ožičenja).

Senzor tlaka zraka MPX4250AP ima tri igle pod naponom i nekoliko neiskorištenih pinova. To su V ulaz, uzemljenje i izlaz senzora. On daje očitanje 0-5v koje može očitati mikrokontroler (ili u slučaju ovog mcu 0-3 volti. Dakle, očitanje senzora se smanjuje pomoću razdjelnika napona.). Tehnički list za njega možete pronaći ovdje:

Postoji nekoliko problema u smanjenju logike s 5v na 3v. U mom slučaju koristio sam razdjelnik napona radi jednostavnosti i imao sam dijelove oko radnog stola. U čitanja ćete unijeti malu pogrešku na temelju moguće pogreške dodatnih komponenti (dva otpornika). To bi u nekim slučajevima moglo učiniti vaša očitanja 10% popusta. Mogu živjeti s ovim. Ako ne možete, možda ćete htjeti upotrijebiti opamp i otpornike ili pretvarač logičke razine (dostupno od različitih dobavljača elektronike. Sparkfun ima jedan ovdje: https://www.sparkfun.com/products/12009 Mogu se prebaciti na njega kao Ponekad dobijem visoka očitanja na ovom mjeraču (zapravo sam prikazao ovaj proizvod na dijagramu ožičenja).

Napajao sam ESP32 preko USB -a. To je uključivalo ožičenje izravnog punjača poput ovog: https://www.amazon.com/gp/product/B00U2DGKOK/ref=p… na automobil, a zatim pomoću USB čvorišta za njegovo razdvajanje. Možete vidjeti da sam koristio pravokutne USB kabele kako bih osigurao da sve radi na malom području (https://www.amazon.com/gp/product/B00ENZDFQ4/ref=p…).

Ostale fotografije prikazuju mjesta gdje sam izrezao rupe ili žicu. Svaki automobil bit će drugačiji. Budite oprezni, noževi i škare su oštri, struja može biti opasna pa odspojite bateriju prije ožičenja.

Korak 3: 3D ispisano kućište

3D tiskano kućište
3D tiskano kućište

Za to sam koristio nekoliko 3D tiskanih kućišta.

  • Opći okrugli mjerač s 2 ekrana. To možete vidjeti na slikama prve stranice. Stavio sam ga pored sata na crticu.
  • Klinasti klin s jednim kolosijekom koji se uklapa u područje sata Subaru impreze (wrx, sti itd.) Od približno 2008. do 2014.
  • Komad s dvostrukim kolosijekom koji pristaje na stupove upravljača i druge blago zaobljene površine:

Možete ih kopirati i izmijeniti kako bi odgovarali vašim potrebama. Nijedan od njih nije savršen i svi će zahtijevati malo prilagođavanja.

Neke napomene:

  • Ja sam svoj završio s plastidipom; to je omiljena metoda lijenih.
  • Brušenje plastike stvara fine čestice koje nisu dobre za vas, upotrijebite odgovarajuću masku.
  • Koristio sam PETG za stanovanje. ABS je također dobar. PLA će se iskriviti na vrućem suncu na nadzornoj ploči.
IoT izazov
IoT izazov
IoT izazov
IoT izazov

Druga nagrada u IoT Challengeu