Sisukord:

WiFi -toega OLED ESP32 automeetrid: 3 sammu (piltidega)
WiFi -toega OLED ESP32 automeetrid: 3 sammu (piltidega)

Video: WiFi -toega OLED ESP32 automeetrid: 3 sammu (piltidega)

Video: WiFi -toega OLED ESP32 automeetrid: 3 sammu (piltidega)
Video: ESP32 TFT Clock using auto select open WiFi and NTP to sync 2024, November
Anonim
Image
Image
WiFi -toega OLED ESP32 automeetrid
WiFi -toega OLED ESP32 automeetrid

Esiteks sissejuhatus…

Ma ehitan automõõdikuid omamoodi uuesti ja uuesti hobi korras. Vaadake kahte värskemat näidet aadressilt https://www.instructables.com/id/Remote-Car-Monit… ja https://www.instructables.com/id/Remote-Car-Monit…. Eriti meeldivad mulle need, mis segunevad auto originaalosadega. Niisiis, miks see on erinev ja mis inspireeris mind seda ehitama. Vastus on kaks asja:

1) ESP32 - tahtsin proovida uut last plokkiibil, eriti kuna selle jaoks mõeldud arduino -põhine tööriistakett on üsna küps. Üks huvitav asi, mida ESP32 võimaldab, on IOT koos sisseehitatud wifi ja bluetooth võimalustega. Kogukond on selle mõnevõrra lihtsaks muutmiseks kirjutanud mitu raamatukogu (veebiserverid, AP -d, wifi -kliendid, mDNS jne jne).

2) Odavad OLED -ekraanid - 2007. aastal tegin GD (2004-2007) WRX -i kella asemel kohapealse mõõturi TFT abil. TFT -d on erineva maitsega. Mõni töötab paremini öösel, mõni paremini päeval jne. Kuid ükski neist ei tööta kõikides tingimustes. Ma ei saanud oma viiside veast aru enne, kui üks mõõdikutest, mida kasutasin, oli foorumi liikme päikesepaistelisel rajapäeval kasutu. Sisestage OLED, mis on suurepärased autorakenduste jaoks. Nad ei ole öösel liiga eredad ja (mis veelgi tähtsam) on nähtavad enamikus päikesevalguse tingimustes.

See on kaks ühele juhendatav, kuna ma kirjutasin kõike kahe tavalise automeetri jaoks - õlirõhk ja turburõhk. Mõlemad on sisuliselt üks ja sama: väike vormitegur, millel on analoogse välimusega OLED-ekraan, kus kuvatakse diskreetsed numbrid ja maksimumid. Mõlemad toimivad ka wifi AP -de ja veebiserveritena. Kui ühendate nendega arvuti või mobiiltelefoni kaudu, on nähtav liikuv EKG stiilitabel (see on mõnevõrra uuenduslik osa).

Tarvikud

HELTEC ESP32 moodul-hankige wifi variant

Õlisurve spetsiifilised osad:

Õlirõhuandur - kasutasin automaati 5222 Õlirõhuanduri haakeseadise osad - see sõltub autost ja paigalduskohast. Palun lugege hooldusjuhendeid, foorumeid, mehhanisme jne ja tehke seda õigesti, et õli lekkeid ei tekiks

Võimsusmõõturi spetsiifilised osad:

  • Õhurõhuandur (ainult siis, kui soovite teha manomeetrit) -
  • Õhuvoolik
  • T -liitmikud

Asendamatud raamatukogud, mida kasutasin:

Smoothiecharts - https://smoothiecharts.org/ Suurepärased ja kerged reaalajas uuendatavad edetabelid. Väga kohandatav ja ei sõltu viitamisest js raamatukogule kusagil mujal Internetis. See võimaldab seadistada “local-IOT” tüüpi ja kogu raamatukogu mahub veebiserveri avalduse koodis ühte stringi!

ESPAsyncWebServer -https://github.com/me-no-dev/ESPAsyncWebServer- teeb seda, mis karbil kirjas, ja teeb seda hästi

ThingPulse OLED graafikakogu (mõnikord helistage ka squixi teegiks) - https://github.com/ThingPulse/esp8266-oled-ssd130… - väga tõhus ja lihtne ESP kiipide graafika. Lubas mul teha laisat programmeerimist ja saada endiselt veenvaid animatsioone.

Tööriistad/muu:

jootekolb - kasutatakse andurite jaoks pikkade kaablikanalite tegemiseks, päiste paigaldamiseks pardale, kokkutõmbumisvastase ümbrise jms jaoks.

kruvikeeraja/pistikupesad/muud autotööriistad - vajalikud andurite paigaldamiseks autosse

kahepoolne teip - mõõturite paigaldamiseks korpustesse ja korpuse paigaldamiseks autosse (kuum liim ja muud asjad võivad töötada, kuid eelistan 3M kahepoolset välisviimistluslinti. See hoiab hästi ja seda saab ilma kahjustamata eemaldada.)

käärid - teibi ja torude ning tõmblukkude lõikamiseks

tõmblukud - asjade kokkuhoidmiseks, juhtmete sidumiseks kriipsu alla ja mootoriruumi, andurite hoidmiseks jne.

Samm: kood esimene/riistvara teine

Kood Esiteks/Riistvara Teine
Kood Esiteks/Riistvara Teine
Kood Esiteks/Riistvara Teine
Kood Esiteks/Riistvara Teine

Koodi saab alla laadida siit:

Õlirõhk -

Suurendage survet -

Suurendage survet näoga analoogse välimuse mõõturite asemel -

Graafikakood: ThingPulse teek on nii väga tõhus, et saate joonistada xbms otse üksteise peale ja saada veenvaid tulemusi!

Mõõdiku kujutised pärinesid tegelikult avatud lähtekoodiga graafikahoidlast (https://thenounproject.com/). Kunstnik Iconic, CY (https://thenounproject.com/icon/490005/).

Kasutasin gimpi abil 20 erineva kaadri genereerimist nõelaga igale linnukese märgile. Naeratava näo ikoonid on autor NOVITA ASTRI, ID ja need on siin:

Seejärel teisendasin selle tehnika abil need kõik konst uint8_t massiivideks (vihje: kui värvid on nende kuvamisel ümber pööratud, pöörake originaalvärvid lihtsalt ümber): https://blog.squix.org/2015/05/esp8266- noogutus…

Reaalajas animatsioonikood on üsna lihtne:

  • Lugege andurilt
  • Skaala näit (positiivsete võimendusväärtuste jaoks tegin selle 1: 1 ja liigutage nõela ainult siis, kui see on võimendatud, mitte vaakumis)
  • Joonistage xbm ja pange kõik muu jaoks numbrimärgid maha.
  • loputage ja korrake

Anduri kood: kasutan nende kahe anduri jaoks kasutatud andurikoodi mõne teise projekti jaoks uuesti. Lisasin mõne keskmise, et hüplikest anduritest eemale pääseda. See hõlmab iga "lugemise" lugemist keskmiselt 5 lugemist.

Võimenduskood (andur annab analoogväärtuse 0–5 volti, mille ADC muudab sammudeks vahemikus 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; // lahkumine /6.89 -st kpa ujuki jaoks Tulemus PSI = ((((rboost /4095) + 0.04) /0.004) * 0.145 - atmo; // 0,145 võrra psi arvutamiseks // 4096 väärtust esp32 /*rBoost = rBoost + 1; kui (rBoost> = 20) {rBoost = 0; }*/ return (ResultPSI); }

Õlirõhukood (andur muudab oma takistust sõltuvalt rõhust, mida ta tunneb, nii et selle muutmiseks pingeks 0–5 V on vaja pingejaoturit, vt: https://electronics.stackexchange.com/questions/3…https:/ /www.instructables.com/id/Remote-Car-Monito …… (altpoolt), et saada lisateavet):

int getOilPSI () {float psival = ((analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36))/5); psival = -0,0601*psival + 177,04 - 14,5; naasta psival; }

Veebiserveri ja AP funktsionaalsus: AP funktsionaalsus on üsna lihtne - vahetu ja AP objekt koos ESSID -ga, mida soovite edastada, ja parool ning olete valmis minema.

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

WiFi.softAP (ssid, parool);

Sellel on isegi DHCP -server, nii et te ei pea selle pärast muretsema. Vaikimisi on see IP -aadress 192.168.1.4 (pole aimugi, miks, just selle valisime). Veebiserveri bit on natuke keerulisem ja nõudis natuke uurimistööd. Põhimõtteliselt soovite asünkroonset veebiserverit, et see saaks reaalajas värskendavaid andmeid hankida. Õnneks on selleks raamatukogu. Ma ei ole JavaScripti arendaja, seega nokitsesin hulga graafikute ja graafikutega raamatukogudega, kuni sattusin smuutitabelite juurde. Enamik teisi diagrammiteeke on kirjutatud nii, et nad pärivad kõikvõimalikku koodi teistelt teekidelt kogu veebist, mis laaditakse lehe renderdamisel dünaamiliselt. Tahtsin, et see toimiks Internetist sõltumatult, nii et see oli suur leid. Teiseks pidi see olema piisavalt väike, et see sobiks arduinole ja nagu koodist näete, mahub see ühte sümboli massiivi.

Veebiserveri deklaratsioonid: #include AsyncTCP.h #include ESPAsyncWebServer.h… AsyncWebServer server (80); // installeerige see ja valige port (80 on standardne http)… server.on ("/", HTTP_GET, (AsyncWebServerRequest *päring) {request-> send (200, "text/html", "… // veebileht + sujuvkaartide kogu tohutu sümbolimassiiviga}); server.on ("/val", HTTP_GET, (AsyncWebServerRequest *päring) {// esimesel lehel nimetatakse seda väga väikest lehte, mis tagastab lihtsalt väärtustaotluse -> saata (200, "text/html", Sboost);}); server.begin ();

Samm: riistvara ja juhtmestik

Riistvara ja juhtmestik
Riistvara ja juhtmestik
Riistvara ja juhtmestik
Riistvara ja juhtmestik
Riistvara ja juhtmestik
Riistvara ja juhtmestik

Galeriis on pildil kaks sensorit, mida ma kasutan. Suur kuldne värv on õlirõhu andur Autometer 2242. Selle anduri korpus ja niit on maandatud ja klemm on takistuse näit.

Automeeter annab teile kõigi nende andurite rõhukindluse või temperatuuritaluvuse kõvera. Olen selle pingejaguri abil muundanud pingeks (vt juhtmestiku skeemi).

MPX4250AP õhurõhuanduril on kolm pingestatud tihvti ja mitu kasutamata tihvti. Need on V sisend, maandus ja anduri väljund. See väljastab 0-5v näidu, mida saab lugeda mikrokontroller (või selle mcu puhul 0-3 volti. Seega vähendatakse anduri näitu pingejaguri abil.) Selle spetsifikatsioonilehe leiate siit:

Loogika 5v kuni 3v vähendamisel on mitmeid probleeme. Minu puhul kasutasin lihtsuse huvides pingejaoturit ja osad olid minu töölaua ümber. Lisate näitudesse natuke viga, mis põhineb lisakomponentide (kaks takisti) võimalikul veal. See võib muuta teie näidud mõnel juhul 10% soodsamaks. Sellega saan elada. Kui te seda ei tee, võite soovida kasutada opampi ja takisteid või loogika taseme muundurit (saadaval erinevatelt elektroonikatootjatelt. Sparkfunil on see siin: https://www.sparkfun.com/products/12009 Võin selle ümber lülitada kui Selle gabariidiga saan mõnikord kõrgeid näiteid (tegelikult olen seda toodet näidanud oma ühendusskeemil).

Toitsin ESP32 -sid USB kaudu. See hõlmas otsese laadija ühendamist nagu see: https://www.amazon.com/gp/product/B00U2DGKOK/ref=p… autosse ja seejärel USB -jaoturi kasutamist selle jagamiseks. Näete, et kasutasin täisnurgaga USB -kaableid, et kõik toimiks väikesel alal (https://www.amazon.com/gp/product/B00ENZDFQ4/ref=p…).

Teistel fotodel on näha kohti, kus lõikasin auke või juhtisin traati. Iga auto saab olema erinev. Olge ettevaatlik, noad ja käärid on teravad, elekter võib olla ohtlik, nii et palun ühendage aku enne juhtmete ühendamist lahti.

3. samm: 3D -trükitud korpus

3D trükitud korpus
3D trükitud korpus

Olen kasutanud selleks mitmeid 3D -prinditud korpusi.

  • Üldine suur kahe ekraaniga ümmargune gabariit. Seda näete selle esimese lehe piltidel. Panin selle kriipsu peale kella kõrvale.
  • Ühe gabariidiga kiilustiil, mis sobib umbes 2008–2014 subaru impreza (wrx, sti jne) kellaalasse.
  • Kahe gabariidiga detail, mis sobib roolisammastele ja muudele veidi ümaratele pindadele:

Olete teretulnud neid kopeerima ja oma vajadustele vastavaks muutma. Ükski neist pole täiuslik ja nad kõik vajavad natuke kohandamist.

Mõned märkused:

  • Lõpetasin oma plastidipiga; see on laiskade eelistatud meetod.
  • Plastide lihvimisel tekivad peened osakesed, mis ei sobi teile, kasutage sobivat maski.
  • Ma kasutasin oma korpuste jaoks PETG -d. ABS on ka hea. PLA väändub kuuma päikese käes armatuurlaual.
IoT väljakutse
IoT väljakutse
IoT väljakutse
IoT väljakutse

IoT Challenge teine auhind

Soovitan: