This shows you the differences between two versions of the page.
pm:prj2023:dene:sistemdealarma [2023/05/29 16:52] ana_maria.suiu [Software Design] |
pm:prj2023:dene:sistemdealarma [2023/05/30 14:21] (current) ana_maria.suiu [Concluzii] |
||
---|---|---|---|
Line 8: | Line 8: | ||
===== Introducere ===== | ===== Introducere ===== | ||
- | Proiectul consta in implementarea unui sistem de alarma care detecteaza prezenta unui obiect strain cu ajutorul unor senzori de distanta si de miscare. | + | Proiectul consta in implementarea unui sistem de alarma care detecteaza prezenta unei persoane/ unui obiect cu ajutorul unor senzori de distanta si de miscare. |
+ | Astfel, cel care este conectat prin wifi la sistem va fi instiintat daca s-a detectat o prezenta in apropiere prin culorile date de led, prin | ||
+ | pornirea unui alarme si prin primirea unul email. | ||
- | Acesta functioneaza dupa urmatoarea logica : cand este detectata miscarea unui obiect si este determinata distanta acestuia fata de sistem trebuie sa vedem in ce interval se claseaza distanta respectiva. In intervalul [3m, 5m] se coloreaza | + | Scopul proiectului este de a monitoriza prezenta altor obiecte/ persoane straine asupra unui bun, pentru a-l putea tine in siguranta. |
- | ledul in galben. In intervalul [1m, 3m] ledul se coloreaza in portocaliu, iar persoana conectata la sistem va primi un mesaj pe telefon. In intervalul [5cm, 1m] ledul se coloreaza in rosu si este activata o alarma cu ajutorul unui buzzer. In tot acest timp pe ecranul LCD va fi afisata distanta | + | |
- | fata de obiect. Daca nu este detectata prezenta vreunui obiect, pe ecran este afisata un mesaj "In siguranta" iar ledul are culoarea verde. | + | |
- | + | ||
- | Scopul proiectului este de a monitoriza prezenta altor obiecte straine asupra unui bun, pentru a-l putea tine in siguranta. | + | |
===== Descriere generală ===== | ===== Descriere generală ===== | ||
+ | |||
+ | Sistemul functioneaza dupa urmatoarea logica : cand este detectata miscarea unei persoane, este determinata distanta acestuia fata de sistem. Urmeaza sa vedem in ce interval se claseaza distanta respectiva. La o distanta mai mare de 75cm | ||
+ | ledul ramane verde. In intervalul [50cm, 75cm] ledul se coloreaza in albastru. In intervalul [25cm, 50cm] ledul se coloreaza in galben si este activata o alarma cu ajutorul unui buzzer. In intervalul [0 cm, 25cm] ledul se coloreaza in rosu, este | ||
+ | activata o alarma cu ajutorul buzzerului si persoana conectata la sistem va primi un email. In tot acest timp pe ecranul LCD va fi afisata distanta | ||
+ | fata de obiect. Daca nu este detectata prezenta vreunui obiect, pe ecran este afisata un mesaj "Nu s-a detectat miscare!" iar ledul are culoarea verde. | ||
+ | |||
+ | Schema bloc : | ||
+ | |||
{{:pm:prj2023:dene:blank_diagram_1_.png?nolink&800|}} | {{:pm:prj2023:dene:blank_diagram_1_.png?nolink&800|}} | ||
Line 30: | Line 36: | ||
* Modul LCD 1602 | * Modul LCD 1602 | ||
* Modul I2C PCF8574T | * Modul I2C PCF8574T | ||
- | * Modul WI-FI ESP2866 | + | * Modul WI-FI ESP8266 |
* Rezistente | * Rezistente | ||
* Fire | * Fire | ||
+ | * Cutie, culori, benzi colorate pentru design :-D | ||
Schema eletrica : | Schema eletrica : | ||
Line 54: | Line 61: | ||
La inceputul programului includ bibliotecile necesare pentru utilizarea anumitor componente, acestea fiind “WiFiEsp.h”, “SoftwareSerial.h”, | La inceputul programului includ bibliotecile necesare pentru utilizarea anumitor componente, acestea fiind “WiFiEsp.h”, “SoftwareSerial.h”, | ||
“LiquidCrystal_I2C.h” si creez cate un obiect pentru fiecare bibiloteca. Pentru serial1 apelez folosindu-ma de pinii RX si Tx pentru a configura | “LiquidCrystal_I2C.h” si creez cate un obiect pentru fiecare bibiloteca. Pentru serial1 apelez folosindu-ma de pinii RX si Tx pentru a configura | ||
- | comunicarea seriala pentru modulul wifi. Realizez initializari pentru modului wifi, incluzand numele retelei la care ca conectez prin wifi, parola, | + | comunicarea seriala pentru modulul wifi. Realizez initializari pentru modului wifi, incluzand numele retelei la care ma conectez prin wifi, parola, |
statusul conectarii la retea, numele serverului unde o sa trimit o cerere pentru a primi un email de alerta. | statusul conectarii la retea, numele serverului unde o sa trimit o cerere pentru a primi un email de alerta. | ||
Line 91: | Line 98: | ||
makeHttpRequest(): | makeHttpRequest(): | ||
Incerc sa ma conectez la serverul ifttt pe portul 80. Daca conectare functioneaza, afisez mesaj pe seriala si fac o cerere HTTP de tip POST prin | Incerc sa ma conectez la serverul ifttt pe portul 80. Daca conectare functioneaza, afisez mesaj pe seriala si fac o cerere HTTP de tip POST prin | ||
- | intermediul careia imi va trimite un email de alerta ca s-a detectat un obiect la mai putin de 25cm fata de sistem. | + | intermediul careia imi va trimite un email de alerta care ma anunta s-a detectat un obiect la mai putin de 25cm fata de sistem. |
toggleLed(): | toggleLed(): | ||
In functie de intervalul in care se afla distanta perceputa fata de obiect, fac urmatoarele actiuni astfel: | In functie de intervalul in care se afla distanta perceputa fata de obiect, fac urmatoarele actiuni astfel: | ||
- | > 75 cm -> ledul ramane verde | + | [75cm, ..] -> ledul ramane verde |
[50cm, 75cm] -> ledul se coloreaza in albastru | [50cm, 75cm] -> ledul se coloreaza in albastru | ||
- | [25cm, 50cm] -> ledul se coloreaza in portocaliu si este apelata functia soundOn() care porneste buzzerul | ||
- | [0,25cm] -> led-ul se coloreaza in rosu si este apelata functia soundOn() care porneste buzzerul (si voi primi si email datorita codului din loop) | ||
+ | [25cm, 50cm] -> ledul se coloreaza in galben si este apelata functia soundOn() care porneste buzzerul | ||
+ | [0,25cm] -> led-ul se coloreaza in rosu si este apelata functia soundOn() care porneste buzzerul (si voi primi si email datorita codului din loop) | ||
+ | printDistance(): | ||
+ | Setez cursorul la inceputul primei linii(0,0) si printez pe acesta "MISCARE DETECTATA!". Setez cursorul la inceputul celei de-a doua linii(1,1) si | ||
+ | si afisez distanta perceputa fata de obiect. | ||
+ | printMessage(): | ||
+ | Setez cursorul la inceputul primei linii(0,0) si printez pe acesta "Nu s-a detectat". Setez cursorul la inceputul celei de-a doua linii(1,1) si | ||
+ | si afisez " miscare! ". | ||
+ | soundOn(): | ||
+ | Ma folosesc de functia Tone pentru a seta diferite frecvente pentru a produce un sunet de alarma pe buzzer. Opresc sunetul folosind functia noTone. | ||
+ | |||
+ | <note> | ||
+ | Pentru a transforma din timpul masurat de senzorul ultrasonic in distanta am folosit formula : distance = timeUltrasonic * 0.0343 / 2; | ||
+ | </note> | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
+ | {{:pm:prj2023:dene:suiu_ana_poza1.jpg?nolink&700|}} | ||
+ | {{:pm:prj2023:dene:suiu_ana_poza2.jpg?nolink&700|}} | ||
+ | {{:pm:prj2023:dene:suiu_ana_poza3.jpg?nolink&700|}} | ||
+ | |||
+ | {{:pm:prj2023:dene:suiu_ana_poza4.jpg?nolink&700|}} | ||
+ | |||
+ | Ulterior, am realizat si acest suport pentru a putea tine senzorii aproape unul de altul si pentru a avea un design mai frumos. 8-) | ||
+ | |||
+ | {{:pm:prj2023:dene:suiu_ana_poza5.jpg?nolink&700|}} | ||
+ | |||
+ | Demo proiect : | ||
+ | https://www.youtube.com/watch?v=3XNbpsHQOhQ&ab_channel=Ana%C8%98uiu | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | Per total a fost un proiect interesant si destul de reusit, pot spune ca am invatat destul de multe lucrand la aceasta. Cea mai grea parte a fost lucrul cu modulul wifi deoarece nu il mai folosisem pana acum si mi-a luat ceva timp pana sa-mi dau seama cum functioneaza. Si in plus | ||
+ | nu mergea intotdeauna conectarea la wifi si conectarea la server pentru a primi email.:-( | ||
===== Download ===== | ===== Download ===== | ||
+ | {{:pm:prj2023:dene:sistem_de_alarma.zip|}} | ||
===== Jurnal ===== | ===== Jurnal ===== | ||
- | 25.04.2023 : Alegere tema documentatie | + | 25.04.2023 : Alegere tema proiectului |
1.05 - 5.05.2023 : Am ales ce piese folosesc si am decis logica implementarii | 1.05 - 5.05.2023 : Am ales ce piese folosesc si am decis logica implementarii | ||
Line 130: | Line 164: | ||
+ | https://github.com/bportaluri/WiFiEsp/tree/master/examples/WebClient | ||
+ | |||
+ | https://docs.arduino.cc/learn/built-in-libraries/software-serial | ||
+ | |||
+ | https://www.elementzonline.com/blog/ultrasonic-sensor-hc-sr04-with-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> |