Innehållsförteckning:

ESP32 WiFi -väderstation med en BME280 -sensor: 7 steg (med bilder)
ESP32 WiFi -väderstation med en BME280 -sensor: 7 steg (med bilder)

Video: ESP32 WiFi -väderstation med en BME280 -sensor: 7 steg (med bilder)

Video: ESP32 WiFi -väderstation med en BME280 -sensor: 7 steg (med bilder)
Video: Доработка ESP32 ВАЖНО! 2024, Juli
Anonim
Image
Image
ESP32 WiFi -väderstation med en BME280 -sensor
ESP32 WiFi -väderstation med en BME280 -sensor
ESP32 WiFi -väderstation med en BME280 -sensor
ESP32 WiFi -väderstation med en BME280 -sensor

Kära vänner välkomna till en annan handledning! I denna handledning ska vi bygga ettWiFi -aktiverat väderstationsprojekt! Vi kommer att använda det nya, imponerande ESP32 -chipet för första gången tillsammans med en Nextion -skärm.

I den här videon ska vi göra detta. Det är ännu ett väderstationsprojekt jag känner till, men den här gången använder vi det nya ESP32 -chipet! Vi använder också den nya BME280 -sensorn som mäter temperaturen, luftfuktigheten och barometertrycket. När vi startar projektet ansluter det till WiFi -nätverket, och det kommer att hämta väderprognosen för min plats från openweathermaps webbplats. Sedan kommer den att visa prognosen på denna 3,2”Nextion Touch Display tillsammans med avläsningarna från sensorn! Avläsningarna uppdateras varannan sekund och väderprognosen varje timme! Som du kan se använder vi i det här projektet den senaste tekniken som en tillverkare har tillgång till idag! Om du är en DIY -veteran kan du bygga detta projekt på fem minuter.

Om du är nybörjare måste du titta på ett par videor innan du försöker detta projekt. Du kan hitta länkar till den här videon i denna instruktionsbok, oroa dig inte.

Låt oss börja!

Steg 1: Skaffa alla delar

Få alla delar
Få alla delar

För att bygga detta projekt behöver vi följande delar:

  • En ESP32 -styrelse ▶
  • En BME280 I2C -sensor ▶
  • En 3,2”Nextion -display ▶
  • Ett litet brödbräda ▶
  • Vissa ledningar ▶

Kostnaden för projektet är cirka 30 dollar.

Istället för ESP32 kunde vi använda det billigare ESP8266 -chipet, men jag bestämde mig för att använda ESP32 för att få lite erfarenhet av det och se vad som fungerar och vad som inte fungerar.

Steg 2: ESP32

Image
Image
ESP32
ESP32

Detta är det första projektet jag någonsin bygger med det nya ESP32 -chipet.

Om du inte är bekant med det är ESP32 -chipet efterföljaren till det populära ESP8266 -chipet som vi har använt många gånger tidigare. ESP32 är ett odjur! Den erbjuder två 32 processorkärnor som arbetar med 160 MHz, en enorm mängd minne, WiFi, Bluetooth och många andra funktioner till en kostnad av cirka 7 $! Fantastiska saker!

Se den detaljerade recensionen som jag har förberett för denna tavla. Jag har bifogat videon på denna Instructable. Det kommer att hjälpa till att förstå varför detta chip kommer att förändra hur vi gör saker för alltid!

Steg 3: Nextion Display

Image
Image
BME280 -sensor
BME280 -sensor

Detta är också det första projektet jag bygger med en Nextion pekskärm.

Nextion -skärmarna är en ny typ av skärmar. De har en egen ARM -processor på baksidan som är ansvarig för att driva displayen och skapa det grafiska användargränssnittet. Så vi kan använda dem med vilken mikrokontroller som helst och uppnå spektakulära resultat.

Jag har förberett en detaljerad instruktionsbok om denna Nextion -skärm som förklarar på djupet hur de fungerar, hur de används och deras nackdelar. Du kan läsa den genom att klicka här:

Steg 4: BME280 -sensor

BME280 -sensor
BME280 -sensor

BME280 i en ny stor sensor från Bosch.

Hittills använde jag BMP180 -sensorn som kan mäta temperatur och barometertryck. BME280 -sensorn kan mäta temperatur, luftfuktighet och barometertryck! Hur coolt är inte det! Vi behöver bara en sensor för att bygga en komplett väderstation!

Utöver det är sensorn mycket liten i storlek och mycket lätt att använda. Modulen som vi ska använda idag använder I2C -gränssnittet så det gör kommunikationen med Arduino mycket enkel. Vi behöver bara ansluta ström och ytterligare två ledningar för att få det att fungera.

Det finns redan många bibliotek utvecklade för denna sensor så att vi kan använda den i våra projekt väldigt enkelt! Kostnaden för sensorn är cirka 5 $. Du kan få det här ▶

OBS: Vi behöver BME280 -sensorn. Det finns också en BMP280 -sensor som inte erbjuder fuktmätning. Var noga med att beställa den sensor du behöver.

Steg 5: Ansluta delarna

Ansluta delarna
Ansluta delarna
Ansluta delarna
Ansluta delarna
Ansluta delarna
Ansluta delarna

Anslutningen av delarna är enkel som du kan se från det schematiska diagrammet.

Eftersom BME280 -sensorn använder I2C -gränssnittet behöver vi bara ansluta två ledningar för att kommunicera med ESP32. Jag har anslutit sensorn till stift 26 och 27. I teorin kan varje digital stift på ESP32 -kortet användas med kringutrustning I2C. Men i praktiken fick jag reda på att vissa stift inte fungerade eftersom de är reserverade för annan användning. Stift 26 och 27 fungerar utmärkt!

För att skicka data till displayen behöver vi bara ansluta en kabel till TX0 -stiftet på ESP32. Jag var tvungen att böja stiftet så här för att ansluta displayens honkabel eftersom ESP32 -kortet är för stort för detta brödbräda.

Efter att ha anslutit delarna måste vi ladda koden till ESP32, och vi måste ladda GUI till Nextion -displayen. Om du har problem med att ladda upp programmet till ESP32 -kortet håller du ned BOOT -knappen efter att du har tryckt på uppladdningsknappen på Arduino IDE.

För att ladda GUI till Nextion -skärmen, kopiera filen WeatherStation.tft som jag delar med dig till ett tomt SD -kort. Sätt in SD -kortet i SD -kortplatsen på baksidan av displayen. Slå sedan på skärmen och GUI laddas. Ta sedan ut SD -kortet och anslut strömmen igen.

Efter att ha lyckats ladda koden kommer projektet att ansluta till WiFi -nätverket, det kommer att få väderprognosen från openweathermap.org -webbplatsen och det kommer att visa avläsningarna från sensorn. Låt oss nu se mjukvarusidan av projektet.

Steg 6: Koden för projektet

Projektets kod
Projektets kod
Projektets kod
Projektets kod
Projektets kod
Projektets kod

För att analysera väderdata behöver vi det utmärkta Arduino JSON -biblioteket. Vi behöver också ett bibliotek för sensorn.

? ESP32 BME280: https://github.com/Takatsuki0204/BME280-I2C-ESP32? Arduino JSON:

Låt oss se koden nu.

Till en början måste vi ange SSID och lösenordet för vårt WiFi -nätverk. Därefter måste vi ange gratis APIKEY från operweathermap.org webbplats. För att skapa din egen API -nyckel måste du registrera dig på webbplatsen. Att få aktuell väderinformation och prognos är gratis, men webbplatsen erbjuder fler alternativ om du är villig att betala lite pengar. Därefter måste vi hitta id: n för vår plats. Hitta din plats och kopiera ID: t som finns på webbadressen till din plats.

Ange sedan din stads id i CityID -variabeln. Ange också höjden för din stad i denna variabel. Detta värde behövs för exakta barometriska tryckavläsningar från sensorn.

const char* ssid = "yourSSID"; const char* password = "yourPassword"; String CityID = "253394"; // Sparta, Grekland String APIKEY = "yourAPIkey"; #define ALTITUDE 216.0 // Höjd i Sparta, Grekland

Nu är vi redo att gå vidare.

Först initierar vi sensorn och ansluter till WiFi -nätverket. Sedan begär vi väderdata från servern.

Vi får svar med väderdata i JSON -format. Innan jag skickar data till JSON -biblioteket raderar jag manuellt några tecken som orsakade mig problem. Sedan tar JSON -biblioteket över, och vi kan enkelt spara data som vi behöver i variabler. Efter att vi har sparat data i variabler är det bara att visa dem på skärmen och vänta en timme innan vi begär ny data från servern. Den enda informationen jag presenterar är väderprognosen, men du kan visa mer information om du vill. Allt här sparas i variabler. Sedan läser vi temperaturen, luftfuktigheten och barometertrycket från sensorn och vi skickar data till Nextion -displayen.

För att uppdatera displayen skickar vi bara några kommandon till den seriella porten så här:

void showConnectingIcon () {Serial.println (); String command = "weatherIcon.pic = 3"; Serial.print (kommando); endNextionCommand (); }

Nextion GUI består av en bakgrund, några textrutor och en bild som ändras beroende på väderprognosen. Titta på instruktionerna för Nextion för mer information. Du kan snabbt designa ditt eget GUI om du vill och visa fler saker på det.

Som alltid kan du hitta koden för projektet bifogad denna Instructable

Steg 7: Slutliga tankar och förbättringar

Slutliga tankar och förbättringar
Slutliga tankar och förbättringar

Som du kan se kan en erfaren tillverkare idag bygga spännande projekt på bara några timmar med några koderader och bara tre delar! Ett sådant här projekt hade varit omöjligt att göra för två år sedan!

Naturligtvis är detta bara början på projektet. Jag skulle vilja lägga till många funktioner till den, som grafer, pekfunktioner som nu saknas, kanske en större skärm och naturligtvis ett vackert 3D -tryckt hölje. Jag kommer också att utforma ett snyggare GUI och ikoner. Jag har några väldigt fräscha idéer att implementera!

Jag vill gärna höra din åsikt om dagens projekt. Vilken typ av funktioner vill du att jag ska lägga till i projektet? Gillar du hur det ser ut? Hur vill du se det utvecklas? Lägg upp dina idéer i kommentarfältet nedan; Jag älskar att läsa dina tankar!

Trådlös tävling
Trådlös tävling
Trådlös tävling
Trådlös tävling

Tvåa i den trådlösa tävlingen

Rekommenderad: