Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2023:ncaroi:aquarium-device [2023/05/26 13:12]
ana_corina.rafaila [Software Design]
pm:prj2023:ncaroi:aquarium-device [2023/05/27 00:34] (current)
ana_corina.rafaila [Descriere generală]
Line 9: Line 9:
 ===== Descriere generală ===== ===== Descriere generală =====
  
-{{ :​pm:​prj2023:​ncaroi:​untitled_diagram.jpg?200 |}}+{{ :​pm:​prj2023:​ncaroi:​diagrama_pm_raf.png?200 |}}
  
 Senzorul va monitoriza în permanență nivelul apei. Odată cu schimbarile apărute și detectate, culoarea LED-ului RGB se va modifica. Atunci când o limită prestabilită va fi depașită, utilizatotul va fi notificat in cadrul aplicatiei, dar si prin email. Astfel, i se va pune la dispozitie un API ce poate controla pompa de apa. Pompa de apa va reumple acvariul cu o cantitate de apă afalata in parametrii admisi. În tot acest timp, ecranul LED va afișa mesaje sugestive. Mecanismul de notificare va fi realizat prin integrarea cu un client de MQTT si Apache Kafka în cadrul aplicației Web dezvoltate în framework-ul Spring. Senzorul va monitoriza în permanență nivelul apei. Odată cu schimbarile apărute și detectate, culoarea LED-ului RGB se va modifica. Atunci când o limită prestabilită va fi depașită, utilizatotul va fi notificat in cadrul aplicatiei, dar si prin email. Astfel, i se va pune la dispozitie un API ce poate controla pompa de apa. Pompa de apa va reumple acvariul cu o cantitate de apă afalata in parametrii admisi. În tot acest timp, ecranul LED va afișa mesaje sugestive. Mecanismul de notificare va fi realizat prin integrarea cu un client de MQTT si Apache Kafka în cadrul aplicației Web dezvoltate în framework-ul Spring.
Line 31: Line 31:
 </​note>​ </​note>​
  
-Proiectul se bazeaza, in principal, pe comunicarea prin intermediul protocolului MQTT. Aplicatia scrisa pentru Arduino realizeaza conexiunea wireless prin utilizarea modulului ESP32. Odata stabilita conexiunea la internet, se creeaza clientul MQTT care trimite/​primeste mesaje pe topicuri predefinite:​ mqtt/​waterlevel & mqtt/​waterpump.+Proiectul se bazeaza, in principal, pe comunicarea prin intermediul protocolului MQTT. Aplicatia scrisa pentru Arduino realizeaza conexiunea wireless prin utilizarea modulului ESP32. Odata stabilita conexiunea la internet, se creeaza clientul MQTT care trimite/​primeste mesaje pe topicuri predefinite: ​"mqtt/​waterlevel" ​"mqtt/​waterpump".
  
-Senzorul de nivel al apei monitorizeaza constant valorile nivelului apei si le trimite broker-ului de MQTT care ruleaza pe un container. +Senzorul de nivel al apei monitorizeaza constant valorile nivelului apei si le trimite broker-ului de MQTT - Mosquitto - care ruleaza pe un container. Valorile trimise sub forma de mesaje catre broker sunt, la randul lor, "​consumate"​ si prelucrate de un alt client de MQTT dezvoltat ​in framework-ul Spring. Mai departe, valorile sunt manipulate de un producer de Kafka, ce publica mesaje pe topicele corespunzatoare. 
-Valorile trimise sub forma de mesaje catre broker sunt, la randul lor, "​consumate"​ si prelucrate de un alt client de MQTT dezvoltat ​prin intermediul ​framework-ului Spring si care com+ 
 +Consumer-ul de Kafka este construit in cadrul unei noi aplicatii de Spring. Legatura dintre producer ​si consumer se realizeaza prin broker-ul de Kafka ce ruleaza pe un container. Pentru un management mai bun al situatiei interne in ceea ce priveste folosirea de Apache Kafka, am utilizat, de asemenea, un container pentru Zookeeper. 
 + 
 +Aplicatia ce sustine consumer-ul de Kafka realizeaza si business-ul notificarilor. Sistemul de notificare dispune de trimitere de email-uri si de afisarea unor mesaje intr-o pagina html. Pentru management-ul notificarilor cu privire la posibilele nereguli legate de acvariu, am folosit o baza de date PostgreSQL. 
 + 
 +Astfel putem concluziona un model arhitectural bazat pe microservicii.
  
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-<note tip> +Rezultatele obtinute in urma finalizarii si conectarii componentelor Hardware si Software: 
-Care au fost rezultatele obţinute în urma realizării proiectului vostru. +{{ :​pm:​prj2023:​ncaroi:​pm_proj_img1.jpeg?200 |}}
-</​note>​+
  
-===== Concluzii =====+{{ :​pm:​prj2023:​ncaroi:​pm_proj_img2.jpeg?​200 |}}
  
-===== Download =====+{{ :​pm:​prj2023:​ncaroi:​pm_proj_html_page.jpeg?​300 |}}
  
-<note warning>​ +{{ :pm:​prj2023:​ncaroi:​pm_proj_email.jpeg?200 |}}
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectuluisurse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).+
  
-Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele ​este de tipul **:​pm:​prj20??:​c?​** ​sau **:​pm:​prj20??:​c?:​nume_student** (dacă este cazul)**Exemplu:​** Dumitru Alin, 331CC -> **:​pm:​prj2009:​cc:​dumitru_alin**. +===== Concluzii ===== 
-</​note>​+In urma realizarii acestui proiect, am realizat munca din spatele proiectelor IoT si dificultatile ce pot aparea la fiecare pas, fie ca este vorba de componentele Hardware utilizate ​sau chiar de sistemul de operare folosit pentru procesul de development.
  
-===== Jurnal ​=====+A fost o experienta interesanta care a venit cu multe provocari si care a necesitat cunostinte dobandite pe parcursul celor 3 ani de facultate, dar si mult research pe cont propriu. 
 +===== Download ​=====
  
-<note tip> +{{:​pm:​prj2023:​ncaroi:​aquariummonitoringdevice.zip|}}
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. +
-</​note>​+
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
 <​note>​ <​note>​
-Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**.+  * https://​docs.spring.io/​spring-kafka/​reference/​html/​ 
 +  ​https://​randomnerdtutorials.com/​esp32-mqtt-publish-bme680-arduino/#​more-99496 
 +  ​https://​drive.google.com/​file/​d/​1JTzyLH7v0MgjwvOnUrzih87RpIXkxrZg/​view?​usp=sharing 
 +  ​https://​docs.spring.io/​spring-integration/​reference/​html/​mqtt.html
 </​note>​ </​note>​
  
 <​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>​
  
pm/prj2023/ncaroi/aquarium-device.1685095963.txt.gz · Last modified: 2023/05/26 13:12 by ana_corina.rafaila
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0