Obsah:

Wifi povoleno OLED ESP32 auto měřidla: 3 kroky (s obrázky)
Wifi povoleno OLED ESP32 auto měřidla: 3 kroky (s obrázky)

Video: Wifi povoleno OLED ESP32 auto měřidla: 3 kroky (s obrázky)

Video: Wifi povoleno OLED ESP32 auto měřidla: 3 kroky (s obrázky)
Video: ESP32 TFT Clock using auto select open WiFi and NTP to sync 2024, Prosinec
Anonim
Image
Image
Wifi povoleno OLED ESP32 auto měřidla
Wifi povoleno OLED ESP32 auto měřidla

Úvod nejprve…

Měřidla automobilů stavím jako jakési hobby znovu a znovu. Další dva nedávné příklady najdete na https://www.instructables.com/id/Remote-Car-Monit… a https://www.instructables.com/id/Remote-Car-Monit…. Obzvláště se mi líbí takové, které splynou s původními částmi auta. Proč je tedy tento jiný a co mě inspirovalo k jeho vybudování? Odpovědí jsou dvě věci:

1) ESP32 - Chtěl jsem vyzkoušet nové dítě na blokovém čipu, zejména proto, že nástrojový řetězec založený na arduinu je poměrně vyspělý. Jednou ze zajímavých věcí, které ESP32 umožňuje, jsou IOT s integrovanými možnostmi wifi a bluetooth. Komunita napsala několik knihoven, aby to bylo poněkud jednoduché (webové servery, AP, wifi klienti, mDNS atd. Atd.).

2) Levné OLED obrazovky - V roce 2007 jsem vytvořil měřidlo pomocí TFT, které sedělo místo hodin na GD (2004-2007) WRX. TFT přicházejí v různých příchutích. Někteří pracují lépe v noci, někteří lépe ve dne atd. Ale žádný z nich nepracuje za všech podmínek. Neuvědomil jsem si chybu svých cest, dokud jeden z měřidel, které jsem použil, byl během slunečného dne člena fóra k ničemu. Zadejte OLED, které jsou úžasné pro automobilové aplikace. V noci nejsou příliš jasné a (co je důležitější) jsou viditelné ve většině slunečních podmínek.

Toto je instrukce dva na jednoho, protože jsem napsal vše pro dva běžné měřiče automobilů, tlak oleje a tlak turba. Oba jsou v zásadě totéž: malý měřič formátu s animovaným analogovým OLED displejem s diskrétními čísly a zobrazenými maximy. Oba fungují také jako wifi AP a webové servery. Když se k nim člověk připojí prostřednictvím počítače nebo mobilního telefonu, je možné zobrazit pohyblivý graf typu EKG (to je poněkud inovativní část).

Zásoby

Modul HELTEC ESP32-získejte variantu wifi

Části specifické pro tlak oleje:

Snímač tlaku oleje - použil jsem spojovací díly snímače tlaku oleje 5222 - to se liší podle auta a místa instalace. Prostudujte si servisní příručky, fóra, mechaniku atd. A proveďte to správně, aby nedošlo k úniku oleje

Specifické díly zesilovače:

  • Senzor tlaku vzduchu (pouze pokud si přejete vytvořit posilovač) -
  • Vzduchová hadice
  • T tvarovky

Knihovny, které jsem použil, byly nepostradatelné:

Smoothiecharts - https://smoothiecharts.org/ Vynikající a lehké živé aktualizační grafy. Velmi přizpůsobitelné a nespoléhá na odkazování na knihovnu js někde jinde na internetu. To umožňuje nastavení typu „local-IOT“a celá knihovna se vejde do jednoho řetězce pro příkaz webového serveru v kódu!

ESPAsyncWebServer-https://github.com/me-no-dev/ESPAsyncWebServer- dělá to, co je uvedeno na krabici, a dělá to dobře

Grafická knihovna ThingPulse OLED (někdy se říká knihovna squix) - https://github.com/ThingPulse/esp8266-oled-ssd130… - velmi účinná a přímočará grafika pro ESP čipy. Umožnilo mi to udělat líné programování a přesto získat přesvědčivé animace.

Nástroje/různé:

páječka - používá se k výrobě dlouhých kabelových tras pro senzory, instalaci záhlaví na desku, smršťovací smršťovací fólie atd.

šroubovák/zásuvky/jiné nářadí do auta - nutné k instalaci senzorů do auta

oboustranná páska - instalace měřidel do pouzder a instalace pouzdra do auta (horké lepidlo a další věci mohou fungovat, ale já dávám přednost oboustranné vnější oboustranné pásce 3M. Drží dobře a lze ji stáhnout, aniž by došlo k poškození věcí.)

nůžky - na pásku a stříhání hadiček a pásků na zip

zipy - pro držení věcí pohromadě, svazování vodičů pod palubní deskou a v motorovém prostoru, držení senzorů na místě atd.

Krok 1: Kódujte nejprve/Hardware za druhé

Kód první/Hardware druhý
Kód první/Hardware druhý
Kód první/Hardware druhý
Kód první/Hardware druhý

Kód lze stáhnout zde:

Tlak oleje -

Boost Pressure -

Zvýšení tlaku s tvářemi namísto analogových měřidel vzhledu -

Grafický kód: Knihovna ThingPulse je tak účinná, že můžete kreslit xbms přímo na sebe a získat přesvědčivé výsledky!

Obrázky měřidel ve skutečnosti pocházely z grafického úložiště s otevřeným zdrojovým kódem (https://thenounproject.com/). Umělec Iconic, CY (https://thenounproject.com/icon/490005/).

Použil jsem gimp k vygenerování 20 různých snímků s jehlou směřující ke každé značce zaškrtnutí. Ikony smajlíků jsou od NOVITA ASTRI, ID a jsou zde:

Poté jsem je pomocí této techniky převedl na všechna pole const uint8_t (nápověda: pokud jsou barvy invertovány, když je zobrazíte, stačí převrátit barvy na originál): https://blog.squix.org/2015/05/esp8266- nodemcu-ho…

Živý kód animace je docela přímočarý:

  • Získejte čtení ze senzoru
  • Měření stupnice (U kladných hodnot boostu jsem nastavil 1 na 1 a jehlou pohybujte pouze tehdy, když je v boostu, ne když je ve vakuu)
  • Nakreslete xbm a pro všechno ostatní zapište číselné znaky.
  • opláchněte a opakujte

Kód senzoru: Kód senzoru, který jsem použil pro tyto dva senzory, znovu používám pro několik dalších projektů. Přidal jsem nějaké průměrování, abych se dostal pryč od skokových senzorů. To zahrnuje čtení každého „čtení“, což je průměrně 5 čtení.

Boost kód (snímač poskytuje analogový val od 0 do 5 voltů, který ADC mění na kroky od 0 do 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; // ponechání /6,89 pro kpa float VýsledekPSI = ((((rboost /4095) + 0,04) /0,004) * 0,145 - atmo; // o 0,145 pro výpočet psi // 4096 hodnot na esp32 /*rBoost = rBoost + 1; if (rBoost> = 20) {rBoost = 0; }*/ return (ResultPSI); }

Kód tlaku oleje (snímač mění svůj odpor na základě tlaku, který snímá, takže k jeho přeměně na napětí od 0 do 5 V je potřeba dělič napětí, viz: https://electronics.stackexchange.com/questions/3…https:/ /www.instructables.com/id/Remote-Car-Monito… (směrem dolů) pro více informací):

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

Funkce webového serveru a přístupového bodu: Funkce přístupového bodu je poměrně jednoduchá - vytvořte instanci a objekt AP pomocí ESSID, který chcete vysílat, a hesla, a můžete začít.

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

WiFi.softAP (ssid, heslo);

Má dokonce server DHCP, takže si s tím nemusíte dělat starosti. Ve výchozím nastavení je to IP 192.168.1.4 (nevím proč, to je právě to, co jste vybrali). Bit webového serveru je trochu složitější a vyžaduje trochu výzkumu. V zásadě chcete asynchronní webový server, aby mohl získávat aktuální aktualizovaná data. Naštěstí pro to existuje knihovna. Nejsem vývojář javascriptu, takže jsem si pohrával se spoustou knihoven grafů a grafů, dokud jsem nenarazil na smoothie grafy. Většina ostatních knihoven grafů je napsána tak, že dědí všechny druhy kódu z jiných knihoven z celého webu, které se dynamicky načítají při vykreslení stránky. Chtěl jsem, aby to fungovalo nezávisle na internetu, takže to byl velký nález. Za druhé musel být dostatečně malý, aby se vešel na arduino, a jak vidíte v kódu, hodí se do jednoho pole char.

Deklarace webového serveru: #include AsyncTCP.h #include ESPAsyncWebServer.h… server AsyncWebServer (80); // vytvořte instanci a vyberte port (80 je standardní pro http) … server.on ("/", HTTP_GET, (požadavek AsyncWebServerRequest *)) {request-> send (200, "text/html", "… // // webová stránka + knihovna smoothiecharts v obrovském poli znaků}); server.on ("/val", HTTP_GET, (požadavek AsyncWebServerRequest *) {// první stránka ve skutečnosti volá tuto velmi malou stránku, která právě vrací požadavek na hodnotu -> odeslat (200, "text/html", Sboost);}); server.begin ();

Krok 2: Hardware a zapojení

Hardware a zapojení
Hardware a zapojení
Hardware a zapojení
Hardware a zapojení
Hardware a zapojení
Hardware a zapojení

Na obrázku v galerii jsou dva senzory, které používám. Velký zlatý je snímač tlaku oleje Autometer 2242. Tělo a závit tohoto senzoru je uzemněno a svorka je údaj odporu.

Autometer vám poskytne křivku odolnosti vůči tlaku nebo odolnosti vůči teplotě pro jakýkoli ze svých senzorů. Převedl jsem to na napětí pomocí děliče napětí (viz schéma zapojení).

Snímač tlaku vzduchu MPX4250AP má tři živé kolíky a několik nepoužívaných kolíků. Jsou to výstup V, zem a senzor. Výstupem je odečet 0–5 V, který lze přečíst pomocí mikrokontroléru (nebo v případě tohoto mcu 0–3 volty. Čtení snímače je tedy zmenšeno pomocí děliče napětí.). Specifikační list naleznete zde:

Při škálování z logiky 5v na 3v existuje několik problémů. V mém případě jsem pro jednoduchost použil dělič napětí a měl jsem části kolem pracovního stolu. Do odečtů zavedete trochu chyby na základě možné chyby dalších komponent (dvou rezistorů). V některých případech to může znamenat slevu 10%. S tím můžu žít. Pokud nemůžete, můžete použít operační zesilovač a odpory nebo převodník logické úrovně (k dispozici od různých prodejců elektroniky. Sparkfun tu jeden má: https://www.sparkfun.com/products/12009 Mohu na něj přepnout jako Na tomto měřidle někdy dostávám vysoké hodnoty (ve skutečnosti jsem tento produkt ukázal ve svém schématu zapojení).

Napájel jsem ESP32 přes USB. To zahrnovalo zapojení přímé nabíječky, jako je tato: https://www.amazon.com/gp/product/B00U2DGKOK/ref=p… do auta, a poté pomocí rozbočovače USB k rozdělení. Vidíte, že jsem použil pravoúhlé USB kabely, aby vše fungovalo na malé ploše (https://www.amazon.com/gp/product/B00ENZDFQ4/ref=p…).

Další fotografie ukazují místa, kde jsem prořezal díry nebo spustil drát. Každé auto bude jiné. Buďte opatrní, nože a nůžky jsou ostré, elektřina může být nebezpečná, proto před zapojováním odpojte baterii.

Krok 3: 3D tištěné pouzdro

3D tištěné pouzdro
3D tištěné pouzdro

K tomu jsem použil několik 3D tištěných pouzder.

  • Obecný velký 2 obrazovkový kulatý měřič. Můžete to vidět na obrázcích první stránky. Položil jsem je vedle hodin na palubní desce.
  • Jednokolejný klínový styl, který se vejde do oblasti hodin Subaru Impreza (wrx, sti atd.) Přibližně od roku 2008 do roku 2014.
  • Kus se dvěma měřidly, který se hodí na sloupky volantu a jiné mírně zaoblené povrchy:

Můžete je zkopírovat a upravit tak, aby vyhovovaly vašim potřebám. Žádný z nich není dokonalý a všichni budou vyžadovat trochu přizpůsobení.

Několik poznámek:

  • Skončil jsem s plastidipem; je to upřednostňovaná metoda líných.
  • Broušení plastů vytváří jemné částice, které pro vás nejsou dobré, použijte vhodnou masku.
  • Na svá pouzdra jsem použil PETG. ABS je také dobré. PLA se bude ohýbat na horkém slunci na palubní desce.
IoT výzva
IoT výzva
IoT výzva
IoT výzva

Druhá cena v IoT Challenge

Doporučuje: