Baicu Bogdan Alexandru
333CC
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:
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.
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.