This shows you the differences between two versions of the page.
|
pm:prj2026:andrei.batasev:daniel.malanca [2026/05/24 12:32] daniel.malanca |
pm:prj2026:andrei.batasev:daniel.malanca [2026/05/24 13:44] (current) daniel.malanca |
||
|---|---|---|---|
| Line 13: | Line 13: | ||
| {{ https://ocw.cs.pub.ro/courses/_media/pm/prj2026/andrei.batasev/daniel.malanca_block_diagram.png?800 }} | {{ https://ocw.cs.pub.ro/courses/_media/pm/prj2026/andrei.batasev/daniel.malanca_block_diagram.png?800 }} | ||
| - | Proiectul functioneaza pe baza unui microcontroler ESP32 care actioneaza ca unitate centrala, care colecteaza date de la senzori si actioneaza diversi actuatori. | + | Proiectul functioneaza pe baza unui microcontroller ESP32 care actioneaza ca unitate centrala, care colecteaza date de la senzori si actioneaza diversi actuatori. |
| **Schema bloc a sistemului:** | **Schema bloc a sistemului:** | ||
| - | * **Modul Central:** Microcontroler ESP32. | + | * **Modul Central:** Microcontroller ESP32. |
| * **Module de Intrare (Input):** | * **Module de Intrare (Input):** | ||
| * **DHT11:** Modul digital care transmite catre ESP32 valorile masurate pentru temperatura mediului ambiant si umiditatea relativa. | * **DHT11:** Modul digital care transmite catre ESP32 valorile masurate pentru temperatura mediului ambiant si umiditatea relativa. | ||
| Line 28: | Line 28: | ||
| * **LED RGB:** Indicator de stare comandat prin semnale PWM. Semnaleaza starea generala prin diverse culori si pulsatii. | * **LED RGB:** Indicator de stare comandat prin semnale PWM. Semnaleaza starea generala prin diverse culori si pulsatii. | ||
| * **Buzzer:** Un modul audio actionat de un pin digital pentru a emite semnale acustice de avertizare in caz de parametrii critici. | * **Buzzer:** Un modul audio actionat de un pin digital pentru a emite semnale acustice de avertizare in caz de parametrii critici. | ||
| + | |||
| + | ===== Elemente de originalitate si complexitate ===== | ||
| + | |||
| + | Desi monitorizarea ambientala este un concept comun, acest proiect se diferentiaza prin rigoarea implementarii tehnice: | ||
| + | |||
| + | * **Procesare avansata a semnalelor analogice:** Pentru citirea luminozitatii, s-a implementat o filtrare a zgomotului prin medierea a 64 de esantioane intr-o fereastra de 20ms, urmata de un clipping la intervalul de liniaritate al ADC controller-ului de pe ESP32. | ||
| + | * **Arhitectura software bazata pe RTOS:** Trecerea de la o bucla de executie secventiala la task-uri FreeRTOS asigura ca citirea senzorilor cu timing strict (DHT11) nu este blocata de latentele retelei (MQTT). | ||
| + | * **Sistem hibrid de alertare:** Sistemul functioneaza independent; ofera alarme locale (Buzzer/RGB) in timp real, concomitent cu persistenta datelor in infrastructura de Cloud containerizata (InfluxDB + Grafana). | ||
| ===== Hardware Design ===== | ===== Hardware Design ===== | ||
| Line 60: | Line 68: | ||
| ===== Software Design ===== | ===== Software Design ===== | ||
| - | Firmware-ul va fi dezvoltat in limbajul C, folosind framework-ul oficial ESP-IDF prin PlatformIO, permitand utilizarea conceptelor low-level invatate la laboratoare. | + | Firmware-ul va fi dezvoltat in limbajul C, folosind framework-ul oficial ESP-IDF prin PlatformIO, permitand utilizarea conceptelor low-level invatate la laboratoare. Pentru implementarea multitasking-ului (ecran, senzori, networking) este folosit FreeRTOS. |
| Line 105: | Line 113: | ||
| ==== Modul Wi-Fi ==== | ==== Modul Wi-Fi ==== | ||
| Modulul Wi-Fi prezent pe placa de dezvoltare ESP32 este folosit pentru a trimite datele inregistrate prin protocolul mqtt catre un broker Mosquitto, pentru a fi stocate si ulterior afisate de dashboard. | Modulul Wi-Fi prezent pe placa de dezvoltare ESP32 este folosit pentru a trimite datele inregistrate prin protocolul mqtt catre un broker Mosquitto, pentru a fi stocate si ulterior afisate de dashboard. | ||
| + | |||
| + | Pentru implementarea protocolului MQTT este folosita biblioteca esp-mqtt. | ||
| + | |||
| ===== Dashboard ===== | ===== Dashboard ===== | ||
| Arhitectura server-side este bazata pe un singur docker-compose folosind containere preexistente pentru a asigurara o configuratie simpla, intuitiva si modulara. | Arhitectura server-side este bazata pe un singur docker-compose folosind containere preexistente pentru a asigurara o configuratie simpla, intuitiva si modulara. | ||
| - | ===== Rezultate Obtinute ===== | + | ===== Laboratoare Folosite ===== |
| - | ===== Concluzii ===== | + | * Laboratorul 0 - GPIO + Laboratul 3 - Timere. PWM |
| + | - Gestionarea led-ului RGB si a buzzer-ului passiv folosind LEDC | ||
| - | ===== Download ===== | + | * Laboratorul 1 - UART |
| + | - UART este protocolul folosit pentru incarcarea codului pe placa, precum si pentru monitorizarea output-ului de debug emis de aceasta. | ||
| - | ===== Jurnal ===== | + | * Laboratorul 2 - Intreruperi |
| + | - Am introdus un ISR pentru prelucrarea garantata a butonului de intrerupere a alarmei | ||
| - | ===== Bibliografie/Resurse ===== | + | * Laboratorul 4 - ADC |
| + | - Valoarea rezistentei LDR este dedusa din tensiunea masurata de controller-ul ADC | ||
| + | * Laboratorul 6 - I2C | ||
| + | - Ecranul OLED SSD1306 este controlat prin protocolul I2C | ||
| + | ===== Rezultate Obtinute ===== | ||
| + | |||
| + | <html><a href="https://drive.google.com/file/d/1AF1xj1J54qJoGAdxvQm7j4wwsGwPy_x1/view">Link</a></html> Video Demo | ||
| + | |||
| + | Am reusit sa duc la capat proiectul, obtinand ceea ce mi-am propus la inceput: un sistem IoT care monitorizeaza un mediu si alerteaza cand sunt depasite constragerile acestuia. | ||
| + | |||
| + | ===== Concluzii ===== | ||
| + | |||
| + | Pentru imbunatatirea proiectului exista urmatoarele posibilitati: | ||
| + | - Folosire unor senzori cu precizie si acuratete mai mare | ||
| + | - Folosirea unui PCB custom pentru minimizarea proiectului | ||
| + | - Optimizarea pentru Power Consumption, permitand functionarea pe durate lungi fara alimentare externa | ||
| + | |||
| + | ===== Bibliografie/Resurse ===== | ||
| <html><a href="https://cdn.sparkfun.com/datasheets/Sensors/LightImaging/SEN-09088.pdf">Datasheet LDR GL5528</a></html> | <html><a href="https://cdn.sparkfun.com/datasheets/Sensors/LightImaging/SEN-09088.pdf">Datasheet LDR GL5528</a></html> | ||
| Line 128: | Line 159: | ||
| <html><a href="https://mdaniel.me/d/adfhwpd/eth-sensor-data?orgId=1&from=now-30m&to=now&timezone=browser">Dashboard</a></html> | <html><a href="https://mdaniel.me/d/adfhwpd/eth-sensor-data?orgId=1&from=now-30m&to=now&timezone=browser">Dashboard</a></html> | ||
| - | |||
| <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> | ||