Innholdsfortegnelse:
- Trinn 1: Få alle delene
- Trinn 2: ESP32
- Trinn 3: Nextion -skjermen
- Trinn 4: BME280 -sensor
- Trinn 5: Koble til delene
- Trinn 6: Koden til prosjektet
- Trinn 7: Endelige tanker og forbedringer
Video: ESP32 WiFi værstasjon med en BME280 -sensor: 7 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:25
Kjære venner, velkommen til en annen opplæring! I denne opplæringen skal vi bygge et Wi -Fi -aktivert værstasjonsprosjekt! Vi skal bruke den nye, imponerende ESP32 -brikken for første gang sammen med en Nextion -skjerm.
I denne videoen skal vi lage dette. Det er nok et værstasjonsprosjekt jeg kjenner, men denne gangen bruker vi den nye ESP32 -brikken! Vi bruker også den nye BME280 -sensoren som måler temperatur, fuktighet og barometrisk trykk. Når vi starter prosjektet, kobles det til WiFi -nettverket, og det kommer til å hente værmeldingen for posisjonen min fra nettstedet openweathermap. Deretter vil den vise prognosen på denne 3,2”Nextion Touch Display sammen med avlesningene fra sensoren! Avlesningene oppdateres hvert annet sekund og værmeldingen hver time! Som du kan se, bruker vi i dette prosjektet den nyeste teknologien som er tilgjengelig for en produsent i dag! Hvis du er en DIY -veteran, kan du bygge dette prosjektet på fem minutter.
Hvis du er nybegynner, må du se et par videoer før du prøver dette prosjektet. Du kan finne lenker til disse videoene i denne instruksjonsboken, ikke bekymre deg.
La oss begynne!
Trinn 1: Få alle delene
For å bygge dette prosjektet trenger vi følgende deler:
- Et ESP32 -kort ▶
- En BME280 I2C -sensor ▶
- En 3,2”Nextion -skjerm ▶
- Et lite brødbrett ▶
- Noen ledninger ▶
Kostnaden for prosjektet er rundt 30 dollar.
I stedet for ESP32 kunne vi bruke den billigere ESP8266 -brikken, men jeg bestemte meg for å bruke ESP32 for å få litt erfaring med den og se hva som fungerer og hva som ikke fungerer.
Trinn 2: ESP32
Dette er det første prosjektet jeg noen gang har bygget med den nye ESP32 -brikken.
Hvis du ikke er kjent med den, er ESP32 -brikken etterfølgeren til den populære ESP8266 -brikken vi har brukt mange ganger tidligere. ESP32 er et dyr! Den tilbyr to 32 prosessorkjerner som opererer ved 160 MHz, en enorm mengde minne, WiFi, Bluetooth og mange andre funksjoner med en kostnad på rundt 7 $! Fantastiske ting!
Se den detaljerte anmeldelsen jeg har utarbeidet for dette brettet. Jeg har lagt ved videoen på denne instruksjonsboken. Det vil hjelpe deg med å forstå hvorfor denne brikken vil endre måten vi lager ting på for alltid!
Trinn 3: Nextion -skjermen
Dette er også det første prosjektet jeg bygger med en Nextion -berøringsskjerm.
Nextion -skjermer er nye typer skjermer. De har sin egen ARM -prosessor på baksiden som er ansvarlig for å kjøre displayet og lage det grafiske brukergrensesnittet. Så vi kan bruke dem med hvilken som helst mikrokontroller og oppnå spektakulære resultater.
Jeg har utarbeidet en detaljert instruks om denne Nextion -skjermen som forklarer i dybden hvordan de fungerer, hvordan de brukes og deres ulemper. Du kan lese den ved å klikke her:
Trinn 4: BME280 -sensor
BME280 i en ny flott sensor fra Bosch.
Så langt brukte jeg BMP180 -sensoren som kan måle temperatur og barometrisk trykk. BME280 -sensoren kan måle temperatur, fuktighet og barometrisk trykk! Hvor kult er det! Vi trenger bare en sensor for å bygge en komplett værstasjon!
I tillegg til det er sensoren veldig liten i størrelse og veldig enkel å bruke. Modulen vi skal bruke i dag bruker I2C -grensesnittet, så det gjør kommunikasjonen med Arduino veldig enkel. Vi trenger bare å koble til strøm og to ledninger til for å få det til å fungere.
Det er allerede mange biblioteker utviklet for denne sensoren, så vi kan bruke den i våre prosjekter veldig enkelt! Prisen på sensoren er omtrent 5 $. Du kan få det her ▶
MERK: Vi trenger BME280 -sensoren. Det er også en BMP280 -sensor som ikke tilbyr fuktighetsmåling. Vær forsiktig med å bestille til sensor du trenger.
Trinn 5: Koble til delene
Tilkoblingen av delene er grei som du kan se fra det skjematiske diagrammet.
Siden BME280 -sensoren bruker I2C -grensesnittet, trenger vi bare å koble to ledninger for å kommunisere med ESP32. Jeg har festet sensoren til Pins 26 og 27. I teorien kan hver digital pin på ESP32 -kortet brukes med I2C -eksterne enheter. I praksis skjønte jeg imidlertid at noen pins ikke fungerte fordi de er reservert for annen bruk. Pinnene 26 og 27 fungerer utmerket!
For å sende data til skjermen trenger vi bare å koble en ledning til TX0 -pinnen på ESP32. Jeg måtte bøye pinnen slik for å koble den kvinnelige ledningen til skjermen siden ESP32 -brettet er for stort til dette brødbrettet.
Etter å ha koblet delene, må vi laste koden til ESP32, og vi må laste GUI til Nextion -skjermen. Hvis du har problemer med å laste opp programmet til ESP32 -kortet, holder du inne BOOT -knappen etter at du har trykket på opplastingsknappen på Arduino IDE.
For å laste GUI til Nextion -skjermen, kopierer du WeatherStation.tft -filen jeg skal dele med deg til et tomt SD -kort. Sett SD -kortet inn i SD -kortsporet på baksiden av skjermen. Slå deretter på skjermen, og GUI blir lastet inn. Fjern deretter SD -kortet og koble til strømmen igjen.
Etter å ha lastet koden, vil prosjektet koble til WiFi -nettverket, det vil få værmeldingen fra nettstedet openweathermap.org, og det vil vise avlesningene fra sensoren. La oss nå se programvaresiden av prosjektet.
Trinn 6: Koden til prosjektet
For å analysere værdataene trenger vi det utmerkede Arduino JSON -biblioteket. Vi trenger også et bibliotek for sensoren.
? ESP32 BME280: https://github.com/Takatsuki0204/BME280-I2C-ESP32? Arduino JSON:
La oss se koden nå.
Først må vi angi SSID og passord for WiFi -nettverket vårt. Deretter må vi gå inn på gratis APIKEY fra operweathermap.org nettsted. For å lage din egen API -nøkkel må du registrere deg på nettstedet. Å få gjeldende værdata og værmelding er gratis, men nettstedet tilbyr flere alternativer hvis du er villig til å betale litt penger. Deretter må vi finne id -en til stedet vårt. Finn posisjonen din og kopier ID -en som du finner på URL -en til posisjonen din.
Skriv deretter inn byens ID i CityID -variabelen. Skriv også inn høyden til byen din i denne variabelen. Denne verdien er nødvendig for nøyaktige barometriske trykkavlesninger fra sensoren.
const char* ssid = "yourSSID"; const char* password = "yourPassword"; String CityID = "253394"; // Sparta, Hellas String APIKEY = "yourAPIkey"; #define ALTITUDE 216.0 // Høyde i Sparta, Hellas
Nå er vi klare til å gå videre.
Først initialiserer vi sensoren, og vi kobler til WiFi -nettverket. Deretter ber vi om værdata fra serveren.
Vi får svar med værdataene i JSON -format. Før jeg sender dataene til JSON -biblioteket, sletter jeg manuelt noen tegn som forårsaket problemer. Deretter tar JSON -biblioteket over, og vi kan enkelt lagre dataene vi trenger i variabler. Etter at vi har beholdt dataene i variabler, er det bare å vise dem på skjermen og vente en time før vi ber om nye data fra serveren. Den eneste informasjonen jeg presenterer er værmeldingen, men du kan vise mer informasjon hvis du ønsker det. Det hele her lagret i variabler. Deretter leser vi temperaturen, fuktigheten og barometriske trykket fra sensoren, og vi sender dataene til Nextion -displayet.
For å oppdatere skjermen sender vi bare noen kommandoer til den serielle porten slik:
void showConnectingIcon () {Serial.println (); Stringkommando = "weatherIcon.pic = 3"; Serial.print (kommando); endNextionCommand (); }
Nextion GUI består av en bakgrunn, noen tekstbokser og et bilde som endres avhengig av værmeldingen. Se opplæringsprogrammet for Nextion for mer informasjon. Du kan raskt designe din egen GUI hvis du ønsker det og vise flere ting på den.
Som alltid kan du finne koden til prosjektet vedlagt denne instruksjonsboken
Trinn 7: Endelige tanker og forbedringer
Som du kan se, kan en erfaren produsent i dag bygge spennende prosjekter på bare noen få timer med noen få kodelinjer og bare tre deler! Et prosjekt som dette ville vært umulig å lage for to år siden!
Selvfølgelig er dette bare begynnelsen på prosjektet. Jeg vil gjerne legge til mange funksjoner, som grafer, berøringsfunksjonalitet som nå mangler, kanskje en større skjerm og selvfølgelig et vakkert 3D -trykt kabinett. Jeg vil også designe en bedre GUI og ikoner. Jeg har noen veldig ferske ideer å implementere!
Jeg vil gjerne høre din mening om dagens prosjekt. Hva slags funksjoner vil du at jeg skal legge til i prosjektet? Liker du hvordan det ser ut? Hvordan vil du se det utvikle seg? Vennligst legg ut ideene dine i kommentarfeltet nedenfor; Jeg elsker å lese tankene dine!
Andreplass i den trådløse konkurransen
Anbefalt:
Personlig værstasjon som bruker Raspberry Pi med BME280 i Java: 6 trinn
Personal Weather Station Using Raspberry Pi With BME280 in Java: Dårlig vær ser alltid verre ut gjennom et vindu. Vi har alltid vært interessert i å overvåke vårt lokale vær og det vi ser ut av vinduet. Vi ønsket også bedre kontroll over vårt varme- og klimaanlegg. Å bygge en personlig værstasjon er et godt
NaTaLia værstasjon: Arduino solcelledrevet værstasjon gjort den riktige måten: 8 trinn (med bilder)
NaTaLia værstasjon: Arduino solcelledrevet værstasjon gjort på riktig måte: Etter 1 års vellykket drift på 2 forskjellige steder deler jeg mine solcelledrevne værstasjonsprosjektplaner og forklarer hvordan det utviklet seg til et system som virkelig kan overleve over lang tid perioder fra solenergi. Hvis du følger
Værstasjon i rommet ved hjelp av Arduino og BME280: 4 trinn
Værstasjon på rommet ved hjelp av Arduino & BME280: Tidligere delte jeg en enkel værstasjon som viste temperatur og fuktighet i lokalområdet. Problemet med det var at det ville ta tid å oppdatere og dataene var ikke nøyaktige. I denne opplæringen vil vi lage en innendørs værmonitor
Værstasjon som bruker Raspberry Pi med BME280 i Python: 6 trinn
Værstasjon som bruker Raspberry Pi Med BME280 i Python: er maith an scéalaí an aimir (Været er en god historieforteller) Med global oppvarming og problemer med klimaendringer blir det globale værmønsteret uberegnelig over hele verden, noe som fører til en rekke værrelaterte naturkatastrofer (tørke, ekstreme
Værstasjon med Arduino, BME280 og display for å se trenden i løpet av de siste 1-2 dagene: 3 trinn (med bilder)
Værstasjon Med Arduino, BME280 og display for å se trenden i løpet av de siste 1-2 dagene: Hei! Her på instruksjonsbare værstasjoner har allerede blitt introdusert. De viser gjeldende lufttrykk, temperatur og fuktighet. Det de manglet så langt var en presentasjon av kurset i løpet av de siste 1-2 dagene. Denne prosessen vil ha en