Air quality measurement
Introducere
Un dispozitiv de monitorizare a calitații aerului, care la apasarea butonului afiseaza pe display concentrația de compusi organici volatili (VOCs) in aer si un indice al calitatii aerului (AQI) asociat, pe care le trimite prin wifi catre un spreadsheet.
Ideea initiala a pornit de la conștientizarea importantei calitatii aerului pentru sanatatea noastra.
Este util pentru ca ofera o solutie convenabila și eficienta pentru monitorizarea calitatii aerului în timp real.
Descriere generală
La apasarea butonului, senzorul SGP-40 masoara indexul de calitate a aerului, il afiseaza pe display si il trimite spre un spreadsheet prin wifi, unde este retinuta valoarea si data.
Hardware Design
Lista piese:
ESP32-Wroom-32
SGP40
Display led MAX7219
Buton
Rezistente
Senzor SGP40:
Functioneaza prin I2C
ESP32 are atriubuiti automat pinii 21 si 22 pentru SDA si SCL
Liniile SDA și SCL se afla la nivelul logic 0 și nu pot forța liniile la nivelul logic 1, deci este nevoie de rezistente de pull-up
Am ales rezistente de 4.7k
Display 7segment Max7219:
Functioneaza prin SPI
ESP32 are atriubuiti automat pinii 23, 18 si 5 pentru DIN, CLK si CS
Trebuie sa fie alimentat la 5V, asa ca am adus o sursa de tensiune
Pinul CS are 2 propietati (chip-select in cazul in care sunt mai multe componente conectate in serie si LOAD pentru Load-Data Input)
Software Design
Descrierea codului aplicaţiei (firmware):
Detalii implementare:
SGP40: Am verificat ca adresa I2C sa corespunda. Cu ajutorul functiei sgp.getVoclndex() din DFRobot_SGP40 am luat valoarea
Display: Am definit un vector care reprezinta codurile pentru numere si le am trimis prin SPI catre display
Transmiterea datelor catre un spreadsheet prin wifi: Am creat un script care imi scrie intr-un spreadsheet si l am lansat ca aplicatie web. Pe placuta m-am conectat la wifi cu WiFi.mode(WIFI_STA); WiFi.begin(ssid, password);. Cu valoarea aflata de sgp40 am facut un request prin http.begin(url); catre aplicatie.
Rezultate Obţinute
Am reusit sa transmit datele prin wifi. Senzorul s-a ars si nu am mai avut timp sa iau altul. Display-ul nu se mai aprinde.
Concluzii
Download
O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună
.
Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.
Jurnal
Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.
Bibliografie/Resurse
Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe
Resurse Software şi
Resurse Hardware.
Export to PDF