Differences

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

Link to this comparison view

pm:prj2023:alexau:plantwatcher [2023/05/28 20:54]
radu_andrei.dumitru [Hardware Design]
pm:prj2023:alexau:plantwatcher [2023/05/28 21:29] (current)
radu_andrei.dumitru [Rezultate Obţinute]
Line 44: Line 44:
   * Breadboard   * Breadboard
 ===== Software Design ===== ===== Software Design =====
 +==== Biblioteci ====
 +  * [[https://​docs.arduino.cc/​learn/​built-in-libraries/​software-serial|Software Serial]]
 +  * [[https://​reference.arduino.cc/​reference/​en/​libraries/​simpledht/​|Simple DHT]]
  
 +==== Notiuni din laboratoare ====
 +  * I2C - pentru BMP280
 +  * ADC - pentru senzorul de sol
 +  * Intreruperi hardware - pentru buton
 +  * Timere - pentru trimiterea mesajului de informare, periodic
 +<​note>​Toate au fost implementate utilizand registre!</​note>​
  
-<note tip> +=== Descrierea codului ​=== 
-Descrierea codului ​aplicaţiei (firmware): +Am modularizat implementarea,​ lucrul cu senzorii se face in fisiere separate, exportand apoi functii in headere. 
-  * mediu de dezvoltare ​(if any(e.gAVR StudioCodeVisionAVR) +  * BMP280: Se foloseste si de functiile de I2C implementate separat, functii implementate si in laboratorul 6. Se cauta adresa, apoi ca in datasheet, se trimite un struct cu 12 campuri 8-o si se configureaza sampling-ul si filtrarea. ​(Am ales x1 pentru temperatura,​ x16 pentru presiune si x16 la filtru). Se prelucreaza presiunea si temperatura ca in datasheetMai departecu ajutorul presiunii determin si altitudinea. 
-  * librării şi surse 3rd-party (e.gProcyon AVRlib) +  * FC-28 Soil Moisture: Un simplu ADC, fac setup-ul ca in laborator si citesc rezultatulAcesta este ulterior transformat in procent
-  * algoritmi şi structuri pe care plănuiţi să le implementaţi +  * DHT11: Pentru umiditatea aerului, folosesc direct biblioteca DHT11. Functia read calculeaza si temperatura,​ dar o ignor, optand pentru cea calculata cu BMP280. 
-  * (etapa 3surse şi funcţii implementate +  * In fisierul main, plant_watcher.ino,​ apelez functiile de setup de la senzori, apoi cu SoftwareSerial,​ fac setup-ul modulului GSM (acesta afiseaza la seriala daca a reusit sa se conecteze si cat de puternic este semnalul, pe o scala de la 0-30, 30 insemnand cea mai buna conexiune). De asemenea, fac setup-ul si pentru intreruperi,​ configurand intreruperea externa pe pinul 2, unde este butonul si Timer1. 
-</​note>​+  * In Loop, citesc valorile de la senzori si cu functia add_info, construiesc in buffer mesajul. Pe langa asta, gestionez si partea de avertizare, verificand valorile pentru temperatura,​ umiditate si tin cont de cooldown-ul pentru notificari. 
 +  * O variabila foarte importanta este sendTrigger,​ de ea depinzand trimiterea mesajului. Aceasta se poate face true, fie din intreruperea de la buton, fie dupa un anumit timp pentru trimiterea mesajului de informare periodic, fie prin declansarea unei avertizari. ​
  
 +
 +=== Github ===
 +[[https://​github.com/​radudum10/​PM-Plant-Watcher|Link catre repo]]
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-<note tip> +<note tip>[[https://​youtube.com/​shorts/​3PqNNa3udmQ?​feature=share | Link Youtube]]</​note>​
-Care au fost rezultatele obţinute în urma realizării proiectului vostru. +
-</​note>​+
  
-===== Concluzii =====+{{:​pm:​prj2023:​alexau:​mesaje_plant_watcher.jpeg?​300|}} 
 +<note tip>​Primul este mesajul de la testul facut in video. Urmatoarele sunt teste pentru informarea periodica + informarea de avertizare. (Testele sunt facute cu senzorul de sol scos din pamant, de aceea apare acea informatie in dreptul valorii de sol)</​note>​
  
-===== Download ===== 
- 
-<note warning> 
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului:​ surse, 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 ===== 
- 
-<note tip> 
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. 
-</​note>​ 
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
- +  * Laboratoarele 0-
-<​note>​ +  ​[[https://​lastminuteengineers.com/​sim800l-gsm-module-arduino-tutorial/​|Last minute engineers - SIM800L]] 
-Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. +  * [[https://​forum.arduino.cc/​t/​gsm-module-sim800l-no-signal/​479829/​17|Acest comentariu excelent]] 
-</note> +  * [[https://​github.com/adafruit/Adafruit_BMP280_Library|Biblioteca de BMP280 de la Adafruit]]
- +
-<​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</a></html>+
pm/prj2023/alexau/plantwatcher.1685296473.txt.gz · Last modified: 2023/05/28 20:54 by radu_andrei.dumitru
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