Air Quality Monitor

Autor

Introducere

Proiectul constă in dezvoltarea unui sistem de monitorizare a calității aerului. Datele vor fi colectate intr-o interfață grafică, unde vor exista si predicții despre evoluția calitătii aerului. Predicțiile se vor baza pe pattern-urile observate în măsuratorile facute periodic pentru o durată lungă de timp și îl vor ajută pe utilizator să se ferească de aerul poluat.

Consider ca un asfel de dispozitiv este util într-un oraș tot mai poluat ca București.

Descriere generală

Dispozitivul va conține doi senzori. Sharp GP2Y1014AU0F Dust Sensor pentru detectarea impurităților (prafului) din aer.

Aceste date vor fi colectate de catre MCU și trimise prin HTTP la un server folosind un modul ESP8266.

Hardware Design

Lista de piese:

Senzorul GP2Y1014AU0F functionează la 5V dar modulul de wifi la 3.3 așa ca am ales merg pe 3.3V și să fac un divizor de tensiune pe iesirea senzorului. Suplimentar am incorporat și o rezistanța și un tranzistor necesare senzorului.

Software Design

Dezvoltarea software-ul s-a despărțit in 3 componente: relizarea codul pentru microcontroller, realizarea web server și realizarea interfeței grafice.

Microcontroller

Programarea ESP8266

Modulul ESP8266 este conectat prin serial, comunicația se face prin USART0, microcontroller transmite catre acestea comenzi de AT . Nu am găsit tutoriale de ESP+USART pentru Atmega324p deoarce majoriatea sunt create pentru Atmega128. Am apelat la ajutor din proiectele anteriore si am reușit sa trimit primul pachet prin Wifi.

Colectarea datelor

Scopul device-ului este de a monitoriza aerul deci acesta va citi la intervale regulate de timp datele de la senzorulul de praf. Folosind exemplele/documentația din laboratorul de 5 pentru a citi analogic de pe pinul PA1 prin prin *long-polling*.

Backend

Datele venite de la device trebuiesc așa că am ales să creez un server în node js și sa retin datele in mongodb folosind mongoose. Modelul ales pentru a reprezenta o intrare este:

  var entriesSchema = mongoose.Schema({
                value: {
                        type: Number,
                        required: true,
                },
                date: {
                        type: Date, dafault: Date.now
                }
        });

Codul pentru query-urile peste intrari poate fi consultat aici

UI

UI-ul este construit fosind Char.js si Semantic.

Rezultate Obţinute

Concluzii

A fost un proiect interesant. Dacă aș alege din nou aș opta pentru un modul ESP32 pe care aș scrie Espruino/Micropython. Probabil pentru un proiect real aș investi mai mult in sensorul de calitatea a aerului asfel încat să detecteze orice fel de impuritate și alte gaze precum CO2.

Download

Jurnal

  • 20 aprilie - Adaugare sectiuni: Introducere, Descriere Generala, etc.
  • 10 mai - Finalizare placuta PM (lipit componente, incarcat bootloader).
  • 15 mai - Ridicare comanda cu toate piesele necesare.
  • 20 mai - Realizare comunicare prin ESP.
  • 22 mai - Citire date de la senzor.
  • 23 mai - Implementare interfață grafică.

Bibliografie/Resurse

pm/prj2019/amocanu/air-quality-monitor.txt · Last modified: 2021/04/14 17:07 (external edit)
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0