Laboaratoare folosite:
- USART : https://ocw.cs.pub.ro/courses/pm/lab/lab1-2023 (Folosit USART pentru debugging si pentru analizarea real-time a datelor inregistrate de senzori)
- I2C : https://ocw.cs.pub.ro/courses/pm/lab/lab6-2023-2024 (Folosim I2C in comunicarea cu ecranul LCD)
- Intreruperi : https://ocw.cs.pub.ro/courses/pm/lab/lab2-2023 (Folosim intreruperi datorita senzorului de flama )
Pini utilizati:
- Senzorul de flama : pinul D0(Când senzorul detectează o flacără, pinul DO va furniza 0V (stare LOW), iar când nu este detectată nicio flacără, pinul DO va fi la 5V (stare HIGH))
- LCD cu interfata I2C : SDA: acest pin este folosit pentru transferul de date bidirecțional între microcontroler și LCD. SDA: acest pin este utilizat pentru a sincroniza transferul de date între microcontroler și LCD.
- Modul WI-FI : TX : pinul de transmisie pentru comunicația serială. TX trimite date de la ESP8266 către microcontrolerul principal sau alt dispozitiv de comunicație serială. RX : pinul de recepție pentru comunicația serială. RX primește date de la microcontrolerul principal sau de la alt dispozitiv de comunicație serială către ESP8266. CH_PD: Acest pin este folosit pentru a controla alimentarea cu energie a cipului. Pentru a menține modulul pornit, acest pin trebuie să fie conectat la 3.3V. Legat de modulul wi-fi pentru conexiuni este nevoie să folosim un modul de conversie de niveluri logice, de la 5 V la 3.3 V. Pentru a evita utilizarea unui astfel de convertor de niveluri logice, fara a risca distrugerea modulului am realizat o conexiune cu 2 rezistori(1k, 2k), cum se poate vedea in imaginile de mai jos.
Mesajul si componentele in cazul in care nu este incendiu
Mesajul si componentele in caz de incendiu
Notificarea primita in caz de incendiu
- Algoritmul de Conectare la WiFi: Verifică dacă modulul ESP8266 este disponibil și răspunde la comenzi, resetează modulul ESP8266, setează modulul în modul station si conectează modulul ESP8266 la rețeaua hotspot.
- Algoritmul de Detectare a Flăcării: citește valoarea de la senzorul de flacără, daca flacara nu este detectata, aprinde LED-ul alb si afiseaza mesajul pe lcd sau daca flacara apare, se declanseaza alarma, se aprinde ledul rosu si se trimite notificarea.
- Algoritmul pentru Afișarea Mesajului pe LCD: Mesajele sunt afișate și derulate pe ecranul LCD
- Algoritmul pentru Trimiterea Notificărilor IFTTT: Construiește URL-ul pentru cererea HTTP GET pentru IFTTT, realizează o conexiune TCP cu serverul IFTTT si trimite cererea HTTP GET și închide conexiunea TCP.
- setup: Inițializează monitorul serial, comunicarea serială cu ESP8266, pinurile pentru LED-uri și buzzer, ecranul LCD, conectează modulul ESP8266 la rețeaua Wi-Fi;
- loop: Citește valoarea de la senzorul de flacără, afișează mesaje pe LCD și gestionează LED-urile si declanșează alarma și trimite notificări IFTTT dacă este detectată flacăra;
- connectToWiFi: algoritmul descris la punctul anterior pentru conectare la wi-fi;
- alarma: Declanșează un ton de urgență continuu cât timp flacăra este detectată;
- sendIFTTTNotification: Construiește și trimite o cerere HTTP GET către serverul IFTTT pentru a trimite notificarea.
- Integrarea componentelor hardware și software a demonstrat importanța unei bune planificări și a unei configurări corecte pentru a asigura funcționarea stabilă și eficientă a sistemului.
- Sistemul oferă atât alerte locale prin intermediul ecranului, LED-urilor și buzzerului(prin aceste moduri se pot atentiona si persoanele cu handicap), cât și notificări remote prin IFTTT, asigurând astfel o alertare eficientă în caz de incendiu.
- Am testat diferite baud rate-uri pentru a asigura o comunicare corectă si o conexiune stabila cu modulul ESP8266. Aceasta a inclus schimbarea baud rate-ului atât în cod, cât și în monitorul serial.
- Crearea și configurarea corectă a unui applet IFTTT a permis trimiterea notificărilor în caz de incendiu.