This shows you the differences between two versions of the page.
|
iothings:proiecte:2025sric:buzzertemp [2025/05/28 23:35] 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 | ||