Inspector PM

Autor

Introducere

Inspector PM reprezintă o stație de control al calității aerului care măsoară nivelul de particule de praf PM2,5 din aer și raportează depășiri ale standardelor de calitate sau furnizează indicele de calitate la cererea utilizatorului.

Am ajuns să fiu conștient în ultimul timp de poluarea excesivă din capitală și nu de puține ori am simțit personal depășirile anunțate de stațiile ONG-urilor care se ocupă cu monitorizarea poluării. Întrucât nu există o stație de măsurare în cartierul meu, m-am gândit că pot realiza eu un prototip care să îmi furnizeze informații despre zona în care locuiesc.

Dacă totul iese cum îmi doresc, acest proiect are potențialul de a fi extins pentru a monitoriza și alți indici de calitate, precum PM10 sau concentrația de CO2.

Descriere generală

Proiectul este realizat pe o replică de Arduino Uno, care primește date de la un senzor de praf PM2,5, le prelucrează conform standardelor de calitate și furnizează informația obținută utilizatorului prin intermediul modulului Bluetooth. Dispozitivul de recepție poate fi orice dispozitiv dotat cu Bluetooth (am în vedere telefonul mobil și laptop-ul). Acesta poate la rândul său trimite comenzi de citire plăcii, care va procesa cele mai noi date și i le va transmite.

Hardware Design

Lista de piese:

  • Arduino Uno
  • Senzor de praf PM2,5
  • Modul Bluetooth (HC-05 Master Slave)
  • Breadboard
  • Rezistor 150Ohm
  • Rezistor 1kOhm
  • Rezistor 2kOhm
  • Condensator 220uF
  • Fire de legătură

Schema electrică:

Software Design

Senzorul de praf realizează o nouă măsurătoare la fiecare 10ms. Cu ajutorul unor variabile contor calculez o medie pe oră a valorilor transformate din Volți în µg/m³ (densitatea de praf) și o medie pe zi. Pentru a facilita testarea și prezentarea rezultatelor, am redus durata de calculare a mediei de 1000 de ori.

  1. Funcția void printVo(float Vo) implementează procesarea măsurătorilor și transmiterea lor pe serială:
    • Parametrul funcției reprezintă semnalul primit pe pinul analogic A5 transformat în Volți.
    • Din acesta este scăzută o valoare de referință, considerată a fi valoarea citită de senzor în condiții ideale, de 0 particule de praf în aer. Această valoare de referință am stabilit-o adjustând măsuratorile senzorului cu cele ale unor stații publice de monitorizare a calității aerului, precum http://aerlive.ro.
    • Rezultatul obținut se împarte la sensibilitatea măsurătorii, constantă setată în program, și apoi înmulțește cu 1000.
    • La fiecare 360 de măsurători se calculează media pe oră (360000 pentru o oră reală) și la 24 de astfel de medii, media pe zi.
  2. Pentru comunicarea prin Bluetooth am folosit biblioteca SoftwareSerial.h
    • Comenzile acceptate momentan de sistem sunt 'v', pentru afișare „verbose”, detaliată, și 'n' pentru afișarea strict a mediilor.
  3. Script-ul Python care însoțește proiectul realizează conectarea la modulul Bluetooth, folosind adresa MAC a acestuia, inclusă în program, recepționarea datelor pe oră și pe zi (cu aceeași mențiune legată de timpul virtual vs. real), prelucrarea lor și afișarea a două grafice relevante cu ajutorul bibliotecii matplotlib. Programul primește date într-o buclă infinită, oprirea măsurătorii făcându-se prin transmiterea unui semnal SIGINT/KeyboardInterrupt.

Modulul Bluetooth trebuie asociat dispozitivului pe care se rulează scriptul în prealabil, altfel conexiunea va eșua.

Pentru comunicarea prin intermediul telefonului mobil se poate folosi o aplicație de tipul Terminal for Bluetooth, ca https://play.google.com/store/apps/details?id=de.kai_morich.serial_usb_terminal&hl=en&gl=US pentru Android sau https://apps.apple.com/us/app/bluetooth-terminal/id1058693037 pentru iOS.

Rezultate obținute

Concluzii

Trecând peste dificultățile hardware întâmpinate în conectarea părților componente ale stației, proiectul mi-a stimulat imaginația și mi-a oferit șansa de experimenta ce înseamnă lumea IoT. A fost o experiență plăcută și interesantă și plănuiesc ca pe viitor să duc mai departe proiectul prin adăugarea altor senzori relevanți și dezvoltarea unei platforme mai prietenoase.

Bibliografie/Resurse

pm/prj2021/amocanu/inspectorpm.txt · Last modified: 2021/06/02 23:13 by costin.ghiban
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