Cuprins:
- Pasul 1: obțineți toate părțile
- Pasul 2: ESP32
- Pasul 3: Afișajul Nextion
- Pasul 4: senzor BME280
- Pasul 5: Conectarea pieselor
- Pasul 6: Codul proiectului
- Pasul 7: Gânduri finale și îmbunătățiri
Video: Stație meteo WiFi ESP32 cu senzor BME280: 7 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:46
Dragi prieteni bun venit la un alt tutorial! În acest tutorial vom construi un proiect de stație meteo activată Wi-Fi! Vom folosi noul impresionant chip ESP32 pentru prima dată împreună cu un afișaj Nextion.
În acest videoclip, vom face acest lucru. Știu că este încă un alt proiect de stație meteo, dar de data aceasta folosim noul cip ESP32! De asemenea, folosim noul senzor BME280 care măsoară temperatura, umiditatea și presiunea barometrică. Când pornim proiectul, acesta se conectează la rețeaua WiFi și va prelua prognoza meteo pentru locația mea de pe site-ul web openweathermap. Apoi va afișa prognoza pe acest afișaj tactil Nextion de 3,2”împreună cu citirile de la senzor! Citirile sunt actualizate la fiecare două secunde și prognoza meteo la fiecare oră! După cum puteți vedea, în acest proiect folosim cele mai noi tehnologii disponibile pentru un producător astăzi! Dacă sunteți un veteran DIY, puteți construi acest proiect în cinci minute.
Dacă sunteți începător, trebuie să urmăriți câteva videoclipuri înainte de a încerca acest proiect. Puteți găsi link-uri către acest videoclip în acest instructabil, nu vă faceți griji.
Să începem!
Pasul 1: obțineți toate părțile
Pentru a construi acest proiect avem nevoie de următoarele părți:
- O placă ESP32 ▶
- Un senzor BME280 I2C ▶
- Un afișaj Nextion de 3,2”▶
- Un mic panou de lucru ▶
- Unele fire ▶
Costul proiectului este de aproximativ 30 $.
În loc de ESP32, am putea folosi cipul ESP8266 mai ieftin, dar am decis să folosesc ESP32 pentru a câștiga ceva experiență cu el și a vedea ce funcționează și ce nu.
Pasul 2: ESP32
Acesta este primul proiect pe care l-am construit vreodată cu noul cip ESP32.
Dacă nu sunteți familiarizați cu acesta, cipul ESP32 este succesorul popularului cip ESP8266 pe care l-am folosit de mai multe ori în trecut. ESP32 este o bestie! Oferă două 32 de nuclee de procesare care funcționează la 160 MHz, o cantitate masivă de memorie, WiFi, Bluetooth și multe alte caracteristici cu un cost de aproximativ 7 USD! Lucruri uimitoare!
Vă rugăm să urmăriți recenzia detaliată pe care am pregătit-o pentru acest forum. Am atașat videoclipul la acest instructabil. Va ajuta să înțelegeți de ce acest cip va schimba modul în care facem lucrurile pentru totdeauna!
Pasul 3: Afișajul Nextion
De asemenea, acesta este primul proiect pe care îl construiesc cu un ecran tactil Nextion.
Afișajele Nextion sunt tipuri noi de afișaje. Au în spate propriul lor procesor ARM, care este responsabil pentru conducerea afișajului și crearea interfeței grafice cu utilizatorul. Așadar, le putem folosi cu orice microcontroler și putem obține rezultate spectaculoase.
Am pregătit un Instructable detaliat despre acest afișaj Nextion, care explică în profunzime modul în care funcționează, modul de utilizare și dezavantajele lor. O puteți citi făcând clic aici:
Pasul 4: senzor BME280
BME280 într-un nou senzor excelent de la Bosch.
Până acum foloseam senzorul BMP180 care poate măsura temperatura și presiunea barometrică. Senzorul BME280 poate măsura temperatura, umiditatea și presiunea barometrică! Cat de tare e asta! Avem nevoie doar de un senzor pentru a construi o stație meteo completă!
În plus, senzorul are dimensiuni foarte mici și este foarte ușor de utilizat. Modulul pe care îl vom folosi astăzi folosește interfața I2C, astfel încât comunicarea cu Arduino ușurează foarte mult. Noi doar să conectăm curentul și încă două fire pentru a-l face să funcționeze.
Există deja multe biblioteci dezvoltate pentru acest senzor, astfel încât să îl putem folosi foarte ușor în proiectele noastre! Costul senzorului este de aproximativ 5 $. O puteți obține aici ▶
NOTĂ: Avem nevoie de senzorul BME280. Există, de asemenea, un senzor BMP280 care nu oferă măsurarea umidității. Aveți grijă să comandați senzorul de care aveți nevoie.
Pasul 5: Conectarea pieselor
Conexiunea pieselor este simplă, după cum puteți vedea din diagrama schematică.
Deoarece senzorul BME280 utilizează interfața I2C, trebuie să conectăm doar două fire pentru a comunica cu ESP32. Am atașat senzorul la pinii 26 și 27. În teorie, fiecare pin digital al plăcii ESP32 poate fi utilizat cu periferice I2C. Totuși, în practică, am aflat că unele știfturi nu au funcționat, deoarece sunt rezervate pentru alte utilizări. Pinii 26 și 27 funcționează excelent!
Pentru a trimite date pe ecran, trebuie doar să conectăm un fir la pinul TX0 al ESP32. A trebuit să îndoiți pinul astfel, pentru a conecta firul feminin al afișajului, deoarece placa ESP32 este prea mare pentru această placă.
După conectarea pieselor, trebuie să încărcăm codul pe ESP32 și trebuie să încărcăm interfața grafică pe afișajul Nextion. Dacă aveți probleme la încărcarea programului pe placa ESP32, țineți apăsat butonul BOOT după ce apăsați butonul de încărcare de pe Arduino IDE.
Pentru a încărca interfața grafică pe afișajul Nextion, copiați fișierul WeatherStation.tft pe care îl voi partaja cu dvs. pe un card SD gol. Introduceți cardul SD în fanta pentru cardul SD din partea din spate a afișajului. Apoi porniți afișajul și GUI va fi încărcat. Apoi scoateți cardul SD și conectați din nou alimentarea.
După încărcarea cu succes a codului, proiectul se va conecta la rețeaua WiFi, va primi prognoza meteo de pe site-ul web openweathermap.org și va afișa citirile de la senzor. Să vedem acum partea software a proiectului.
Pasul 6: Codul proiectului
Pentru a analiza datele despre vreme, avem nevoie de excelenta bibliotecă Arduino JSON. De asemenea, avem nevoie de o bibliotecă pentru senzor.
? ESP32 BME280: https://github.com/Takatsuki0204/BME280-I2C-ESP32? Arduino JSON:
Să vedem codul acum.
La început, trebuie să setăm SSID-ul și parola rețelei noastre WiFi. Apoi, trebuie să introducem APIKEY-ul gratuit de pe site-ul operweathermap.org. Pentru a vă crea propria cheie API, trebuie să vă înscrieți pe site. Obținerea datelor meteo și prognozele actuale este gratuită, dar site-ul oferă mai multe opțiuni dacă sunteți dispus să plătiți niște bani. Apoi, trebuie să găsim id-ul locației noastre. Găsiți locația dvs. și copiați ID-ul care poate fi găsit la adresa URL a locației dvs.
Apoi introduceți ID-ul orașului dvs. în variabila CityID. De asemenea, introduceți altitudinea orașului dvs. în această variabilă. Această valoare este necesară pentru citiri exacte ale presiunii barometrice de la senzor.
const char * ssid = "yourSSID"; const char * password = "yourPassword"; String CityID = "253394"; // Sparta, Grecia String APIKEY = "yourAPIkey"; #define ALTITUDE 216.0 // Altitudine în Sparta, Grecia
Acum suntem gata să mergem mai departe.
La început, inițializăm senzorul și ne conectăm la rețeaua WiFi. Apoi solicităm datele meteo de la server.
Primim un răspuns cu datele meteo în format JSON. Înainte de a trimite datele în biblioteca JSON, șterg manual câteva caractere care îmi cauzau probleme. Apoi biblioteca JSON preia și putem salva cu ușurință datele de care avem nevoie în variabile. După ce am păstrat datele în variabile, tot ce trebuie să facem este să le afișăm pe ecran și să așteptăm o oră înainte de a solicita date noi de la server. Singurele informații pe care le prezint sunt prognoza meteo, dar puteți afișa mai multe informații dacă doriți. Totul aici salvat în variabile. Apoi citim temperatura, umiditatea și presiunea barometrică de la senzor și trimitem datele pe afișajul Nextion.
Pentru a actualiza afișajul, trimitem pur și simplu câteva comenzi către portul serial astfel:
void showConnectingIcon () {Serial.println (); Comanda șir = "weatherIcon.pic = 3"; Serial.print (comandă); endNextionCommand (); }
GUI-ul Nextion constă dintr-un fundal, câteva casete de text și o imagine care se modifică în funcție de prognoza meteo. Vă rugăm să urmăriți tutorialul de afișare Nextion pentru mai multe informații. Puteți să vă proiectați rapid propria GUI dacă doriți și să afișați mai multe lucruri pe ea.
Ca întotdeauna, puteți găsi codul proiectului atașat la acest instructabil
Pasul 7: Gânduri finale și îmbunătățiri
După cum puteți vedea, un producător cu experiență de astăzi poate construi proiecte interesante în doar câteva ore, cu câteva linii de cod și doar trei părți! Un astfel de proiect ar fi fost imposibil de realizat chiar acum doi ani!
Desigur, acesta este doar începutul proiectului. Aș dori să îi adaug multe funcții, cum ar fi graficele, funcționalitatea tactilă care lipsește acum, poate un afișaj mai mare și, bineînțeles, o carcasă imprimată 3D cu aspect frumos. De asemenea, voi proiecta o interfață grafică mai bună și pictograme. Am câteva idei foarte proaspete de implementat!
Mi-ar plăcea să vă aud părerea despre proiectul de astăzi. Ce fel de caracteristici doriți să adaug la proiect? Îți place cum arată? Cum vrei să vezi cum evoluează? Vă rugăm să postați ideile dvs. în secțiunea de comentarii de mai jos; Îmi place să vă citesc gândurile!
Locul doi în concursul wireless
Recomandat:
Stație meteo personală folosind Raspberry Pi cu BME280 în Java: 6 pași
Stație meteo personală folosind Raspberry Pi cu BME280 în Java: vremea rea arată întotdeauna mai rău printr-o fereastră. Am fost mereu interesați să monitorizăm vremea noastră locală și ceea ce vedem pe fereastră. De asemenea, am dorit un control mai bun asupra sistemului nostru de încălzire și aer condiționat. Construirea unei stații meteorologice personale este o grea
Stație meteo DIY și stație senzor WiFi: 7 pași (cu imagini)
Stație meteo DIY și stație senzor WiFi: În acest proiect vă voi arăta cum să creați o stație meteo împreună cu o stație senzor WiFi. Stația senzorului măsoară datele locale de temperatură și umiditate și le trimite, prin WiFi, către stația meteo. Stația meteo afișează apoi t
Stație meteo pentru cameră folosind Arduino și BME280: 4 pași
Stație meteo cameră folosind Arduino și BME280: Anterior am împărtășit o stație meteo simplă care afișa temperatura și umiditatea zonei locale. Problema cu aceasta a fost că va fi nevoie de timp pentru actualizare și datele nu au fost exacte. În acest tutorial vom realiza un monitor de vreme în interior
Stație meteo folosind Wemos D1 Mini, BME280 și Sensate .: 6 pași
Stație meteo folosind Wemos D1 Mini, BME280 și Sensate .: În postările anterioare am împărtășit diferite metode pentru a construi o stație meteo. Dacă nu ați verificat-o, aici este un link. În acest instructiv, voi arăta cum să construiți o stație meteo simplă folosind Wemos și o platformă IoT numită Sensate
Stație meteo Cu Arduino, BME280 și afișaj pentru a vedea tendința în ultimele 1-2 zile: 3 pași (cu imagini)
Stație meteo Cu Arduino, BME280 și afișaj pentru a vedea tendința în ultimele 1-2 zile: Bună! Acestea arată presiunea curentă a aerului, temperatura și umiditatea. Ceea ce le-a lipsit până acum a fost o prezentare a cursului în ultimele 1-2 zile. Acest proces ar avea un