Differences

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

Link to this comparison view

pm:prj2023:adarmaz:detectare-stare-atmosferica [2023/05/24 17:21]
elena.iordache1207 [Software Design]
pm:prj2023:adarmaz:detectare-stare-atmosferica [2023/05/26 20:21] (current)
elena.iordache1207 [Download]
Line 37: Line 37:
  
 Proiectul a fost realizat in ARDUINO IDE, am folosit: Proiectul a fost realizat in ARDUINO IDE, am folosit:
-* biblioteca Adafruit_BMP085 pentru a lua structura senzorului de presiune si temperatura BMP. +  ​* biblioteca Adafruit_BMP085 pentru a lua structura senzorului de presiune si temperatura BMP. 
-* biblioteca Wire pentru a putea comunica prin protocolul I2C. +  * biblioteca Wire pentru a putea comunica prin protocolul I2C. 
-* biblioteca Adafruit_Sensor pentru a avea o interfața comuna pentru senzorii de la Adafruit.+  * biblioteca Adafruit_Sensor pentru a avea o interfața comuna pentru senzorii de la Adafruit. 
 +  * biblioteca LiquidCrystal pentru a controla și comunica cu afișaje cu cristale lichide (LCD)
  
 +Am folosit și un modul WiFi ESP8266 pentru a putea comunica cu Cloud-ul pus la dispoziție de ThingSpeak. Astfel, am conectat pinul de transmisie al modulului la pinul 2 al plăcuței Arduino și pinul de receptie al modulului la pinul 3. Am stocat în 4 variabile:
 +  * numele rețelei (SSID-ul) la care dispozitivul Arduino sau microcontrolerul se va conecta
 +  * parola pentru rețeaua WiFi
 +  * cheia API utilizată pentru autentificarea și accesul la serviciul cloud ThingSpeak
 +  * adresa serverului către care dispozitivul se va conecta pentru a trimite date către serviciul ThingSpeak
 +  * numărul portului utilizat pentru comunicarea cu serverul
  
-In functia de setup initializez seriala și verific dacă adresa I2C a senzorului BME280 este cea corecta. În caz contrar, se afișează pe seriale un mesaj de eroare.+In functia de setup initializez seriala și verific dacă adresa I2C a senzorului BME280 este cea corecta. În caz contrar, se afișează pe seriale un mesaj de eroare. De asemenea, verific și conexiunea cu modulul WiFi prin comanda AT, setez modul de funcționare al modulului în modul stație (AT+CWMODE=1) și trimit SSID-ul și parola pentru rețeaua de WiFi modulului pentru a putea realiza conexiunea.
  
 În funcția de loop apelez cele 3 funcții spefice fiecărui senzor folosit: În funcția de loop apelez cele 3 funcții spefice fiecărui senzor folosit:
- rainSensorCheck(): În primul rând am configurat pinul A0 pentru citirea analogica și am setat tensiunea de referință la 5. Ulterior am selectat portul de intrare pe care se va face conversia, urmând sa se înceapă conversia. După ce procesul de conversie s-a terminat, rezultatul obținut este stocat intr-o variabila. În funcție de valoarea acesteia se afișează pe display-ul LCD folosit un mesaj corespunzător (“RAINING”/​ “RAIN WARNING”/ “NOT RAINING”); ​ +  * bme.readTemperature(), bme.readPressure(),​ bme.readAltitude,​ bme.readHumidity() pentru a citi valorile de temperatura,​ presiune, altitudine și umiditate primite de la senzorul BME280.Valoarea temperaturii este afișată atât pe seriala, cat și pe display-ul LCD, dar este și trimisa ca paramateru la platforma de Cloud.  
- photoresistorCheck():​ Am configurat pinul A1 pentru citirea analogica ​și am folosit funcția “map” pentru a “clasifica” ​rezultatul obținut ​în 3 cazuri. În funcție de cazul obținut se afișează pe display un mesaj corespunzător:​ 0- “It îs dar outsider”,​ 1 - “It îs slightly bright outside”, 2- “It is dark outside”. +  * Pentru a citi valoarea senzorului de ploaie, in primul rând am configurat pinul A0 pentru citirea analogica și am setat tensiunea de referință la 5. Ulterior am selectat portul de intrare pe care se va face conversia, urmând sa se înceapă conversia. După ce procesul de conversie s-a terminat, rezultatul obținut este trimis ​afișat pe seriala și trimis ca parametru la platforma de Cloud. 
- BME280check():​ Folosind biblioteca specifica pentru modului BME280 menționată mai sus, am obținut valoarea temperaturii,​ a presiunii, a altitudinii ​și a umidității,​ valori pe care le-am afișat pe seriala+  * Pentru a citi valoarea modulului cu fotorezistor,​ am configurat pinul A1 pentru citirea analogica, iar rezultatul obținut ​este trimis ​afișat pe seriala ​și trimis ca parametru la platforma de Cloud.
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-<note tip> +Datele obtinute de la senzori sunt transmise printr-o serie de comenzi ​în Cloud-ul pus la dispoziție de ThingSpeak. Prin intermediul a 3 grafice se poate vizualiza în timp real evoluția valorilor pentru temperatura,​ intensitatea luminii și a precipitațiilor.
-Care au fost rezultatele obţinute ​în urma realizării proiectului vostru. +
-</​note>​+
  
 +{{:​pm:​prj2023:​adarmaz:​vizualizareDateTimpReal.jpeg?​400}}
 +
 +
 +Am realizat și o analiza a datelor primite pentru a stabili starea atmosferică. Codul preia ultimele 10 valori din fiecare grafic menționat mai sus, realizează o medie a acestor valori și afișează pe ecran starea atmosferică în funcție rezultatele obținute.
 +
 +{{:​pm:​prj2023:​adarmaz:​vizualizareDate.jpeg?​300}}
 +
 +Exista și posibilitatea de a vizualiza grafic evoluția în timp a datelor obținute: ​
 +
 +
 +{{:​pm:​prj2023:​adarmaz:​vizualizareConcluzii.jpeg?​300}}
 +
 +De asemenea, am realizat și o analiza comparativa cu un alt sistem meteo. Tot prin intermediul ThingSpeak-ului,​ am preluat un canal al unei stații meteo care afișează în timp real temperatura și umiditatea din București. Astfel, cu datele de la acest canal împreună cu datele primite de la senzorii mei am realizat un grafic pentru a se poate observa diferența între valorile temperaturii obținute în cele 2 cazuri. Datele nu sunt identice, dar sunt apropiate, întrucât senzorii folosiți în cadrul acestui proiect nu sunt cei mai performanti astfel ca pot apărea erori la preluarea datelor. ​
 ===== Concluzii ===== ===== Concluzii =====
  
 +A fost un proiect interesant de realizat, întrucât a venit cu numeroase provocări, din fiecare reușind sa învăț ceva nou. Am realizat ce înseamnă sa lucrezi în acest domeniu de embedded, începând cu citirea datasheet-ului fiecărei componente utilizate, pana la realizarea montajului și crearea codului din spate care sa ofere o logica partii hardware. Proiectului de fata i se pot adauga mai multe funcționalități,​ aceasta varianta fiind una de baza, dar folositoare pentru o dezvoltare ulterioară.
 ===== Download ===== ===== Download =====
  
-<note warning>​ +{{:pm:​prj2023:​adarmaz:​PM_alexa_iordache.zip}}
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectuluisurse, 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**. 
-</​note>​ 
  
 ===== Jurnal ===== ===== Jurnal =====
  
-<note tip> +  * 13 martie - alegere tema proiect 
-Puteți avea și o secțiune ​de jurnal în care să poată urmări asistentul de proiect progresul proiectului. +  * 21 martie - achizitoarea unor componente  
-</​note>​+  * 18 mai - achizitoarea restului ​de componente ​ 
 +  * 22 mai - finalizare hardware + software
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
-<​note>​ +  * https://​electrosome.com/​interfacing-rain-sensor-arduino/​ 
-Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. +  * https://​startingelectronics.org/​tutorials/​arduino/​modules/​photo-resistor/ 
-</note>+  ​https://​randomnerdtutorials.com/​bme280-sensor-arduino-pressure-temperature-humidity/​ 
 +  ​https://​html.alldatasheet.com/​html-pdf/​1132060/​BOSCH/​BME280/​3773/​21/​BME280.html 
 +  ​https://​www.youtube.com/​watch?​v=764bRMvGZR4 
 +  ​https://​www.deviceplus.com/​arduino/​how-to-connect-your-arduino-to-wi-fi/​ 
 +  ​https://www.elprocus.com/​esp8266-wi-fi-module/​ 
 +  * https://​ocw.cs.pub.ro/​courses/pm
  
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
  
pm/prj2023/adarmaz/detectare-stare-atmosferica.1684938119.txt.gz · Last modified: 2023/05/24 17:21 by elena.iordache1207
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