Cuprins:

ESP8266 NodeMCU cu indicatoare BME280 și diagramă: 5 pași
ESP8266 NodeMCU cu indicatoare BME280 și diagramă: 5 pași

Video: ESP8266 NodeMCU cu indicatoare BME280 și diagramă: 5 pași

Video: ESP8266 NodeMCU cu indicatoare BME280 și diagramă: 5 pași
Video: Water Level Indicator project using NodeMCU ESP8266 Blynk & Ultrasonic Sensor 2024, Noiembrie
Anonim
ESP8266 NodeMCU cu indicatoare și diagramă BME280
ESP8266 NodeMCU cu indicatoare și diagramă BME280
ESP8266 NodeMCU cu indicatoare BME280 și diagramă
ESP8266 NodeMCU cu indicatoare BME280 și diagramă

Indicatoare și diagramă fantezie pentru placa dvs. de dezvoltare ESP8266 NodeMCU cu senzor de temperatură, umiditate și presiune BME280. Thingspeak va stoca toate datele dvs. în cloud pentru recuperare în orice moment, în următorii ani (sperăm). Indicatoarele și graficul sunt populate din datele stocate la thingspeak și sunt actualizate automat la fiecare 5 minuete.

Articole necesare:

Placa de dezvoltare ESP8266 NodeMCU (3,79 USD de la Banggood.com Hong Kong)

Bosch BME280 (5,63 dolari de la Banggood.com Hong Kong)

Breadboard Jumpers (3,09 USD de la Banggood.com Hong Kong)

Breadboard (2,28 USD de la Banggood.com Hong Kong)

Sursa de alimentare, gratuită dacă aveți un încărcător de telefon micro USB

Cablu micro USB, gratuit dacă aveți deja unul

Arduino IDE, descărcare gratuită

Obțineți fișierele de cod.ino și. HTML aici

Pasul 1: Creați și configurați canalele dvs. Thingspeak

Creați și configurați canalele dvs. Thingspeak
Creați și configurați canalele dvs. Thingspeak

1. Creați un cont Thingspeak gratuit și un nou canal la https://thingspeak.com, Apelați canalul „ESP8266-NodeMCU-12E-BME280”

2. Noul canal ar trebui să aibă 3 câmpuri denumite Presiune umiditate temperatură în acea ordine specifică (Notă majusculă Prima literă).

3. Rețineți noul dvs. „ID canal” XXXXXX în „Setări canal”

4. Faceți clic pe link-ul „API Keys” și luați notă de „API Write” și „Read API Keys” XXXXXXXXXXXXXXXX. De asemenea, faceți din acesta un canal public sub partajare.

5. Creați un al doilea canal Thingspeak care va deține datele „Today” (începând cu miezul nopții) High Low. Numiți-l „BME280 Daily High Low Data”

6. Acest nou canal ar trebui să aibă 6 câmpuri denumite Tmax Tmin Hmax Hmin Pmax Pmin în acea ordine specifică (Notă majusculă Prima literă).

7. Rețineți „BME280 Daily High Low Data” „ID canal”, „Citire” și „Scriere chei API” la fel ca în pașii de mai sus.

Pasul 2: Configurați Arduino IDE, Biblioteci și configurați BME280

Configurați IDE Arduino, Biblioteci și configurați BME280
Configurați IDE Arduino, Biblioteci și configurați BME280

8. Urmați instrucțiunile pentru instalarea nucleului Arduino IDE și ESP8266 la

9. Lansați ID-ul Arduino, astfel încât să putem instala cele patru biblioteci de care vom avea nevoie.

10. Veți avea nevoie de biblioteca „Adafruit Unified Sensor Driver”, instalați-o în „Library Manager” în Arduino IDE. Meniu Schiță Include bibliotecă Gestionare Bibliotecile efectuează o căutare după Tip = "Recomandat" Subiect = "Senzori", apoi puneți cuvintele Adafruit Unified Sensor Driver în caseta de căutare. Cel pe care îl doriți spune „Adafruit Unified Sensor Driver by Adafruit”

11. În plus, veți avea nevoie și de „Biblioteca Adafruit BME280” să îl instalați în „Library Manager” în Arduino IDE. Meniu Schiță Include bibliotecă Gestionare Bibliotecile efectuează o căutare după Tip = „Recomandat” Subiect = „Senzori”, apoi puneți cuvintele Bibliotecă Adafruit BME280 în caseta de căutare. Cea pe care o doriți spune „Biblioteca Adafruit BME280 by Adafruit”

12. O altă bibliotecă de care aveți nevoie este Wire.h, instalați-o în „Library Manager” în Arduino IDE. Meniu, schiță Include bibliotecă Gestionați bibliotecile Efectuați o căutare după tip = "Contribuit" Subiect = "Semnal intrare / ieșire", apoi introduceți cuvântul Sârmă în caseta de căutare. Cel pe care îl doriți spune „Wire Built-in by Arduino” Cel mai probabil în partea de jos a selecției.

13. Încă o bibliotecă, ESP8266WiFi, instalați-o în „Library Manager” în Arduino IDE. Meniu, schiță Include bibliotecă Gestionare biblioteci Efectuați o căutare după tip = Subiect contribuit = "Comunicare", apoi puneți cuvântul ESP8266wifi în caseta de căutare. Cel pe care îl doriți spune „ESP8266wifi Built-in by Ivan Grokhotkov”

14. Adresa I2C pentru BME280 este codificată în fișierul Adafruit_BME280.h (căutați linia #define BME280_ADDRESS 0x77) din folderul Adafruit_BME280_Library. Modulele senzorului BME ale Adafruit sunt cablate pentru a utiliza adresa I2C de 0x77. Dar BME280 poate avea o adresă I2C ușor diferită (0x76) dacă pinul său SDO extern este împământat. Dacă utilizați modulele senzorilor de la o terță parte, este probabil ca adresa sa să nu se potrivească cu valoarea implicită din biblioteca Adafruit. De exemplu, pentru majoritatea modulelor senzorului BME280 disponibile pe eBay sau Aliexpress, adresa lor I2C este 0x76. Dacă nu primiți un răspuns de la senzor utilizând adresa implicită setată în fișierul Adafruit_BME280.h, este posibil să fie necesar să îl schimbați la 0x76.

Puncte de conectare BME280 și ESP8266. ESP8266 3.3V la BME280 Vin, ESP8266 GND la BME280 GND, ESP8266 D4 la BME280 SCL, ESP8266 D3 la BME280 SDA. 15. Deschideți fișierul ESP8266-NodeMCU-12E-BME280.html furnizat într-un editor de text și introduceți „ESP8266-NodeMCU-12E-BME280” (primul canal pe care l-ați creat) „ID canal” și „Citire cheie API” pentru variabilele cheie1 și chan1. De asemenea, introduceți „Citirea cheii API” și „ID-ul canalului” pentru „BME280 Daily High Low Data” (Al doilea canal pe care l-ați creat) pentru key2 și chan2. În plus, introduceți compensarea fusului orar de la UTC. Ca în -5 pentru mine. Toate valorile trebuie să fie în interiorul ghilimelelor „XXXXX” furnizate. Salvați și ieșiți din editorul de text.

Conectați ESP8266 cu cablul USB la computer, apoi selectați portul serial pentru a fi portul USB.

Este posibil ca utilizatorii de Linux să fie nevoiți să schimbe proprietatea portului USB pentru a comunica cu / dev / ttyUSB0 ca în „sudo chown yourusername / dev / ttyUSB0” sau ce ați selectat vreodată ca port în configurare.

Pasul 3: Programați ESP8266 cu Arduino IDE

Programați ESP8266 cu IDE-ul Arduino
Programați ESP8266 cu IDE-ul Arduino

16. În continuare vom programa ESP8266. Conectați un cablu USB între ESP8266 și computer.

Încărcați fișierul New_BME_Sensor.ino furnizat în ID-ul Arduino. Senzorul dvs. BME280 ar trebui să fie conectat la D3 (SDA) și D4 (SCL) pe ESP8266. Introduceți „ESP8266-NodeMCU-12E-BME280” (primul canal pe care l-ați creat) „Scriere cheie” „SSID fără fir” și „Parolă” în secțiunea corectă a schiței. Apoi faceți clic pe elementul de meniu „Schiță” și „Încărcare”. După ce încărcați schița (Progresul ajunge la 100%) pe ESP8266, puteți deschide monitorul serial (pictograma din dreapta sus arată ca o lupă) și vă puteți vedea datele imprimate după 5 minute, la fiecare 5 minute. Datele sunt trimise la lucruri la intervale de 5 min, deci va trece ceva timp până când veți avea date semnificative ale graficului, dar ar trebui să aveți citiri de calibrare după 5 min.

Asigurați-vă că obțineți citiri corecte de la BME280 pe monitorul serial.

Prima măsurare va fi probabil un nan nevalid.

Așteptați câteva minuete până la următoarea lectură și verificați dacă citirile arată bine.

Pasul 4: Întoarceți-vă la Thingspeak pentru a face unele modificări de date

Întoarceți-vă la Thingspeak pentru a face unele modificări de date
Întoarceți-vă la Thingspeak pentru a face unele modificări de date

17. Acum, în timp ce datele se încarcă încet pe thingspeak, putem face unele modificări pentru a obține date suplimentare din ceea ce se încarcă. Reveniți la site-ul Thingspeak și în pagina canalului Thingspeak „BME280 Daily High Low Data” (al doilea canal pe care l-ați creat) faceți clic pe butonul verde „MATLAB Analysis”. Selectați șablonul „Personalizat (fără cod de pornire)”

18. Denumiți analiza MATLAB „Calculați Min Max de la miezul nopții”.

19. Copiați codul MATLAB Analysis.txt în spațiul furnizat. Introduceți „ID-ul canalului” pentru „ESP8266-NodeMCU-12E-BME280” (primul canal pe care l-ați creat) în „readChannelID”. Introduceți „BME280 Daily High Low Data” (Al doilea canal pe care l-ați creat) Scrieți „Channel ID” și „Write Key” în writeNewChannelID și writeAPIKey respectiv. Știu că sună confuz (citește-l din nou). Faceți clic pe Salvați și rulați. Dacă ați făcut-o corect și canalul de citire este public, nu veți vedea erori și va imprima cu succes valorile. Notă, este posibil să vedeți o eroare dacă nu au fost încă încărcate date pe canalul respectiv. În ciuda erorii continuați. Dacă doriți, puteți revizita Faceți clic pe Salvați și rulați pentru a vă asigura că funcționează după ce datele au fost încărcate.

20. Apoi, trebuie să creăm un „Control de timp” pentru a declanșa acest cod la fiecare 5 minute, iar datele noastre sunt scrise pe canalul „BME280 Daily High Low Data” (Al doilea canal pe care l-ați creat). Din pagina principală a „BME280 Daily High Low Data” (Al doilea canal pe care l-ați creat), selectați Aplicații în partea de sus. Sub acțiuni selectați „TimeControl”, apoi butonul verde „New TimeControl”. Denumiți-l „Trimiteți timp scăzut ridicat ESP8266”. Selectați fusul orar dacă este necesar și selectați „Recurent” sub Frecvență. Selectați Minute sub Recurență. Setat să ruleze la fiecare 5 minute. Acțiunea ar trebui să fie Analiza MATLAB și „Codul de executat” este „Calculează Min Max de la miezul nopții”. Salvați TimeControl.

Pasul 5: Editați fișierul HTML furnizat

Editați fișierul HTML furnizat
Editați fișierul HTML furnizat

Editați fișierele HTML și căutați comentarii care spun „******** Change Me 1 of 8 *********” Modificați-le după preferințe.

Note:

Unele dintre câmpurile de text și graficul săptămânal nu se completează corect până nu aveți o zi întreagă și o săptămână completă de date pentru secțiunea și graficul de 24 de ore și săptămână. Odată ce aveți o grămadă de date, puteți mări diagramele cu rotița mouse-ului (Faceți clic dreapta pentru a reseta). Puteți avea, de asemenea, un al patrulea indicator (așa cum se vede în capturile de ecran) de la un alt senzor de pe un alt canal, dar am redactat porțiunile relevante. Dacă vă simțiți inteligent, conectați-l. Există, de asemenea, unele probleme de sincronizare de care trebuie să fii conștient. Probabil că nu veți avea cele mai recente date absolute, dar ar trebui să aibă întotdeauna o vechime mai mică de 5 minute. Acest lucru provine de la declanșarea controlului de sincronizare, Când datele au fost trimise de la ESP8266 și când ați încărcat / reîmprospătat pagina web.

Deschideți fișierul ESP8266-NodeMCU-12E-BME280.html furnizat în browserul dvs. web și ar trebui să vedeți indicatorii și diagrama populate.

Obțineți fișierele de cod.ino și. HTML aici

Recomandat: