This shows you the differences between two versions of the page.
iothings:proiecte:2025sric:buzzertemp [2025/05/28 23:34] andreea.necula2102 [Demo - steps] |
iothings:proiecte:2025sric:buzzertemp [2025/05/29 00:09] (current) andreea.necula2102 [References] |
||
---|---|---|---|
Line 44: | Line 44: | ||
=== Code Snippets === | === Code Snippets === | ||
- | Aplicatia are 2 ecrane: una pentru monitorizarea în timp real și una pentru vizualizarea istorică a temperaturilor sub formă de grafic. | + | Aplicatia are 2 ecrane: una pentru monitorizarea în timp real și una pentru vizualizarea istorică a temperaturilor sub formă de grafic.\\ |
+ | Aplicația mobilă ( Kotlin Jetpack Compose) citește datele din Firebase și permite utilizatorului să: | ||
+ | * vadă temperatura curentă și pragul salvat | ||
+ | * actualizeze pragul | ||
+ | * vizualizeze istoric temperaturi sub formă de grafic (cu MPAndroidChart) | ||
<code> | <code> | ||
Line 88: | Line 93: | ||
.height(300.dp) | .height(300.dp) | ||
) | ) | ||
+ | } | ||
+ | |||
+ | </code> | ||
+ | |||
+ | |||
+ | Arduino IDE: \\ | ||
+ | |||
+ | 1. Citire temperatură și trimitere în Firebase: | ||
+ | <code> | ||
+ | // Citire temperatura analogică | ||
+ | int adc = analogRead(tempPin); | ||
+ | float voltage = adc * 3.3 / 4095.0; | ||
+ | float temperatura = voltage * 100.0; | ||
+ | |||
+ | // Actualizare valoare curentă în Firebase | ||
+ | Firebase.RTDB.setFloat(&fbdo, "/temperatura", temperatura); | ||
+ | </code> | ||
+ | |||
+ | 2. Salvare în istoric + control buzzer: | ||
+ | <code> | ||
+ | // Salvare temperatură în nodul /istoric cu timestamp | ||
+ | String timestamp = String(millis()); | ||
+ | String pathIstoric = "/istoric/" + timestamp; | ||
+ | Firebase.RTDB.setFloat(&fbdo, pathIstoric.c_str(), temperatura); | ||
+ | |||
+ | // Activare buzzer dacă temperatura depășește pragul | ||
+ | if (temperatura > prag) { | ||
+ | ledcWrite(0, 127); // buzzer activ | ||
+ | } else { | ||
+ | ledcWrite(0, 0); // buzzer oprit | ||
} | } | ||
Line 95: | Line 130: | ||
====== Demo - steps ====== | ====== Demo - steps ====== | ||
Pas1: \\ | Pas1: \\ | ||
- | {{:iothings:proiecte:2025sric:notiifacre_trimisa.jpeg?150}} | + | {{:iothings:proiecte:2025sric:pas0.png?350}} \\ |
Pas2: \\ | Pas2: \\ | ||
- | {{:iothings:proiecte:2025sric:pas2.png}} | + | {{:iothings:proiecte:2025sric:notiifacre_trimisa.jpeg?250}} \\ |
Pas3: \\ | Pas3: \\ | ||
+ | {{:iothings:proiecte:2025sric:pas2.png}} \\ | ||
+ | Pas4: \\ | ||
{{:iothings:proiecte:2025sric:ecran1_v2.png?150 |}} | {{:iothings:proiecte:2025sric:ecran1_v2.png?150 |}} | ||
{{:iothings:proiecte:2025sric:ecran2.png?200}} | {{:iothings:proiecte:2025sric:ecran2.png?200}} | ||
Line 104: | Line 141: | ||
- | ====== Full Demo ====== | ||
Line 110: | Line 146: | ||
+ | ====== OBS ====== | ||
+ | |||
+ | - Datele sunt salvate corect în Firebase (noduri: temperatura, prag, istoric/{timestamp}) | ||
+ | - Buzzerul reacționează instant la depășirea pragului | ||
+ | - Aplicația mobilă permite control de la distanță | ||
+ | - Graficul se actualizează automat pe baza nodului istoric | ||
+ | - Proiectul demonstrează integrarea eficientă dintre hardware și software pentru un sistem de alertă termică. Este scalabil pentru aplicații smart-home, agricultură sau industrie. | ||
====== Challenges ====== | ====== Challenges ====== | ||
+ | - Configurarea inițială a Firebase | ||
+ | - Detectarea și calibrarea precisă a temperaturii cu LM35 a necesitat testări multiple. | ||
+ | - A fost necesar un efort suplimentar pentru integrarea MPAndroidChart cu Jetpack Compose, care nu are suport direct. | ||
+ | - Au existat probleme de sincronizare între aplicația mobilă și Firebase din cauza unor delay-uri și citiri paralele. | ||
+ | - Testarea în timp real a fost dificilă fără o sursă de temperatură variabilă. | ||
+ | |||
====== References ====== | ====== References ====== | ||
+ | - https://github.com/PhilJay/MPAndroidChart | ||
+ | - https://docs.arduino.cc/language-reference/ | ||
+ | - https://github.com/mobizt/Firebase-ESP-Client | ||
+ | - https://www.ti.com/product/LM35 | ||
+ | - https://blynk.io/blog/esp32-blynk-iot-platform-for-your-connected-product | ||
+ | - https://developer.android.com/compose | ||