Kazalo:
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
Najprej predstavitve…
Avtometre gradim kot nekakšen znova in spet hobi. Za dva novejša primera glej https://www.instructables.com/id/Remote-Car-Monit… in https://www.instructables.com/id/Remote-Car-Monit…. Še posebej so mi všeč tisti, ki se zlijejo z originalnimi deli avtomobila. Torej, zakaj je ta drugačen in kaj me je navdihnilo za njegovo izdelavo. Odgovor sta dve stvari:
1) ESP32 - želel sem preizkusiti novega otroka na blok čipu, še posebej, ker je veriga orodij na osnovi arduina dokaj zrela. Ena izmed zanimivosti, ki jih omogoča ESP32, je IOT z vgrajenimi možnostmi wifi in bluetooth. Skupnost je napisala več knjižnic, da bi bilo to nekoliko preprosto (spletni strežniki, dostopne točke, odjemalci wifi, mDNS itd. Itd.).
2) Poceni zasloni OLED - Leta 2007 sem naredil merilnik z uporabo TFT -ja, ki je sedel namesto ure na GD (2004-2007) WRX. TFT so različnih okusov. Nekateri bolje delujejo ponoči, drugi bolje podnevi itd. Toda nobeden od njih ne deluje v vseh pogojih. Nisem se zavedal napake svojih poti, dokler eden od merilnikov, ki sem jih uporabil, ni bil uporaben med sončnim dnem člana foruma. Vnesite OLED, ki so super za avtomobilske aplikacije. Ponoči niso preveč svetli in (kar je še pomembneje) so vidni v večini sončnih žarkov.
To je pouk dva za enega, saj sem napisal vse za dva skupna avtometra, tlak olja in turbo tlak. Oba sta v bistvu ista stvar: majhen merilnik faktorja z živim OLED zaslonom analognega videza z diskretnimi številkami in največjimi vrednostmi. Oba delujeta tudi kot dostopna točka WiFi in spletni strežnik. Ko se z njimi povežete prek računalnika ali mobilnega telefona, je viden premikajoč se grafikon stilov EKG (to je nekoliko inovativen del).
Zaloge
Modul HELTEC ESP32-dobite različico wifi
Deli, značilni za tlak olja:
Senzor tlaka olja - uporabil sem avtomatske dele 5222 senzorja tlaka olja - to je odvisno od avtomobila in lokacije namestitve. Oglejte si servisne priročnike, forume, mehaniko itd. In to storite pravilno, da ne pride do puščanja olja
Posebni deli merilnika moči:
- Senzor zračnega tlaka (samo, če želite narediti merilnik tlaka) -
- Zračna cev
- T armature
Knjižnice, ki sem jih uporabil, so bile nepogrešljive:
Smoothiecharts - https://smoothiecharts.org/ Odlične in lahke lestvice za posodabljanje v živo. Zelo prilagodljiv in se ne zanaša na sklicevanje na knjižnico js drugje na internetu. To omogoča nastavitev tipa "local-IOT" in celotna knjižnica se prilega v en niz za izjavo spletnega strežnika v kodi!
ESPAsyncWebServer -https://github.com/me-no-dev/ESPAsyncWebServer- naredi, kar piše na škatli, in to naredi dobro
Grafična knjižnica ThingPulse OLED (včasih se imenuje tudi knjižnica squix) - https://github.com/ThingPulse/esp8266-oled-ssd130… - zelo učinkovita in enostavna grafika za čipe ESP. Dovolilo mi je, da sem delal lenobno programiranje in še vedno dobil prepričljive animacije.
Orodja/ostalo:
spajkalnik - uporablja se za izdelavo dolgih kabelskih kablov za senzorje, namestitev glav na krov, skrčljivo krčenje itd.
izvijač/vtičnice/drugo avtomobilsko orodje - potrebno za namestitev senzorjev v avto
dvostranski trak - za namestitev merilnikov v ohišja in namestitev ohišja v avto (vroče lepilo in druge stvari bi lahko delovale, vendar imam raje 3M dvostranski zunanji obrobni trak. Dobro se drži in ga je mogoče odstraniti, ne da bi pri tem poškodoval stvari.)
škarje - za trak in rezanje cevi in zadrge
zadrge - za držanje stvari skupaj, povezovanje žic pod armaturno ploščo in v motornem prostoru, držanje senzorjev na mestu itd.
1. korak: Prva koda/Druga strojna oprema
Kodo lahko prenesete tukaj:
Tlak olja -
Povečajte pritisk -
Povečajte tlak z obrazi namesto analognih merilnikov pogleda -
Grafična koda: Knjižnica ThingPulse je tako zelo učinkovita, da lahko xbms narišete drug na drugega in dobite prepričljive rezultate!
Merilne slike so dejansko prišle iz odprtokodnega grafičnega skladišča (https://thenounproject.com/). Umetnik Iconic, CY (https://thenounproject.com/icon/490005/).
Uporabil sem gimp za ustvarjanje 20 različnih okvirjev z iglo, usmerjeno na vsako oznako. Ikone nasmejanega obraza so NOVITA ASTRI, ID in so tukaj:
Nato sem vse to pretvoril v matrike const uint8_t s to tehniko (namig: če so barve obrnjene, ko jih prikažete, samo obrnite barve na izvirniku): https://blog.squix.org/2015/05/esp8266- nodemcu-ho…
Koda animacije v živo je precej preprosta:
- Preberite od senzorja
- Odčitavanje lestvice (za pozitivne vrednosti povečanja sem naredil 1 proti 1 in iglo premikam le, ko je v zagonu, ne pa v vakuumu)
- Narišite xbm in nato za vse ostalo vnesite številske znake.
- sperite in ponovite
Koda senzorja: Ponovno uporabljam kodo senzorja, ki sem jo uporabil za ta dva senzorja za nekaj drugih projektov. Dodal sem nekaj povprečja, da bi se oddaljil od poskočnih senzorjev. To vključuje branje vsakega "branja" v povprečju 5 odčitkov.
Boost koda (senzor daje analogni val od 0-5 voltov, ki ga ADC spremeni v korake od 0-1024):
int getBoost () {float rboost = ((analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36))/5); // rezultat lebdenjaPSI = (rboost*(. 00488)/(. 022) +20) /6.89 - atmosfera; // odhod /6.89 za kpa float RezultatPSI = (((rboost /4095) + 0.04) /0.004) * 0.145 - atmosfera; // za 0,145 do calc psi // 4096 vrednosti na esp32 /*rBoost = rBoost + 1; če (rBoost> = 20) {rBoost = 0; }*/ return (RezultatPSI); }
Koda tlaka olja (senzor spreminja svojo upornost glede na tlak, ki ga zazna, zato je za pretvorbo napetosti v napetost od 0-5 V potreben delilnik napetosti, glej: https://electronics.stackexchange.com/questions/3…https:/ /www.instructables.com/id/Remote-Car-Monito… (do dna) za več informacij):
int getOilPSI () {float psival = ((analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36))/5); psival = -0,0601*psival + 177,04 - 14,5; povratni psival; }
Funkcija spletnega strežnika in dostopne točke: Funkcija dostopne točke je dokaj preprosta - ustvarite primerek in objekt AP z ESSID, ki ga želite oddajati, in geslom, zato ste pripravljeni.
const char *ssid = "boost_gauge_ap"; const char *geslo = "geslo";
WiFi.softAP (ssid, geslo);
Ima celo strežnik DHCP, zato vam ni treba skrbeti. Privzeto je IP 192.168.1.4 (ne vem zakaj, to je samo tisto, kar sem izbral). Spletni strežnik je nekoliko bolj zapleten in zahteva nekaj raziskav. V bistvu želite asinhronizirani spletni strežnik, da bo lahko v živo posodabljal podatke. Na srečo obstaja knjižnica za to. Nisem razvijalec javascripta, zato sem se pogovarjal s kopico knjižnic grafikonov in grafikonov, dokler nisem naletel na liste gladkosti. Večina drugih knjižnic grafikonov je napisanih tako, da podedujejo vse vrste kod iz drugih knjižnic po vsem spletu, ki se dinamično naložijo pri upodabljanju strani. Želel sem, da bi to delovalo neodvisno od interneta, zato je bila to velika ugotovitev. Drugič, biti mora dovolj majhen, da se prilega arduinu, in kot vidite v kodi, se prilega enemu nizu znakov.
Izjave spletnega strežnika: #include AsyncTCP.h #include ESPAsyncWebServer.h… AsyncWebServer server (80); // ga naredimo in izberemo vrata (80 je standardno za http)… server.on ("/", HTTP_GET, (AsyncWebServerRequest *zahteva) {request-> send (200, "text/html", "… // spletna stran + knjižnica smoothiecharts v velikem nizu znakov}); server.on ("/val", HTTP_GET, (AsyncWebServerRequest *zahteva) {// prva stran dejansko kliče to zelo majhno stran, ki vrne samo zahtevo vrednosti -> pošlji (200, "besedilo/html", Sboost);}); server.begin ();
2. korak: Strojna oprema in ožičenje
Na sliki v galeriji sta dva senzorja, ki jih uporabljam. Veliki v zlati barvi je senzor tlaka olja Autometer 2242. Telo in navoj tega senzorja sta ozemljena, priključek pa je odčitavanje upora.
Avtometer vam bo zagotovil krivuljo odpornosti na pritisk ali temperaturno odpornost katerega koli od njihovih senzorjev. To sem pretvoril v napetost z delilnikom napetosti (glej diagram ožičenja).
Senzor zračnega tlaka MPX4250AP ima tri zatiče pod napetostjo in več neuporabljenih zatičev. Vhodni, ozemljitveni in senzorski izhod. Oddaja odčitavanje 0-5v, ki ga lahko odčita mikrokontroler (ali v primeru tega mcu 0-3 voltov. Torej, odčitek senzorja se zmanjša z delilnikom napetosti.). Tehnični list zanj najdete tukaj:
Pri zmanjševanju logike s 5v na 3v obstaja več težav. V mojem primeru sem za preprostost uporabil delilnik napetosti, dele pa sem imel okoli svoje delovne mize. V odčitke boste vnesli malo napake glede na možno napako dodatnih komponent (dveh uporov). V nekaterih primerih bi to lahko pomenilo 10% popust. S tem lahko živim. Če ne morete, boste morda želeli uporabiti opamp in upore ali pretvornik logičnega nivoja (na voljo pri različnih prodajalcih elektronike. Sparkfun ga ima tukaj: https://www.sparkfun.com/products/12009 Lahko preidem nanj kot Na tem merilniku včasih dobim visoke odčitke (pravzaprav sem ta izdelek pokazal na svoji shemi ožičenja).
ESP32 sem napajal prek USB -ja. To je vključevalo ožičenje neposrednega polnilnika, kot je ta: https://www.amazon.com/gp/product/B00U2DGKOK/ref=p…, do avtomobila, nato pa z uporabo zvezdišča USB, da ga razdelite. Vidite lahko, da sem uporabil pravokotni usb kabel, da sem zagotovil, da vse deluje na majhnem območju (https://www.amazon.com/gp/product/B00ENZDFQ4/ref=p…).
Druge fotografije prikazujejo kraje, kjer sem izrezal luknje ali vodil žico. Vsak avto bo drugačen. Bodite previdni, noži in škarje so ostri, elektrika je lahko nevarna, zato pred ožičenjem odklopite baterijo.
3. korak: 3D natisnjeno ohišje
Za to sem uporabil več 3D tiskanih ohišij.
- Splošni veliki okrogli profil z dvema zaslonoma. To lahko vidite na slikah prve strani. Postavil sem ga poleg ure na armaturno ploščo.
- Klin v obliki enojnega profila, ki se prilega območju ur Subaru impreza (wrx, sti itd.) Od približno leta 2008 do 2014.
- Dvojni kos, ki se prilega volanskim stebrom in drugim rahlo zaobljenim površinam:
Vabljeni, da jih kopirate in spremenite tako, da ustrezajo vašim potrebam. Noben od njih ni popoln in vsi se bodo morali nekoliko prilagoditi.
Nekaj opomb:
- Svojega sem končal s plastidipom; je najprimernejša metoda lenih.
- Brušenje plastike naredi drobne delce, ki niso dobri za vas, uporabite ustrezno masko.
- Za stanovanja sem uporabil PETG. ABS je tudi dober. PLA se bo na vročem soncu zvijala na armaturni plošči.
Druga nagrada v IoT Challenge