Indholdsfortegnelse:
Video: Wifi -aktiveret OLED ESP32 bilmålere: 3 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
Introduktioner først …
Jeg bygger bilmålere som en slags til igen og igen. Se https://www.instructables.com/id/Remote-Car-Monit… og https://www.instructables.com/id/Remote-Car-Monit… for to nyere eksempler. Jeg kan især godt lide dem, der passer ind i bilens originaldele. Så hvorfor er denne anderledes, og hvad inspirerede mig til at bygge den. Svaret er to ting:
1) ESP32 - Jeg ville prøve det nye barn på blokchippen, især da den arduino -baserede værktøjskæde til den er temmelig moden. En af de interessante ting, som ESP32 muliggør, er IOT med dens indbyggede wifi- og bluetooth -funktioner. Fællesskabet har skrevet flere biblioteker for at gøre dette noget ligetil (webservere, AP’er, wifi -klienter, mDNS osv.).
2) Billige OLED -skærme - Tilbage i 2007 lavede jeg en måler ved hjælp af en TFT, der sad på urets sted på en GD (2004-2007) WRX. TFT findes i forskellige varianter. Nogle fungerer bedre om natten, nogle fungerer bedre om dagen osv. Men ingen af dem fungerer under alle forhold. Jeg var ikke klar over fejlen på mine måder, før en af de målere, jeg brugte, var ubrugelig under et forummedlems solrige spordag. Indtast OLED, som er fantastiske til bilapplikationer. De er ikke for lyse om natten og (vigtigere) er synlige under de fleste sollysforhold.
Dette er en to for en instruerbar, da jeg skrev alt til to almindelige bilmålere, olietryk og turbotryk. Begge er i det væsentlige det samme: en lille formfaktormåler med et animeret OLED-display med analogt udseende med diskrete tal og maksimum vises. Begge fungerer også som wifi AP’er og webservere. Når man opretter forbindelse til dem via en computer eller mobiltelefon, kan der ses et bevægeligt EKG -type -diagram (dette er den lidt innovative del).
Forbrugsvarer
HELTEC ESP32-modul-få wifi-varianten
Olietryk specifikke dele:
Olietryk sensor - Jeg brugte en automter 5222 Olietryk sensor tilslutning dele - dette varierer efter bil og placering af installationen. Se venligst servicemanualer, fora, teknikere osv. Og gør dette korrekt, så der ikke er olieudslip
Boost gauge specifikke dele:
- Lufttrykssensor (kun hvis du ønsker at lave en boost -måler) -
- Luftslange
- T fittings
Biblioteker, jeg brugte, var uundværlige:
Smoothiecharts - https://smoothiecharts.org/ Fremragende og lette live opdateringskort. Meget tilpasselig og er ikke afhængig af at henvise til et js -bibliotek et andet sted på internettet. Dette giver mulighed for en "lokal-IOT" type opsætning og hele biblioteket passer i en enkelt streng til webservererklæringen i kode!
ESPAsyncWebServer -https://github.com/me-no-dev/ESPAsyncWebServer- gør hvad der står på boksen og gør det godt
ThingPulse OLED grafikbibliotek (kald nogle gange squix -biblioteket) - https://github.com/ThingPulse/esp8266-oled-ssd130… - meget effektiv og ligetil grafik til ESP -chips. Tillod mig at lave lidt doven programmering og stadig få overbevisende animationer.
Værktøjer/diverse:
loddejern - bruges til at lave lange kabelløb til sensorer, installere overskrifter om bord, krympe krympevik osv.
skruetrækker/fatninger/andet bilværktøj - nødvendigt for at installere sensorer på bilen
dobbeltsidet tape - for at installere måleinstrumenter i huse og installere hus i bil (varm lim og andre ting kan virke, men jeg foretrækker 3M dobbeltsidet udvendig trimbånd. Den holder godt og kan trækkes af uden at beskadige ting.)
saks - til tape og skæring af slanger og lynlåse
lynlåse - til at holde tingene sammen, bundte ledninger under bindestreg og i motorrum, holde sensorer på plads osv.
Trin 1: Kode først/hardware andet
Koden kan downloades her:
Olietryk -
Boost Pressure -
Forøg tryk med ansigter i stedet for analoge lookmålere -
Grafikkode: ThingPulse -biblioteket er så meget effektivt, at du kan tegne xbms lige oven på hinanden og få overbevisende resultater!
Målerbillederne kom faktisk fra et open source grafiklager (https://thenounproject.com/). Kunstneren Iconic, CY (https://thenounproject.com/icon/490005/).
Jeg brugte gimp til at generere 20 forskellige rammer med nålen pegende på hvert kryds. Ikoner for smiley -ansigtet er af NOVITA ASTRI, ID og er her:
Derefter konverterede jeg alt dette til const uint8_t-arrays ved hjælp af denne teknik (tip: hvis farverne er omvendt, når du viser dem, skal du bare vende farverne på originalen): https://blog.squix.org/2015/05/esp8266- nodemcu-ho …
Live animationskode er ret ligetil:
- Få læsning fra sensoren
- Skalalæsning (jeg gjorde det til 1 til 1 for positive boostværdier og bevægede kun nålen, når den er i boost, ikke når den er i vakuum)
- Tegn xbm og sæt derefter taltegn ned for alt andet.
- skyl og gentag
Sensorkode: Jeg genbruger sensorkode, jeg har brugt til disse to sensorer til et par andre projekter. Jeg tilføjede et gennemsnit for at komme væk fra spændende sensorer. Dette inkluderer læsning af hver "læsning" som et gennemsnit på 5 aflæsninger.
Boost-kode (sensor giver en analog værdi fra 0-5 volt, som ADC'en omdanner til trin fra 0-1024):
int getBoost () {float rboost = ((analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36))/5); // float ResultatPSI = (rboost*(. 00488)/(. 022) +20) /6,89 - atmo; // forlade /6,89 for kpa float ResultatPSI = (((rboost /4095) + 0,04) /0,004) * 0,145 - atmo; // med 0,145 til beregning af psi // 4096 værdier på esp32 /*rBoost = rBoost + 1; hvis (rBoost> = 20) {rBoost = 0; }*/ return (ResultPSI); }
Olietrykskode (sensoren varierer sin modstand baseret på det tryk, den registrerer, så en spændingsdeler er påkrævet for at omdanne denne til en spænding fra 0-5v se: https://electronics.stackexchange.com/questions/3…https:/ /www.instructables.com/id/Remote-Car-Monito … (mod bunden) for mere information):
int getOilPSI () {float psival = ((analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36))/5); psival = -0,0601*psival + 177,04 - 14,5; tilbagevenden psival; }
Webserver og AP -funktionalitet: AP -funktionalitet er ret enkel - instantier og AP -objekt med det ESSID, du vil sende og adgangskoden, og du er god til at gå.
const char *ssid = "boost_gauge_ap"; const char *password = "password";
WiFi.softAP (ssid, adgangskode);
Det har endda en DHCP -server, så du behøver ikke bekymre dig om det. Som standard er IP'en 192.168.1.4 (aner ikke hvorfor, det er lige hvad de valgte). Webserverbitten er lidt vanskeligere og krævede lidt research. Grundlæggende vil du have en asynkron webserver, så den kan få liveopdateringsdata. Heldigvis er der et bibliotek til det. Jeg er ikke en javascript -udvikler, så jeg pillede med en masse kortlægnings- og grafbiblioteker, indtil jeg faldt over smoothie -diagrammer. De fleste andre kortlægningsbiblioteker er skrevet sådan, at de arver alle former for kode fra andre biblioteker fra hele internettet, der indlæses dynamisk, når en side gengives. Jeg ville have, at dette skulle fungere uafhængigt af internettet, så dette var et stort fund. For det andet skulle den være lille nok til, at den passede på en arduino, og som du kan se i koden, passer den i et enkelt char -array.
Webservererklæringer: #include AsyncTCP.h #include ESPAsyncWebServer.h… AsyncWebServer server (80); // instantier det og vælg port (80 er standard for http) … server.on ("/", HTTP_GET, (AsyncWebServerRequest *anmodning) {request-> send (200, "text/html", "… // websiden + smoothiecharts -biblioteket i et stort char array}); server.on ("/val", HTTP_GET, (AsyncWebServerRequest *anmodning) {// den første side kalder faktisk denne meget lille side, der bare returnerer værdianmodningen -> send (200, "tekst/html", Sboost);}); server.begin ();
Trin 2: Hardware og ledninger
På billedet i galleriet ses de to sensorer, jeg bruger. Den store guldfarvede er en Autometer 2242 olietrykssensor. Denne sensors krop og tråd er slebet, og terminalen er aflæsningen i modstand.
Autometer giver dig en kurve for modstandsdygtighed over for tryk eller modstand mod temperatur for enhver af deres sensorer. Jeg har konverteret dette til spænding ved hjælp af en spændingsdeler (se ledningsdiagram).
MPX4250AP lufttrykssensoren har tre strømførende ben og flere ubrugte ben. De er V i, jord og sensor output. Det udsender en 0-5v aflæsning, der kan aflæses af mikrokontrolleren (eller i tilfælde af denne mcu 0-3 volt. Så skaleres sensoraflæsning ned ved hjælp af en spændingsdeler.). Specifikationsarket til det findes her:
Der er flere problemer med at nedskalere fra 5v til 3v logik. I mit tilfælde brugte jeg spændingsdeleren for enkelhed, og jeg havde delene omkring mit arbejdsbord. Du vil introducere en lille smule fejl i målingerne baseret på den mulige fejl i de ekstra komponenter (de to modstande). Dette kan i nogle tilfælde gøre dine aflæsninger 10% rabat. Jeg kan leve med dette. Hvis du ikke kan, kan du bruge en opamp og modstande eller en logisk niveauomformer (fås hos forskellige elektronikleverandører. Sparkfun har en her: https://www.sparkfun.com/products/12009 Jeg kan skifte til den som Jeg får nogle gange høje aflæsninger på denne måler (faktisk har jeg vist dette produkt på mit ledningsdiagram).
Jeg drev ESP32'erne via USB. Dette omfattede tilslutning af en direkte oplader som denne: https://www.amazon.com/gp/product/B00U2DGKOK/ref=p… til bilen og derefter bruge en USB -hub til at dele den op. Du kan se, at jeg brugte retvinklede usb -kabler til at sikre, at alt fungerer i et lille område (https://www.amazon.com/gp/product/B00ENZDFQ4/ref=p…).
Andre fotos viser steder, hvor jeg skar huller eller løb tråd. Hver bil vil være anderledes. Vær forsigtig, knive og saks er skarpe, elektricitet kan være farlig, så afbryd venligst batteriet, før du tilslutter tingene.
Trin 3: 3D -trykt hus
Jeg har brugt flere 3D -printede huse til dette.
- En generisk stor 2 skærm rund måler. Du kan se dette på disse billeder på den første side. Jeg satte det ved siden af mit ur på mit instrumentbræt.
- En kilometer-stil med en enkelt måler, der passer i urområdet på en subaru impreza (wrx, sti osv.) Fra ca. 2008 til 2014.
- En dobbeltmåler, der passer på rattstænger og andre let afrundede overflader:
Du er velkommen til at kopiere og ændre disse, så de passer til dine behov. Ingen af dem er perfekte, og de vil alle kræve lidt justering.
Nogle noter:
- Jeg afsluttede mit med plastidip; det er den foretrukne metode til dovne.
- Slibning af plast gør fine partikler, der ikke er gode for dig, brug en passende maske.
- Jeg brugte PETG til mine huse. ABS er også godt. PLA vil skæve i den varme sol på et instrumentbræt.
Anden pris i IoT Challenge
Anbefalede:
Optag og send billeder med ESP32-Cam ved hjælp af ESP8266 WeMos D1 R1 Wifi-processor med Uno: 7 trin
Optag og send billeder med ESP32-Cam ved hjælp af ESP8266 WeMos D1 R1 Wifi-processor med Uno: Tag billede ved hjælp af ESP32-Cam (OV2640) ved hjælp af ESP8266 WeMos D1 R1 WiFI-processor med Uno og send det til e-mail, gem til Google Drive og send det til Whatsapp ved hjælp af Twilio. Krav: ESP8266 WeMos D1 R1 WiFI -processor med Uno (https: // protosupplies
Sådan adskilles en computer med nemme trin og billeder: 13 trin (med billeder)
Sådan adskilles en computer med nemme trin og billeder: Dette er en instruktion om, hvordan du adskiller en pc. De fleste af de grundlæggende komponenter er modulopbyggede og nemme at fjerne. Det er dog vigtigt, at du er organiseret omkring det. Dette hjælper med at forhindre dig i at miste dele og også ved at lave genmonteringen til
ESP32 og OLED -skærm: Internetur - DHT22: 10 trin (med billeder)
ESP32 og OLED Display: Internet Clock - DHT22: This Instructable konkurrerer om konkurrence: " GIFs Challenge 2017 ", Hvis du kan lide det, bedes du give din stemme ved at klikke på ovenstående banner. Mange tak!;-) Denne vejledning er en fortsættelse af en rejse for at lære mere om denne store IoT-enhed
ESP32 WiFi vejrstation med en BME280 -sensor: 7 trin (med billeder)
ESP32 WiFi vejrstation med en BME280 -sensor: Kære venner velkommen til endnu en vejledning! I denne vejledning skal vi bygge et WiFi -aktiveret vejrstationsprojekt! Vi kommer til at bruge den nye, imponerende ESP32 -chip for første gang sammen med en Nextion -skærm. I denne video går vi
Sådan bruges ESP32 til at styre LED med Blynk Via WiFi: 7 trin (med billeder)
Sådan bruges ESP32 til at styre LED med Blynk Via WiFi: Denne vejledning vil bruge ESP32 udviklingsbord til at styre LED med Blynk via WiFi. Blynk er en platform med iOS- og Android -apps til styring af Arduino, Raspberry Pi og lignende over internettet. Det er et digitalt instrumentbræt, hvor du kan bygge et