This shows you the differences between two versions of the page.
pm:prj2023:dene:sistemmonitorizarecasa [2023/05/18 13:25] bogdan.baicu [Hardware Design] |
pm:prj2023:dene:sistemmonitorizarecasa [2023/05/25 20:01] (current) bogdan.baicu [Download] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Sistem de monitorizare pentru casa ====== | ====== Sistem de monitorizare pentru casa ====== | ||
+ | Baicu Bogdan Alexandru\\ | ||
+ | 333CC | ||
===== Introducere ===== | ===== Introducere ===== | ||
Line 24: | Line 25: | ||
</note> | </note> | ||
{{:pm:prj2023:dene:schema_electrica_bb.jpg?750|}} | {{:pm:prj2023:dene:schema_electrica_bb.jpg?750|}} | ||
- | {{:pm:prj2023:dene:proiect_bb.jpg?750|}} | ||
===== Software Design ===== | ===== Software Design ===== | ||
+ | Pentru scrierea sofltware-ului am folosit Arduino IDE. Am uitilizat bibliotecile DHT.h (pentru senzorul de umiditate si temperatura), LiquidCrystal_I2C.h (pentru modului I2C si LCD) si SoftwareSerial.h (pentru modulul SIM800L).\\ | ||
+ | In functia setup() realizez setarea baud rate-ului, atat pentru comunicarea cu PC-ul (nu este necesara pentru functionarea proiectului) si cu modulul SIM800L, initializez afisajul LCD, senzorul DHT11 si fac primele masuratori cu ajutorul senzorilor.\\ | ||
+ | Functia loop() apeleaza functiile definite de catre mine, functii ce au scopul principal de a modulariza codul. Am setat senzorii sa faca masuratori la intervale de timp diferite: 15 min pentru DHT11 (temperatura si umiditatea nu consider ca este nevoie sa fie masurate mai des, considerand ca nu se produc schimbari prea mari de temperatura intr-un interval de timp mai mic), 1 minut pentru senzorul de gaz, respectiv 5 pentru cel de masurare al nivelului apei.\\ | ||
+ | Pentru ca senzorii sa anunte detectarea unui nivel ridicat de gaze/nivel al apei am considerat ca este necesar ca senzorul sa transmita date peste un prag setat (jumatate din intervalul in care poate masura) la doua masuratori consecutive, fiind destul de sensibili, iar masurarea unei valori peste limita admisa poate fi cauzata si de catre factori care sa nu anunte un pericol real. Odata detectat un pericol, buzzer-ul incepe sa emita un sunet intermitent, iar pe display, in locul umiditatii, este afisat un mesaj care sa anunte utilizatorul ca a fost detectat un nivel ridicat de gaz/al apei. In caz ca ambii senzori trec de pragul limita, LCD-ul afiseaza alternativ mesajele de avertizare. Atat avertizarea sonora, cat si mesajul de pe display vor persista atat timp cat 2 masuratori consecutive nu sunt sub prag sat pana cand utilizatorul nu dezactiveaza senzorul care a detectat pericolul. Informarea prin SMS se realizeaza o singura data dupa detectearea unui pericol, utilizatorul fiind informat de mai multe ori doar in cazurile: | ||
+ | - ambii senzori detecteaza simultan pericolul, iar ulterior mai detecteaza doar unul | ||
+ | - un senzor detecteaza pericol, iar ulterior detecteaza si al doilea | ||
+ | Senzorii de gaz si de apa pot si dezactivati individual, un led marcand inactivitatea acestora. Odata dezactivati, in caz ca acestia detectaera pericol, avertizarea sonora si vizuala este dezactivata. | ||
+ | ===== Rezultate Obţinute ===== | ||
- | <note tip> | + | Schema fizica obtinuta in urma implementarii proiectului:\\ |
- | Descrierea codului aplicaţiei (firmware): | + | {{:pm:prj2023:dene:proiect_bb.jpg?750|}} |
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | |
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | |
- | * (etapa 3) surse şi funcţii implementate | + | |
- | </note> | + | |
- | ===== Rezultate Obţinute ===== | ||
- | |||
- | <note tip> | ||
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | ||
- | </note> | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | A fost un proiect interesant, mi-a facut placere sa il implementez si consider ca il voi folosi (macar uneori) in viitor. Cea mai mare dificultate a fost reprezentata de calibrarea senzorilor de gaz si de nivel al apei, deoarece o crestere foarte mare intre doua masuratori consecutive crea spike-uri sau iar o scadere brusca se manifesta prin rimiterea unor date mai mari decat in realitate. | ||
===== Download ===== | ===== Download ===== | ||
- | <note warning> | + | {{:pm:prj2023:cc:baicu_bogdan:baicu_bogdan.zip|}} |
- | 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 ===== | ===== Jurnal ===== | ||
Line 63: | Line 56: | ||
Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | ||
</note> | </note> | ||
+ | Biblioteci utilizate: | ||
+ | * [[https://github.com/adafruit/DHT-sensor-library]] (disponibila si in Arduino IDE) | ||
+ | * [[https://github.com/adafruit/Adafruit_Sensor]] (disponibila si in Arduino IDE) | ||
+ | * [[https://www.arduinolibraries.info/libraries/liquid-crystal-i2-c]] (disponibila si in Arduino IDE) | ||
+ | |||
+ | * [[https://lastminuteengineers.com/i2c-lcd-arduino-tutorial/]] | ||
+ | * [[https://www.instructables.com/SMS-Controller-by-Using-SIM800L-V2/]] | ||
+ | * [[https://www.circuitbasics.com/how-to-set-up-the-dht11-humidity-sensor-on-an-arduino/]] | ||
<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> | ||