This shows you the differences between two versions of the page.
pm:prj2021:amocanu:inspectorpm [2021/06/02 17:33] costin.ghiban [Software Design] |
pm:prj2021:amocanu:inspectorpm [2021/06/02 23:13] (current) costin.ghiban [Rezultate obținute] |
||
---|---|---|---|
Line 33: | Line 33: | ||
- Funcția ''void printVo(float Vo)'' implementează procesarea măsurătorilor și transmiterea lor pe serială: | - 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. | + | * 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|]]. | + | * 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. | + | * 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. | + | * 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. |
- Pentru comunicarea prin Bluetooth am folosit biblioteca SoftwareSerial.h | - 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. | + | * Comenzile acceptate momentan de sistem sunt 'v', pentru afișare „verbose”, detaliată, și 'n' pentru afișarea strict a mediilor. |
- 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. | - 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. | ||
<note important>Modulul Bluetooth trebuie asociat dispozitivului pe care se rulează scriptul în prealabil, altfel conexiunea va eșua.</note> | <note important>Modulul Bluetooth trebuie asociat dispozitivului pe care se rulează scriptul în prealabil, altfel conexiunea va eșua.</note> | ||
+ | <note tip>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.</note> | ||
====Rezultate obținute==== | ====Rezultate obținute==== | ||
+ | |||
+ | {{:pm:prj2021:amocanu:inspectorpm_hourly_average_graph.png?500|Media măsurătorilor pe oră}} | ||
+ | |||
+ | {{:pm:prj2021:amocanu:inspector_daily_average_graph.png?500|Media măsurătorilor pe zi}} | ||
+ | |||
+ | {{:pm:prj2021:amocanu:inspectorpm_beginning.jpg?500|How it started}} | ||
+ | |||
+ | {{:pm:prj2021:amocanu:inspectorpm_ending.jpeg?500|How it goes}} | ||
+ | |||
+ | {{:pm:prj2021:amocanu:inspectorpm_mobile_bluetooth.jpg?500|}} | ||
+ | |||
+ | [[https://youtu.be/5Aph0dWvy5E|Demo]] | ||
+ | |||
====Concluzii==== | ====Concluzii==== | ||
- | ====Download==== | + | 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==== | ====Bibliografie/Resurse==== | ||
{{:pm:prj2021:amocanu:inspectorpm_hc-serial-bluetooth-module-datasheet.pdf|HC-05 Datasheet}} | {{:pm:prj2021:amocanu:inspectorpm_hc-serial-bluetooth-module-datasheet.pdf|HC-05 Datasheet}} | ||
- | {{:pm:prj2021:amocanu:inspector_pm.pdf|Inspector PM}} | + | [[https://github.com/GhibanCostin/InspectorPM|Github Repository pentru codul sursă]] |
+ | |||
+ | {{:pm:prj2021:amocanu:inspector_pm.pdf|InspectorPM pdf}} |