Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2021:amocanu:senzor_wifi_calitate_aer [2021/05/29 21:21]
bogdan.petrusca [Descrierea generala]
pm:prj2021:amocanu:senzor_wifi_calitate_aer [2021/06/02 19:28] (current)
bogdan.petrusca [Software Design]
Line 7: Line 7:
 Locuind in Bucuresti, cea mai poluata capitala din Uniunea Europeana, m-am gandit sa fac ceva ce m-ar ajuta sa detectez cat mai usor cantitatea de praf din atmosfera. Locuind in Bucuresti, cea mai poluata capitala din Uniunea Europeana, m-am gandit sa fac ceva ce m-ar ajuta sa detectez cat mai usor cantitatea de praf din atmosfera.
 ======Descrierea generala====== ======Descrierea generala======
-Placuta Arduino va fi conectata atat la un senzor de temperatura si umiditate cat si la un senzor optic pentru detectarea particulelor de praf. M-am gandit sa afisez informatiile generate de senzori ​pe un LCD, pe un browser la o adresa IP si un port anume si pe telefon conectat prin BluetoothDe asemenea, in cazul in care senzorul detecteaza cantitati mari de poluare in atmosfera va face ca un bec sa se aprinda. +Placuta Arduino va fi conectata atat la un senzor de temperatura si umiditate cat si la un senzor optic pentru detectarea particulelor de praf. 
 +Modulul Arduino va receptiona aceste date si le va trimite catre modulul WIFI, pe care este hostat ​un server WEB. Informatiile vor fi afisate ​pe o pagina web atunci cand se va accesa ​adresa IP a server-ului web.
 **Schema:** **Schema:**
-{{ :​pm:​prj2021:​amocanu:​diagrama_bogdan.png?​300 |}}+{{ :​pm:​prj2021:​amocanu:​diagrama_bogdan.png?​600 |}}
 ======Hardware Design====== ======Hardware Design======
   - Arduino Uno   - Arduino Uno
Line 21: Line 21:
 Arduino UNO functioneaza la 5V, pe cand placuta wifi ESP32 la 3.3V. De aceea a trebuit sa realizez un divizor de tensiune intre cele doua folosind Arduino UNO functioneaza la 5V, pe cand placuta wifi ESP32 la 3.3V. De aceea a trebuit sa realizez un divizor de tensiune intre cele doua folosind
 3 rezistente de 10K 3 rezistente de 10K
 +
 +Arduino UNO este receptioneaza date de la senzorul de praf prin pinul A5, si de la senzorul de temperatura si umiditate prin pinul GPIO7. Comunicare seariala dintre Arduino UNO si placuta WIFI ESP32 este realizata prin pinii 0 si 1, respectiv pinii 16, 17.
  
 **Schema electrica** **Schema electrica**
Line 30: Line 32:
  
 Placuta WIFI comunica cu Arduino UNO prin UART. Astfel, aceasta citeste datele transmise si le parseaza. La final creez un fisier HTML cu datele transmise pe care il trimit catre endpoint-ul "/"​. Placuta WIFI comunica cu Arduino UNO prin UART. Astfel, aceasta citeste datele transmise si le parseaza. La final creez un fisier HTML cu datele transmise pe care il trimit catre endpoint-ul "/"​.
 +
 +**Arduino UNO**
 +
 +Astfel, placuta Arduino uno receptioneaza datele de pe pinul A5, care este conectat la senzorul de praf, si le prelucreaza astfel incat sa converteasca valoarea citita in volti dupa formula: **V = Vo / 1024.0 * 5.0**, unde Vo este valoarea citita de pe pin.
 +
 +Avand numarul de volti cititi de pe pinul A5 urmeaza sa convertim aceasta valoare in ug/m3.
 +Folosesc formula: **Densitatea prafului = (dV / K) * 100**, unde:
 +  * dV = V_A5 - V_oc
 +  * V_A5 reprezinta valoarea de pe pin
 +  * V_oc reprezinta valoarea citita de pe pin in conditiile in care nu se afla nicio particicula de praf in jurul senzorului
 +  * K reprezinta sensibilitatea senzorului
 +
 +Placuta Arduino Uno este, de asemenea, conectata la senzorul de temperatura si umiditate
 +si citeste date de pe pinul GPIO7. Pentru a afla temperatura si umiditatea citite de pe senzorul DHT11 ma folosesc de functiile din biblioteca **dht11.h**.
 +
 +La final, deoarece placuta Arduino UNO comunica prin USART cu placuta WIFI ESP32 trimit toate datele prin interfata serial.
 +
 +**ESP32**
 +
 +Pe placuta WIFI hostez un server web, care accepta cereri de get pentru "/",​ unde vor fi afisate datele. In functia setup() setez conexiunea USART, si folosindu-ma de functiile din biblioteca **Wifi.h** se incearca conectarea la routerul WIFI. In caz de succes afisez in serial Monitorul placutei WIFI IP-ul atribuit de catre router placutei. La final se defineste endpoint-ul "/"​ caruia i se atribute functia "​handleRoot"​.
 +
 +Functia handleRoot:
 +In aceasta functie se parseaza datele venite de la Arduino UNO si se adauga intr-un String, care este sub forma unui fisier HTML. La final ma folosesc de functia **send** din biblioteca **WebServer.h** pentru a trimite cererea clientului conectat la IP-ul placutei.
 ======Rezultate Obţinute====== ======Rezultate Obţinute======
 Prezentarea video se afla la aceasta adresa: Prezentarea video se afla la aceasta adresa:
Line 36: Line 61:
 {{:​pm:​prj2021:​amocanu:​poza4.jpeg?​600|}} {{:​pm:​prj2021:​amocanu:​poza4.jpeg?​600|}}
 ======Concluzii====== ======Concluzii======
-Placuta WEMOS LOLIN permite extinderea functionalitatii prin afisarea informatiei de la senzori prin Bluetooth pe un device. +Placuta WEMOS LOLIN permite extinderea functionalitatii prin afisarea informatiei de la senzori prin Bluetooth pe un device. De asemenea ​se putea adauga ​un LCD unde se puteau ​afisa datele, insa timpul nu mi-a mai permis acest lucru.
-De asemenea ​ar putea fi adaugat ​un LCD unde se pot afisa datele. +
  
 +Per total, mi-a placut sa lucrez la acest proiect, chiar cred ca am inteles mai bine aceasta materie, iar lucrul cu firele cu siguranta ma va ajuta pe viitor, atat sa creez alte proiecte personale cat si sa ofer mentenanta obiectelor electronice.
 ======Bibliografie/​Resurse====== ======Bibliografie/​Resurse======
 Link-uri catre module: Link-uri catre module:
Line 48: Line 72:
  
 Codul sursa: Codul sursa:
 +{{:​pm:​prj2021:​amocanu:​pm_sources_petrusca_bogdan.zip|Codul sursa}}
pm/prj2021/amocanu/senzor_wifi_calitate_aer.1622312491.txt.gz · Last modified: 2021/05/29 21:21 by bogdan.petrusca
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