Sisällysluettelo:

Wifi -yhteensopivat OLED ESP32 -automittarit: 3 vaihetta (kuvilla)
Wifi -yhteensopivat OLED ESP32 -automittarit: 3 vaihetta (kuvilla)

Video: Wifi -yhteensopivat OLED ESP32 -automittarit: 3 vaihetta (kuvilla)

Video: Wifi -yhteensopivat OLED ESP32 -automittarit: 3 vaihetta (kuvilla)
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Marraskuu
Anonim
Image
Image
Wifi -yhteensopivat OLED ESP32 -automittarit
Wifi -yhteensopivat OLED ESP32 -automittarit

Esittely ensin …

Rakennan auton mittareita eräänlaisena uudelleen ja pois harrastuksena. Katso https://www.instructables.com/id/Remote-Car-Monit… ja https://www.instructables.com/id/Remote-Car-Monit… kaksi uutta esimerkkiä. Pidän erityisesti niistä, jotka sulautuvat auton alkuperäisiin osiin. Joten miksi tämä on erilainen ja mikä inspiroi minua rakentamaan sen. Vastaus on kaksi asiaa:

1) ESP32 - Halusin kokeilla uutta lasta lohkosirulla, varsinkin kun arduino -pohjainen työkaluketju on melko kypsä. Yksi mielenkiintoisista asioista, jonka ESP32 mahdollistaa, on IOT sen sisäänrakennetuilla wifi- ja bluetooth -ominaisuuksilla. Yhteisö on kirjoittanut useita kirjastoja tämän tekemiseksi hieman yksinkertaiseksi (verkkopalvelimet, tukiasemat, wifi -asiakkaat, mDNS jne. Jne.).

2) Halvat OLED -näytöt - Vuonna 2007 tein mittarin TFT: llä, joka istui GD (2004-2007) WRX: n kellon sijaan. TFT: tä on saatavana eri makuisena. Jotkut toimivat paremmin yöllä, toiset paremmin päivällä jne. Mutta mikään niistä ei toimi kaikissa olosuhteissa. Tajusin toimintatapani virheen, ennen kuin yksi käyttämistäni mittareista oli hyödytön foorumin jäsenen aurinkoisen radapäivän aikana. Anna OLED, joka on loistava autoteollisuudelle. Ne eivät ole liian kirkkaita yöllä ja (mikä tärkeintä) näkyvät useimmissa auringonvalo -olosuhteissa.

Tämä on kaksi yhdelle opettavainen, koska kirjoitin kaiken kahdelle yleiselle auton mittarille, öljynpaineelle ja turbopaineelle. Molemmat ovat pohjimmiltaan sama asia: pieni muotoilumittari, jossa on animoitu analoginen OLED-näyttö, jossa on erilliset numerot ja maksimit. Molemmat toimivat myös wifi -tukiasemina ja verkkopalvelimina. Kun muodostat yhteyden niihin tietokoneen tai matkapuhelimen kautta, liikkuva EKG -tyylikaavio on näkyvissä (tämä on hieman innovatiivinen osa).

Tarvikkeet

HELTEC ESP32 -moduuli-hanki wifi-versio

Öljynpaineeseen liittyvät osat:

Öljynpaineanturi - Käytin automter 5222 Öljynpaineanturin kytkentäosia - tämä vaihtelee auton ja asennuspaikan mukaan. Tutustu huolto -oppaisiin, foorumeihin, mekaanisiin laitteisiin jne. Ja tee tämä oikein, jotta öljyvuotoja ei esiinny

Vahvistimen erityiset osat:

  • Ilmanpaineanturi (vain jos haluat tehdä painemittarin) -
  • Ilmaletku
  • T -liittimet

Käyttämäni kirjastot, jotka olivat välttämättömiä:

Smoothiecharts - https://smoothiecharts.org/ Erinomaiset ja kevyet päivitettävät kaaviot. Erittäin muokattavissa eikä luota viittaamiseen js -kirjastoon muualla Internetissä. Tämä mahdollistaa "local-IOT" -tyyppisen asennuksen ja koko kirjasto mahtuu yhdeksi merkkijonoksi verkkopalvelimen lausunnossa koodissa!

ESPAsyncWebServer -https://github.com/me-no-dev/ESPAsyncWebServer- tekee mitä laatikossa lukee ja tekee sen hyvin

ThingPulse OLED -grafiikkakirjasto (joskus kutsutaan myös squix -kirjastoksi) - https://github.com/ThingPulse/esp8266-oled-ssd130… - erittäin tehokas ja suoraviivainen grafiikka ESP -siruille. Sallin minun tehdä laiska ohjelmointi ja silti saada vakuuttavia animaatioita.

Työkalut/muut:

juotosrauta - käytetään pitkien kaapeleiden suorittamiseen antureille, otsikoiden asentamiseen alukseen, kutistemuoviin jne.

ruuvimeisseli/pistorasiat/muut auton työkalut - tarvitaan anturien asentamiseen autoon

kaksipuolinen teippi - mittareiden asentamiseen koteloihin ja kotelon asentamiseen autoon (kuuma liima ja muut asiat saattavat toimia, mutta pidän parempana 3M: n kaksipuolista ulkovaippaa. Se pysyy hyvin ja voidaan irrottaa vahingoittamatta esineitä.)

sakset - teipille ja leikkausputkille ja vetoketjuille

vetoketjut - tavaroiden pitämiseen yhdessä, johtojen niputtamiseen kojelaudan alle ja moottoritilaan, antureiden pitämiseen paikalla jne.

Vaihe 1: Koodi ensin/Laitteisto toinen

Koodi ensin/Laitteisto toinen
Koodi ensin/Laitteisto toinen
Koodi ensin/Laitteisto toinen
Koodi ensin/Laitteisto toinen

Koodin voi ladata täältä:

Öljynpaine -

Boost Pressure -

Lisää painetta kasvoilla analogisten ilmeiden sijaan -

Grafiikkakoodi: ThingPulse -kirjasto on niin tehokas, että voit piirtää xbms suoraan päällekkäin ja saada vakuuttavia tuloksia!

Mittarikuvat tulivat itse asiassa avoimen lähdekoodin grafiikkavarastosta (https://thenounproject.com/). Taiteilija Iconic, CY (https://thenounproject.com/icon/490005/).

Käytin gimp -ohjelmaa luodakseni 20 eri kehystä neula osoittaa jokaiseen rastiin. Hymiökuvakkeet ovat NOVITA ASTRI, ID ja ne ovat täällä:

Sitten muutin nämä kaikki Const uint8_t -matriiseiksi tällä tekniikalla (vihje: jos värit ovat käänteisiä, kun ne näytetään, käännä vain alkuperäisen värit): https://blog.squix.org/2015/05/esp8266- nodemcu-ho…

Live -animaatiokoodi on melko yksinkertainen:

  • Hanki lukema anturista
  • Asteikko (tein 1: 1 positiivisille tehostusarvoille ja liikuta neulaa vain silloin, kun se on tehostettuna, ei tyhjiössä)
  • Piirrä xbm ja kirjoita sitten numeromerkit kaikkeen muuhun.
  • huuhtele ja toista

Anturikoodi: Käytän uudelleen näille kahdelle anturille käyttämääni anturikoodia muutamiin muihin projekteihin. Lisäsin jonkin verran keskiarvoa päästäkseni eroon hyppäävistä antureista. Tämä sisältää jokaisen "lukemisen" lukemisen keskimäärin 5 lukemaa.

Tehostuskoodi (anturi antaa analogisen arvon 0-5 voltista, jonka ADC muuttaa vaiheiksi 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; // /6.89: n jättö kpa: n uimurille Tulos PSI = ((((rboost /4095) + 0.04) /0.004) * 0.145 - atmo; // 0,145 laskea psi // 4096 arvoa esp32 /*rBoost = rBoost + 1; jos (rBoost> = 20) {rBoost = 0; }*/ return (ResultPSI); }

Öljynpainekoodi (anturi muuttaa vastustaan sen havaitseman paineen perusteella, joten jännitteenjakaja vaaditaan muuttamaan tämä jännitteeksi 0-5v, katso: https://electronics.stackexchange.com/questions/3…https:/ /www.instructables.com/id/Remote-Car-Monito …… (alareunaan) saadaksesi lisätietoja):

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

Verkkopalvelimen ja tukiaseman toiminnot: AP -toiminnot ovat melko yksinkertaisia - instantiate ja AP -objekti, jossa on ESSID, jonka haluat lähettää, ja salasana, ja olet valmis lähtemään.

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

WiFi.softAP (ssid, salasana);

Siinä on jopa DHCP -palvelin, joten sinun ei tarvitse huolehtia siitä. Oletusarvoisesti sen IP -osoite on 192.168.1.4 (ei aavistustakaan miksi, se on juuri valittu). Verkkopalvelinbitti on hieman hankalampi ja vaatii hieman tutkimusta. Pohjimmiltaan haluat asynkronisen verkkopalvelimen, jotta se voi saada reaaliaikaisia päivitystietoja. Onneksi siellä on kirjasto. En ole javascript -kehittäjä, joten tein joukon kaavioita ja graafisia kirjastoja, kunnes törmäsin smoothie -kaavioihin. Useimmat muut kaavakirjastot on kirjoitettu siten, että ne perivät kaikenlaista koodia muilta verkkokirjastoilta, jotka ladataan dynaamisesti sivun muodostamisen yhteydessä. Halusin tämän toimivan internetistä riippumatta, joten tämä oli suuri löytö. Toiseksi sen piti olla tarpeeksi pieni, jotta se mahtui arduinoon, ja kuten näet koodista, se sopii yhteen char -taulukkoon.

Verkkopalvelimen ilmoitukset: #include AsyncTCP.h #include ESPAsyncWebServer.h… AsyncWebServer -palvelin (80); // parane se ja valitse portti (80 on vakio http: lle)… server.on ("/", HTTP_GET, (AsyncWebServerRequest *request) {request-> send (200, "text/html", "… // verkkosivu + smoothiecharts -kirjasto valtavassa char -taulukossa}); server.on ("/val", HTTP_GET, (AsyncWebServerRequest *request) {// ensimmäinen sivu kutsuu tätä hyvin pientä sivua, joka palauttaa vain arvopyynnön -> lähetä (200, "text/html", Sboost);}); server.begin ();

Vaihe 2: Laitteisto ja johdotus

Laitteisto ja johdotus
Laitteisto ja johdotus
Laitteisto ja johdotus
Laitteisto ja johdotus
Laitteisto ja johdotus
Laitteisto ja johdotus

Galleriassa on kaksi käyttämääni anturia. Suuri kullanvärinen on Autometer 2242 -öljynpaineanturi. Tämän anturin runko ja kierre on maadoitettu ja liitin on vastuslukema.

Autometri antaa sinulle minkä tahansa anturin paine- tai lämpötilankestokäyrän. Olen muuttanut tämän jännitteeksi jännitteenjakajalla (katso kytkentäkaavio).

MPX4250AP -ilmanpaineanturissa on kolme jännitteistä nastaa ja useita käyttämättömiä nastoja. Ne ovat V -tuloa, maadoitusta ja anturilähtöä. Se antaa 0-5v-lukeman, jonka mikrokontrolleri voi lukea (tai tässä tapauksessa 0-3 voltin mcu. Joten anturin lukua pienennetään jännitteenjakajalla.) Sen tekniset tiedot löytyvät täältä:

5v: n ja 3v: n logiikan pienentämisessä on useita ongelmia. Minun tapauksessani käytin jännitteenjakajaa yksinkertaisuuden vuoksi ja minulla oli osat työpöydän ympärillä. Saat lukemiin hieman virhettä lisäkomponenttien (kahden vastuksen) mahdollisen virheen perusteella. Tämä voi tehdä lukemastasi 10% alennuksen joissakin tapauksissa. Voin elää tämän kanssa. Jos et voi, voit halutessasi käyttää opampia ja vastuksia tai loogisen tason muunninta (saatavana useilta elektroniikkatoimittajilta. Sparkfunilla on sellainen täällä: https://www.sparkfun.com/products/12009 Voin vaihtaa siihen nimellä Saan joskus korkeita lukemia tästä mittarista (itse asiassa olen näyttänyt tämän tuotteen kytkentäkaaviossa).

Sain virran ESP32: sta USB: n kautta. Tämä sisälsi tämän tyyppisen suoralaturin kytkemisen: https://www.amazon.com/gp/product/B00U2DGKOK/ref=p… autoon ja sen jakamisen USB -keskittimen avulla. Näet, että käytin suorakulmaisia USB -kaapeleita varmistaakseni, että kaikki toimii pienellä alueella (https://www.amazon.com/gp/product/B00ENZDFQ4/ref=p…).

Muut valokuvat osoittavat paikkoja, joissa leikkasin reikiä tai ajoin lankaa. Jokainen auto tulee olemaan erilainen. Ole varovainen, veitset ja sakset ovat teräviä, sähkö voi olla vaarallista, joten irrota akku ennen johdotusta.

Vaihe 3: 3D -tulostettu kotelo

3D -painettu kotelo
3D -painettu kotelo

Olen käyttänyt tähän useita 3D -tulostettuja koteloita.

  • Yleinen suuri 2 näytön pyöreä mittari. Näet tämän ensimmäisen sivun kuvissa. Laitoin sen kelloni viereen kojelautaan.
  • Yksimittainen kiilamainen malli, joka sopii subaru impreza (wrx, sti jne.) Kelloalueelle noin vuodesta 2008 vuoteen 2014.
  • Kaksiulotteinen kappale, joka sopii ohjauspyörän pylväisiin ja muihin hieman pyöristettyihin pintoihin:

Voit halutessasi kopioida ja muokata niitä tarpeidesi mukaan. Yksikään niistä ei ole täydellinen ja kaikki vaativat hieman säätöä.

Muutamia huomioita:

  • Päätin omani plastidipilla; se on laiskojen suosituin tapa.
  • Muovin hiominen tekee hienoja hiukkasia, jotka eivät ole sinulle sopivia, käytä asianmukaista naamaria.
  • Koteloissani käytin PETG: tä. ABS on myös hyvä. PLA vääntyy kuumassa auringossa kojelaudalla.
IoT -haaste
IoT -haaste
IoT -haaste
IoT -haaste

Toinen palkinto IoT Challengessa

Suositeltava: