andreea-popa22 / Software-Engineering-Project

IoT Project for a Smart Air Purifier

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Proiect IoT - Purificator Smart

Acest proiect este realizat in cadrul cursului de Inginerie Software, impreuna cu Alina Dorneanu , Gabriel Badescu , Radu Negulescu si Irina Pavalasc.

In cadrul lui vom dezvolta partea de back-end a unui purificator smart ce are urmatoarele functionalitati:

  • înregistrare si logare în aplicație
  • crearea unui profil al utilizatorului (va răspunde la diverse întrebări: vârstă, sex, oraș, afecțiuni, program de funcționare al device-ului)
  • crearea de moduri speciale
  • integrare de API pentru fum, nivel CO, NO2, SO2, O3
  • jocuri de lumini
  • notificari privind depasirea valorilor medii (personalizate in functie de afectiuni)
  • pornirea unor alarme în cazul depășirii anumitor parametri
  • pornirea automată pe baza unui program stabilit

Implementarea proiectului se va realiza in Java.

Link catre documentul de analiza: https://docs.google.com/document/d/1zegxxW3Ma2Hy8idONQcIOMgB3yz-dOM4IdGJO5W8LvM/edit#

Documentare

Aplicatia expune un Rest API HTTP – documentat folosind Open API (Swagger) si un API MQTT – documentat folosind AsyncAPI

Instalare

Ca sistem de build e folosit Maven. Pentru configurația MQTT:

  • instalarea mosquitto (broker MQTT). Pentru download apasa aici
  • în folder-ul în care s-a descărcat mosquitto se va crea un fișier broker.conf cu următorul conținut: listener 1883 allow_anonymous true
  • într-un CMD cu rol de administrator se va introduce următoarea comandă: mosquitto -v -c broker.conf. Pentru verificarea configurației, într-un CMD se poate introduce următoarea comandă: mosquitto_pub -t mytopic -m "Hello world" și mai apoi, se introduce următoarea comandă în alt CMD: mosquitto_sub -t mytopic. Dacă în fereastra de subscribe se afisează "Hello world", configurația este corectă și conexiunea a fost realizată de către broker.

Utilizare

Trebuie deschis urmatorul link: Swagger. Înainte de trimiterea request-urilor va apărea un pop-ul în care utilizatorul va trebui să introducă un username și o parolă. Pentru testare se poate folosi următorul mock user: username admin1 și password 123456. Dacă purificatorul utilizatorului nu este pornit, alte request-uri nu vor funcționa, așa că va trebui trimis request-ul /pickOnSchedule. Apoi se pot trimite celelalte request-uri.

Testare

Sunt implementate atat unit tests, cat si integration tests.

About

IoT Project for a Smart Air Purifier


Languages

Language:Java 85.6%Language:HTML 14.4%