Aquarium Monitoring Device

Introducere

Proiectul constă într-un aparat utilizat pentru monitorizarea stării în care se află un acvariu. Device-ul va dispune de un senzor ce va măsura nivelul apei și de o pompă integrată, prin intermediul careia se va putea reumple acvariul, în cazul în care limita admisă este depașită. Pentru a semnala problemele apărute, dispozitivul va dispune de un ecran LCD și de un LED RGB a cărui culoare va depinde de starea nivelului apei. De asemenea, prin intermediul unei aplicații Web, utilizatorul va putea fi notificat cu diverse mesaje. De asemenea, sistemul de notificare va dispune si de trimitere de email-uri.

Curiozitatea pentru acest domeniu a reprezentat ideea și punctul de plecare pentru alegerea acestui proiect. Totodată, scopul este acela de a facilita monitorizarea acvariului de la distanță și de a automatiza procese simple de întreținere a mediului.

Consider că este util pentru pasionații acestui domeniu și că va reprezenta o alternativă mai accesibilă la produsele deja existente pe piață.

Descriere generală

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.

Hardware Design

  • Arduino UNO
  • Ecran LED
  • LED RGB
  • Pompă de apă
  • Senzor de nivel al apei
  • ESP32
  • Rezistenta, condensator, tranzistor
  • Suport baterii

Software Design

  • Tehnologii si tool-uri: Spring Framework, Mosquitto, Apache Kafka, Docker
  • Medii de dezvoltare: Arduino IDE, IntelliJ IDEA
  • Librarii Arduino IDE utilizate pentru: LCD, MQTT Client, ESP32

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 - 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.

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

Rezultatele obtinute in urma finalizarii si conectarii componentelor Hardware si Software:

Concluzii

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.

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

Bibliografie/Resurse

pm/prj2023/ncaroi/aquarium-device.txt · Last modified: 2023/05/27 00:34 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