Sadržaj:

ESP32 WiFi meteorološka stanica sa senzorom BME280: 7 koraka (sa slikama)
ESP32 WiFi meteorološka stanica sa senzorom BME280: 7 koraka (sa slikama)

Video: ESP32 WiFi meteorološka stanica sa senzorom BME280: 7 koraka (sa slikama)

Video: ESP32 WiFi meteorološka stanica sa senzorom BME280: 7 koraka (sa slikama)
Video: Arduino Nano, BME280 и SSD1306 OLED-метеостанция 2024, Juli
Anonim
Image
Image
ESP32 WiFi meteorološka stanica sa BME280 senzorom
ESP32 WiFi meteorološka stanica sa BME280 senzorom
ESP32 WiFi meteorološka stanica sa BME280 senzorom
ESP32 WiFi meteorološka stanica sa BME280 senzorom

Dragi prijatelji, dobrodošli na još jedan vodič! U ovom ćemo vodiču izgraditi projekt meteorološke stanice s omogućenim Wi -Fi -jem! Prvi put ćemo koristiti novi, impresivni ESP32 čip zajedno sa Nextion ekranom.

U ovom videu ćemo to postići. To je još jedan projekt meteorološke stanice koji znam, ali ovaj put koristimo novi čip ESP32! Koristimo i novi BME280 senzor koji mjeri temperaturu, vlažnost i barometarski tlak. Kad uključimo projekt, povezuje se s WiFi mrežom i dohvatit će vremensku prognozu za moju lokaciju s web stranice openweathermap. Zatim će prikazati prognozu na ovom 3.2 -inčnom Nextion dodirnom ekranu zajedno sa očitanjima sa senzora! Očitavanja se ažuriraju svake dvije sekunde, a vremenska prognoza svakih sat vremena! Kao što vidite, u ovom projektu koristimo najnovije tehnologije dostupne proizvođaču danas! Ako ste "uradi sam" veteran, ovaj projekat možete izgraditi za pet minuta.

Ako ste početnik, morate pogledati nekoliko videozapisa prije nego što pokušate ovaj projekt. Veze do ovog videa možete pronaći u ovom uputstvu, ne brinite.

Počnimo!

Korak 1: Nabavite sve dijelove

Nabavite sve dijelove
Nabavite sve dijelove

Za izradu ovog projekta potrebni su nam sljedeći dijelovi:

  • ESP32 ploča ▶
  • BME280 I2C senzor ▶
  • Nextion ekran od 3,2 inča ▶
  • Mala pločica ▶
  • Neke žice ▶

Cijena projekta je oko 30 USD.

Umjesto ESP32, mogli bismo koristiti jeftiniji čip ESP8266, ali odlučio sam upotrijebiti ESP32 da steknem iskustvo s njim i vidim što radi, a što ne.

Korak 2: ESP32

Image
Image
ESP32
ESP32

Ovo je prvi projekt koji sam ikada izgradio s novim ESP32 čipom.

Ako niste upoznati s njim, čip ESP32 je nasljednik popularnog čipa ESP8266 koji smo koristili mnogo puta u prošlosti. ESP32 je zver! Nudi dva 32 procesorska jezgra koja rade na 160MHz, ogromnu količinu memorije, WiFi, Bluetooth i mnoge druge funkcije po cijeni od oko 7 USD! Zadivljujuće stvari!

Molimo pogledajte detaljnu recenziju koju sam pripremio za ovu ploču. Priložio sam video na ovom uputstvu. Pomoći će razumjeti zašto će ovaj čip zauvijek promijeniti način na koji stvaramo stvari!

Korak 3: Nextion ekran

Image
Image
BME280 senzor
BME280 senzor

Takođe, ovo je prvi projekat koji sam izgradio sa Nextion ekranom osjetljivim na dodir.

Nextion ekrani su nova vrsta ekrana. Oni imaju vlastiti ARM procesor straga koji je odgovoran za upravljanje zaslonom i stvaranje grafičkog korisničkog sučelja. Dakle, možemo ih koristiti sa bilo kojim mikrokontrolerom i postići spektakularne rezultate.

Pripremio sam detaljan Instructable o ovom Nextion ekranu koji detaljno objašnjava kako oni rade, kako ih koristiti i njihove nedostatke. Možete ga pročitati klikom ovdje:

Korak 4: BME280 senzor

BME280 senzor
BME280 senzor

BME280 u novom sjajnom Boschovom senzoru.

Do sada sam koristio senzor BMP180 koji može mjeriti temperaturu i barometarski tlak. Senzor BME280 može mjeriti temperaturu, vlažnost i barometarski tlak! Kako je to super! Potreban nam je samo jedan senzor za izgradnju potpune meteorološke stanice!

Osim toga, senzor je vrlo malih dimenzija i vrlo jednostavan za upotrebu. Modul koji ćemo danas koristiti koristi I2C sučelje pa komunikaciju s Arduinom čini vrlo jednostavnom. Moramo samo spojiti napajanje i još dvije žice kako bi funkcioniralo.

Za ovaj senzor već su razvijene mnoge biblioteke pa ga možemo vrlo lako koristiti u našim projektima! Cijena senzora je oko 5 USD. Možete ga preuzeti ovdje ▶

NAPOMENA: Potreban nam je senzor BME280. Tu je i BMP280 senzor koji ne nudi mjerenje vlažnosti. Budite oprezni pri naručivanju potrebnog senzora.

Korak 5: Povezivanje dijelova

Povezivanje delova
Povezivanje delova
Povezivanje delova
Povezivanje delova
Povezivanje delova
Povezivanje delova

Povezivanje dijelova je jednostavno, što možete vidjeti sa shematskog dijagrama.

Budući da BME280 senzor koristi I2C sučelje, potrebno je samo spojiti dvije žice za komunikaciju s ESP32. Priključio sam senzor na pinove 26 i 27. U teoriji, svaki digitalni pin ESP32 ploče može se koristiti s I2C perifernim uređajima. U praksi sam ipak otkrio da neke iglice nisu radile jer su rezervirane za drugu upotrebu. Igle 26 i 27 odlično funkcioniraju!

Za slanje podataka na zaslon potrebno je samo jednu žicu spojiti na TX0 pin ESP32. Morao sam ovako saviti pin da povežem žensku žicu ekrana jer je ploča ESP32 prevelika za ovu ploču.

Nakon povezivanja dijelova, moramo učitati kôd na ESP32, a GUI na Nextion zaslon. Ako imate problema s učitavanjem programa na ploču ESP32, pritisnite tipku BOOT nakon što pritisnete gumb za prijenos na Arduino IDE -u.

Da biste učitali GUI na Nextion ekran, kopirajte datoteku WeatherStation.tft koju ću podijeliti s vama na praznu SD karticu. Umetnite SD karticu u otvor za SD karticu na stražnjoj strani ekrana. Zatim uključite ekran i GUI će se učitati. Zatim uklonite SD karticu i ponovo spojite napajanje.

Nakon uspješnog učitavanja koda, projekt će se povezati s WiFi mrežom, dobit će vremensku prognozu s web stranice openweathermap.org i prikazat će očitanja sa senzora. Pogledajmo sada softversku stranu projekta.

Korak 6: Kodeks projekta

Kodeks projekta
Kodeks projekta
Kodeks projekta
Kodeks projekta
Kodeks projekta
Kodeks projekta

Za raščlanjivanje vremenskih podataka potrebna nam je izvrsna Arduino JSON biblioteka. Potrebna nam je i biblioteka za senzor.

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

Pogledajmo kod sada.

Prvo moramo postaviti SSID i lozinku naše WiFi mreže. Zatim moramo ući u besplatni APIKEY sa web stranice operweathermap.org. Da biste stvorili vlastiti API ključ, morate se prijaviti na web mjestu. Dobivanje trenutnih vremenskih podataka i prognoza besplatno je, ali web stranica nudi više opcija ako ste spremni platiti nešto novca. Zatim moramo pronaći id naše lokacije. Pronađite svoju lokaciju i kopirajte ID koji se može pronaći na URL -u vaše lokacije.

Zatim unesite gradski ID u varijablu CityID. Također, u ovu varijablu unesite nadmorsku visinu vašeg grada. Ova vrijednost je potrebna za točna očitanja barometrijskog pritiska sa senzora.

const char* ssid = "yourSSID"; const char* password = "yourPassword"; String CityID = "253394"; // Sparta, Grčka String APIKEY = "yourAPIkey"; #define ALTITUDE 216.0 // Nadmorska visina u Sparti, Grčka

Sada smo spremni za nastavak.

Isprva inicijaliziramo senzor i povezujemo se na WiFi mrežu. Zatim od servera tražimo vremenske podatke.

Dobivamo odgovor s vremenskim podacima u JSON formatu. Prije slanja podataka u JSON biblioteku, ručno brišem neke znakove koji su mi stvarali probleme. Tada preuzima biblioteka JSON i lako možemo spremiti potrebne podatke u varijable. Nakon što smo podatke zadržali u varijablama, sve što trebamo učiniti je prikazati ih na ekranu i pričekati sat vremena prije nego što zatražimo nove podatke s poslužitelja. Jedine informacije koje iznosim je vremenska prognoza, ali možete prikazati više informacija ako želite. Ovdje je sve spremljeno u varijable. Zatim očitavamo temperaturu, vlažnost i barometarski pritisak sa senzora i šaljemo podatke na Nextion zaslon.

Da bismo ažurirali zaslon, jednostavno šaljemo neke naredbe na serijski port ovako:

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

Nextion GUI sastoji se od pozadine, nekih okvira za tekst i slike koja se mijenja ovisno o vremenskoj prognozi. Za više informacija pogledajte vodič za prikaz Nextion. Ako želite, možete brzo dizajnirati vlastiti GUI i prikazati više stvari na njemu.

Kao i uvijek, kôd projekta možete pronaći u prilogu ovog uputstva

Korak 7: Završne misli i poboljšanja

Završna razmišljanja i poboljšanja
Završna razmišljanja i poboljšanja

Kao što vidite, iskusni proizvođač danas može izgraditi uzbudljive projekte u samo nekoliko sati sa nekoliko redova koda i samo tri dijela! Ovakav projekat bilo bi nemoguće napraviti čak ni pre dve godine!

Naravno, ovo je tek početak projekta. Želeo bih da mu dodam mnoge funkcije, poput grafikona, funkcionalnosti dodira koja sada nedostaje, možda veći ekran i, naravno, kućište sa 3D štampanjem prelepog izgleda. Takođe ću dizajnirati grafički interfejs i ikone boljeg izgleda. Imam nekoliko svježih ideja za implementaciju!

Volio bih čuti vaše mišljenje o današnjem projektu. Koje karakteristike želite da dodam projektu? Sviđa li vam se kako izgleda? Kako želite da vidite da se razvija? Molimo vas da svoje ideje objavite u odjeljku za komentare ispod; Volim čitati vaše misli!

Bežično takmičenje
Bežično takmičenje
Bežično takmičenje
Bežično takmičenje

Drugoplasirani u takmičenju za bežičnu vezu

Preporučuje se: