Sadržaj:

WiFi vremenska stanica ESP32 sa senzorom BME280: 7 koraka (sa slikama)
WiFi vremenska stanica ESP32 sa senzorom BME280: 7 koraka (sa slikama)

Video: WiFi vremenska stanica ESP32 sa senzorom BME280: 7 koraka (sa slikama)

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

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

U ovom videu ćemo to postići. To je još jedan projekt meteorološke stanice koji poznajem, ali ovaj put koristimo novi čip ESP32! Također koristimo novi senzor BME280 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 zaslonu zajedno s očitanjima sa senzora! Očitanja 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 DIY veteran, možete izgraditi ovaj projekt 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 Instructable, 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 osjetnik ▶
  • Nextion zaslon od 3,2 inča ▶
  • Mali Breadboard ▶
  • Neke žice ▶

Cijena projekta je oko 30 USD.

Umjesto ESP32, mogli bismo koristiti jeftiniji čip ESP8266, ali odlučio sam upotrijebiti ESP32 kako bih stekao iskustvo s njim i vidio što radi, a što ne.

Korak 2: ESP32

Image
Image
ESP32
ESP32

Ovo je prvi projekt koji sam napravio 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 zvijer! Nudi dvije 32 procesorske jezgre koje rade na 160MHz, ogromnu količinu memorije, WiFi, Bluetooth i mnoge druge značajke sa cijenom od oko 7 USD! Nevjerojatna stvar!

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

Korak 3: Nextion zaslon

Image
Image
Senzor BME280
Senzor BME280

Također, ovo je prvi projekt koji gradim s Nextion zaslonom osjetljivim na dodir.

Nextion zasloni su nova vrsta zaslona. Imaju svoj 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 zaslonu koji detaljno objašnjava kako oni rade, kako ih koristiti i njihove nedostatke. Možete ga pročitati klikom ovdje:

Korak 4: BME280 senzor

Senzor BME280
Senzor BME280

BME280 u novom Boschovom velikom 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 cool! Za izgradnju kompletne meteorološke stanice potreban nam je samo jedan senzor!

Osim toga, senzor je vrlo malih dimenzija i vrlo jednostavan za korištenje. 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 knjižnice pa ga možemo vrlo lako koristiti u našim projektima! Cijena senzora je oko 5 USD. Možete ga dobiti 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: Spajanje dijelova

Spajanje dijelova
Spajanje dijelova
Spajanje dijelova
Spajanje dijelova
Spajanje dijelova
Spajanje dijelova

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

Budući da senzor BME280 koristi sučelje I2C, 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 iglu za spajanje ženske žice zaslona 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 prijenosom programa na ploču ESP32, držite gumb BOOT nakon što pritisnete gumb za prijenos na Arduino IDE -u.

Za učitavanje grafičkog sučelja na Nextion zaslon, kopirajte datoteku WeatherStation.tft koju ću podijeliti s vama na praznu SD karticu. Umetnite SD karticu u utor za SD karticu na stražnjoj strani zaslona. Zatim uključite zaslon i GUI će se učitati. Zatim uklonite SD karticu i ponovno 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: Kôd projekta

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

Za raščlanjivanje vremenskih podataka potrebna nam je izvrsna Arduino JSON knjižnica. Također nam je potrebna biblioteka za senzor.

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

Pogledajmo sada kôd.

U početku moramo postaviti SSID i lozinku naše WiFi mreže. Zatim moramo ući u besplatni APIKEY s 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 mogućnosti 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 ID grada u varijablu CityID. Također, u ovu varijablu unesite nadmorsku visinu vašeg grada. Ova je vrijednost potrebna za točna očitanja barometrijskog tlaka s senzora.

const char* ssid = "yourSSID"; const char* lozinka = "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 poslužitelja tražimo vremenske podatke.

Dobivamo odgovor s vremenskim podacima u JSON formatu. Prije slanja podataka u knjižnicu JSON, ručno sam izbrisao neke znakove koji su mi stvarali probleme. Tada preuzima knjižnica JSON, a podatke koji su nam potrebni lako možemo spremiti u varijable. Nakon što smo podatke zadržali u varijablama, sve što moramo 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, vlagu i barometarski tlak sa senzora i šaljemo podatke na zaslon Nextion.

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

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

Nextion GUI sastoji se od pozadine, nekih tekstualnih okvira 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 Instructable -a

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 s nekoliko redaka koda i samo tri dijela! Ovakav projekt bilo bi nemoguće napraviti ni prije dvije godine!

Naravno, ovo je tek početak projekta. Htio bih mu dodati mnoge značajke, poput grafikona, funkcionalnosti dodira koja sada nedostaje, možda veći zaslon i, naravno, kućište s 3D ispisom prekrasnog izgleda. Također ću dizajnirati bolje izgledati GUI i ikone. Imam jako svježe ideje za implementaciju!

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

Bežično natjecanje
Bežično natjecanje
Bežično natjecanje
Bežično natjecanje

Drugoplasirani na natjecanju za bežičnu vezu

Preporučeni: