Cuprins:
- Provizii
- Pasul 1: Pregătiți Arduino Environment pentru ESP8266
- Pasul 2: includeți bibliotecile necesare
- Pasul 3: Personalizați schița de exemplu standard
- Pasul 4: încărcați interfața de utilizare web
- Pasul 5: Adăugați senzorul BME680
- Pasul 6: Adăugați senzorul PMS5003
- Pasul 7: Adăugarea unor funcții de rețea
- Pasul 8: Adăugarea unor jurnale
- Pasul 9: Acțiuni
- Pasul 10: Imagini și fișiere de configurare
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:42
Calitatea aerului interior sau exterior depinde de multe surse de poluare și, de asemenea, de vreme.
Acest dispozitiv captează câțiva dintre parametrii comuni și unii dintre cei mai interesanți utilizând 2 cipuri de senzori.
- Temperatura
- Umiditate
- Presiune
- Gaz organic
- Micro-particule
Senzorii utilizați aici sunt BME680 pentru a obține valori de temperatură, umiditate, presiune și gaze organice și PMS5003 pentru a obține densitatea micro-particulelor.
Prin utilizarea bibliotecii HomeDing este ușor să construiți un dispozitiv conectat doar la rețeaua dvs. de acasă și care poate fi accesat și controlat de orice browser din rețea. Acesta vine cu o selecție de Elemente care permit utilizarea celor mai frecvente cipuri de senzori, dispozitive și alte servicii.
De asemenea, aduce o soluție completă pentru găzduirea unei părți web în interiorul dispozitivului în loc să utilizeze o soluție bazată pe cloud pentru a afișa datele senzorului și a interacționa cu dispozitivul.
Provizii
Tot ce aveți nevoie pentru a construi acest proiect este o placă bazată pe ESP8266, cum ar fi placa nodemcu și un set de senzori pentru a măsura calitatea aerului. Biblioteca HomeDing utilizată în acest proiect acceptă unele dintre cipurile de senzori obișnuite pentru temperatură, umiditate, presiune și calitate. Aici este utilizat cipul BMP680.
- O mufă USB și un cablu micro-usb pentru alimentare.
- 1 placa nodemcu cu CPU ESP8266.
- 1 placă de detectare a senzorului BME680.
- 1 senzor laser cu particule de aer PM2.5 tip PMS5003
Este ușor să schimbați senzorul BME680 cu un senzor DHT22, deoarece acestea sunt, de asemenea, acceptate de bibliotecă, printre multe altele.
Pasul 1: Pregătiți Arduino Environment pentru ESP8266
- Instalați cea mai recentă versiune a Arduino IDE (în prezent versiunea 1.8.2).
- Utilizați Board Manager pentru a instala instalarea suportului esp8266. O instrucțiune detaliată poate fi găsită aici:
- Configurați opțiunile plăcii pentru un NodeMCU 1.0 cu 1MByte SPIFFS File System așa cum se arată în captura de ecran
Pasul 2: includeți bibliotecile necesare
Biblioteca HomeDing se bazează pe unele biblioteci suplimentare comune pentru ca senzorii și afișajele să funcționeze.
Când instalați biblioteca HomeDing, veți vedea o fereastră pop-up cu aceste biblioteci necesare, care pot fi instalate automat în imagine și este ușor să le instalați pe toate.
Uneori (din motive necunoscute) instalarea bibliotecilor eșuează, astfel încât toate bibliotecile necesare trebuie instalate manual.
Mai multe detalii despre bibliotecile necesare pot fi găsite pe site-ul web al documentației la
Aceasta este lista bibliotecilor necesare curente:
- Adafruit NeoPixel
- LiquidCrystal_PCF8574.h
- Driver Oled ESP8266 și ESP32 pentru afișaj SSD1306
- Rotativ
- Biblioteca de senzori DHT pentru ESPx
- OneWire
Senzorul laser cu particule de aer PMS5003 comunică utilizând un semnal de linie serială de 9600 baud. Acest semnal este capturat utilizând biblioteca SoftwareSerial care vine odată cu instalarea instrumentelor ESP8266. Asigurați-vă că nu aveți o versiune mai veche instalată ca bibliotecă.
Pasul 3: Personalizați schița de exemplu standard
Exemplul standard include deja unii dintre senzorii mai obișnuiți ca elemente, astfel încât va fi necesară doar o anumită configurație.
Acest lucru se aplică senzorului BME680 care este acceptat de elementul BME680.
Senzorul PMS5003 este mai puțin frecvent și trebuie activat prin includerea elementului PMS în firmware. Acest lucru se realizează prin definirea #define HOMEDING_INCLUDE_PMS în secțiunea de înregistrare a elementelor din schiță
#define HOMEDING_INCLUDE_BME680 # define HOMEDING_INCLUDE_PMS
Pentru simplitate la adăugarea noului dispozitiv în rețea, puteți adăuga SSID-ul și fraza de acces WiFi de acasă în fișierul secrets.h de lângă fișierul schiță standard.ino. Dar puteți utiliza și Managerul WiFi încorporat pentru a adăuga dispozitivul la rețea fără această configurație codificată.
Acum, totul cu privire la implementarea schiței este gata, iar firmware-ul poate fi compilat și încărcat.
Pasul 4: încărcați interfața de utilizare web
Exemplul standard vine cu un folder de date care conține toate fișierele pentru interfața de utilizare web.
Înainte de a încărca aceste fișiere, poate doriți să adăugați fișierele env.json și config.json pe care le puteți găsi cu acest articol, deoarece acest lucru va ușura lucrurile.
Conținutul acestor fișiere este ceea ce face ca dispozitivul IoT să fie special și să se comporte ca un senzor de calitate a aerului. Este explicat în detaliu în această poveste.
Utilizați utilitarul de încărcare a fișierului ESP8266 și încărcați toate fișierele. Este nevoie de o repornire pentru a activa configurația.
Pasul 5: Adăugați senzorul BME680
Senzorul BME680 comunică cu placa folosind magistrala I2C.
Deoarece acest lucru este posibil partajat cu alte extensii, cum ar fi alți senzori sau afișaje, este configurat la nivelul dispozitivului în env.json împreună cu numele de rețea al dispozitivului. Iată un eșantion extras de setări pentru dispozitiv și I2C:
„dispozitiv”: {
"0": {"name": "airding", "description": "Senzor de calitate a aerului", … "i2c-scl": "D2", "i2c-sda": "D1"}}
Pe panoul de verificare puteți vedea cablurile de conectare la senzor: 3,3V = roșu, GND = negru, SCL = galben, SDA = albastru
Configurația pentru BME680 poate fi utilizată în config.json:
„bme680”: {
"bd": {"address": "0x77", "readtime": "10s"}}
Vom adăuga acțiunile mai târziu.
Pentru a testa configurarea, utilizați doar un browser și deschideți https://airding/board.htm și veți vedea valorile reale ale senzorului afișate și vor fi actualizate aproximativ la fiecare 10 secunde:
Pasul 6: Adăugați senzorul PMS5003
Nu am avut un senzor cu un conector prietenos pentru panou, așa că a trebuit să tai unul dintre conectorii de pe cablu și să folosesc fierul meu de lipit pentru a-l atașa direct la placa nodemcu. O puteți vedea încă pe pozele finale.
Puterea pentru acest senzor trebuie luată de la Vin care este alimentat în mod normal de magistrala USB. GND este același, dar disponibil și lângă pinul Vin.
Datele de la senzor sunt transferate într-un format serial standard de 9600 baud, astfel încât pinii rx și tx și timpul de citire trebuie să fie configurate:
„pms”: {
"pm25": {"description": "pm25 senzor de particule", "pinrx": "D6", "pintx": "D5", "readtime": "10s"}}
Vom adăuga acțiunile mai târziu.
Pentru a testa din nou setarea, reporniți dispozitivul și utilizați un browser și deschideți https://airding/board.htm și veți vedea valoarea pm35 reală a senzorului afișată și vor fi actualizate aproximativ la fiecare 10 secunde, dar această valoare este în mod normal nu se schimbă des.
Puteți obține valori mai mari plasând o lumină de lumânare lângă senzor, deoarece o lumânare produce o mare parte din aceste particule.
Acum puteți pune totul într-o carcasă frumoasă, deoarece toate celelalte configurații și chiar actualizări de software pot fi realizate de la distanță.
Pasul 7: Adăugarea unor funcții de rețea
Următorul extras de configurație din env.json este activat
- actualizarea firmware-ului prin antenă
- permite detectarea rețelei utilizând protocolul de rețea SSDP și preia ora curentă de pe un server ntp.
{
… "Ota": {"0": {"port": 8266, "passwd": "123", "description": "Ascultați actualizările OTA 'over the air'"}}, "ssdp": {"0 ": {" Producător ":" numele dvs. "}}," ntptime ": {" 0 ": {" readtime ":" 36h "," zone ": 2}}}
Ar trebui să ajustați fusul orar la locația dvs. Dacă aveți dubii, puteți utiliza site-ul web https://www.timeanddate.com/ pentru a obține compensarea de la UTC / GMT. „2” este potrivit pentru ora de vară a Germaniei.
De asemenea, puteți regla parola ota după ce ați citit instrucțiunile privind modul de salvare din documentație la
După o repornire este posibil să găsiți dispozitivul de aerisire în rețea și după ce primiți un răspuns de la serverul ntp, ora locală este disponibilă.
Pasul 8: Adăugarea unor jurnale
Este posibil ca valorile reale să nu dea suficient, astfel încât să mai poată fi folosite câteva elemente.
Pentru această poveste, elementul Jurnal și Elementul NPTTime sunt utilizate pentru a înregistra istoricul valorilor senzorilor într-un fișier jurnal, iar cardul UI Web pentru acest element îl poate afișa ca un grafic.
Următoarea configurație creează cele 2 elemente jurnal pentru gaze și particule:
{
"log": {"pm": {"description": "Jurnalul pm25", "file name": "/pmlog.txt", "filesize": "10000"}, "aq": {"description": " Jurnalul calității gazului "," nume fișier ":" /aqlog.txt "," dimensiune fișier ":" 10000 "}}}
Pasul 9: Acțiuni
Acum trebuie să transferăm valorile reale către elementele jurnal folosind acțiuni. Acțiunile folosesc o notație URL pentru a transmite un kay și valoarea elementului țintă. Multe elemente acceptă emiterea de acțiuni pe anumite evenimente care se întâmplă, cum ar fi captarea unei noi valori a senzorului.
Acțiunile sunt configurate la elementul care emite acțiuni. Sunt necesare 2 intrări:
- Evenimentul onvalue pms / p25 trimite valoarea reală elementului jurnal / pm folosind o acțiune de valoare.
- Evenimentul bme680 / bd ongas trimite valoarea reală elementului log / pm folosind o acțiune de valoare.
{
"pms": {"pm25": {… "onvalue": "log / pm? value = $ v"}}, "bme680": {"bd": {… "ongas": "log / aq? value = $ v "}}}
Acum toate elementele sunt configurate.
Pasul 10: Imagini și fișiere de configurare
Iată câteva imagini cu senzorul meu final de calitate a aerului IoT.
Fișierele de configurare pentru descărcare trebuie redenumite în *.json (nr.txt) înainte de încărcare.
Linkuri și referințe
- Depozitul de coduri sursă HomeDing:
- Documentație:
- Exemplu standard:
- Element BME680:
- Element PMS:
- Element jurnal:
- Element NtpTime:
Recomandat:
Senzor de calitate a aerului folosind un Arduino: 4 pași
Senzor de calitate a aerului folosind un Arduino: În acest post, vom învăța cum să construim un senzor de calitate a aerului simplu, dar util. Vom folosi senzorul SGP30 împreună cu Piksey Pico, deși schița va funcționa cu aproape orice placă compatibilă Arduino. Videoclipul de mai sus vă vorbește despre
Un monitor de calitate a aerului IoT la preț redus bazat pe RaspberryPi 4: 15 Pași (cu imagini)
Un monitor al calității aerului IoT la preț redus, bazat pe RaspberryPi 4: Santiago, Chile, în timpul unei urgențe de mediu de iarnă, au privilegiul de a trăi într-una dintre cele mai frumoase țări din lume, dar, din păcate, nu toate sunt trandafiri. Chile în timpul sezonului de iarnă suferă foarte mult cu contaminarea aerului, mai
Cubesat cu senzor de calitate a aerului și Arduino: 4 pași
Cubesat With Air Quality Sensor and Arduino: CubeSat creators: Reghan, Logan, Kate, and Joan Introducere V-ați întrebat vreodată cum să creați un orbitator Marte pentru a colecta date despre atmosferă și calitatea aerului Marte? De-a lungul acestui an, la ora noastră de fizică, am învățat cum să programăm A
Senzor de calitate a aerului DIY + carcasă imprimată 3D: 6 pași
Senzor de calitate a aerului DIY + Carcasă imprimată 3D: Acest ghid conține toate informațiile de care aveți nevoie pentru a crea un senzor foarte capabil, de dimensiuni buzunare
AirPi - Senzor de calitate a aerului: 8 pași
AirPi - senzor de calitate a aerului: v-ați întrebat vreodată de ce aveți dureri de cap? Și dacă acest lucru se datorează unei calități proaste a aerului? Cu acest dispozitiv puteți verifica dacă acesta este cazul. Acest dispozitiv măsoară valoarea CO2, valoarea TVOC, temperatura și umiditatea. Puteți vedea aerul q