Skip to content

Progetto di Sistemi Operativi Dedicati A.A. 2022/2023 - Realizzazione di un'applicazione IoT completa

Notifications You must be signed in to change notification settings

samueleleli/IoT_System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Progetto di Sistemi Operativi Dedicati - A.A. 2022/2023

L'obiettivo del progetto è stato quello di realizzare un applicativo IoT completo, ovvero, partendo dall'acquisizione dei dati tramite sensori si è arrivati al loro salvataggio e, infine, alla loro visualizzazione.

Il progetto è composto da dei dispositivi, componenti e software da dover utilizzare obbligatoriamente e da dei requisiti da dover rispettare. Il tutto è riassumibile nella seguente tabella:

La repository è composta da 5 directory:

  • arduino : contiene le versioni degli script realizzati per la board Arduino. Gli script realizzati utilizzano la libreria FreeRTOS
  • backend : contiene il backend dell'applicazione, ovvero la componente che permette di interagire con il database, il quale, ha al suo interno gli eventi rilevati da Arduino. Questa parte è stata realizzata tramite Node JS e, in particolare, utilizzando le librerie Express per la gestione delle rotte e Sequelize per l'interfacciamento con il Database
  • mqtt-client-angular : contiene la parte front-end dell'applicazione. Essa è stata realizzata in Angular perché è un framework che implementa al suo interno la programmazione reattiva e ad eventi. Difatti, Angular è stato utilizzato come un client MQTT sottoscritto a tutti i topic. Tramite una sezione apposita, vengono mostrati, alla ricezione di nuovi eventi, i dati aggiornati. L'applicazione è costituita da un'altra sezione che utilizza il backend per recuperare i dati storici, permettendo il filtraggio per topic, valore del topic e data.
  • mqtt-client-db : contiene il client MQTT che è sottoscritto a tutti i topic e resta in attesa di nuovi eventi. Alla ricezione di eventi li aggiunge al database.
  • raspberry: contiene al suo interno due script. Uno che permette di recuperare gli eventi inviati da Arduino tramite seriale e li pubblica sui topic. L'altro contiene lo script che permette di sincronizzare l'RTC.

Un'immagine semplificativa dei collegamenti tra i dispositivi è mostrata di seguito:

Installazioni necessarie nel pc Ubuntu

Mosquitto: Broker MQTT

  1. Installare Mosquitto
sudo apt install mosquitto mosquitto-clients -y
  1. Modificare il file di configurazione
sudo nano /etc/mosquitto/mosquitto.conf
  1. Copiare il contenuto accessibile da questo link e incollarlo nell'editor appena aperto. Chiudere e salvare il file attraverso CTRL+O e poi CTRL+X

  2. Caricare il file di configurazione appena modificato

sudo systemctl stop mosquitto
sudo mosquitto -c /etc/mosquitto/mosquitto.conf -v

(verificare il corretto avvio e premere CTRL+C per fermarlo)
  1. Riavviare e abilitare l'avvio di mosquitto al boot del sistema operativo
sudo systemctl restart mosquitto
sudo systemctl enable mosquitto
  1. Per verificare lo stato del servizio in qualsiasi momento
sudo systemctl status mosquitto

Database MySQL: Salvataggio dei dati

  1. Installare MySQL Server
    sudo apt install mysql-server
  2. Installare Apache2
    sudo apt-get install apache2
  3. Verificare lo stato dei servizi
    sudo systemctl status mysql
    sudo systemctl status apache2
  4. Installare PHP
    sudo apt install php
  5. Installare PhpMyAdmin
    sudo apt install phpmyadmin
    nei menu che compaiono:
        -> apache2 (premere barra spaziatrice) e OK
        -> yes
        -> password: 123456
  6. Abilitare mbstring (per gestione stringhe in PHP) e riavviare apache2
    sudo phpenmod mbstring
    sudo systemctl restart apache2
  7. Creazione di un utente MySQL (root_sod) con tutti i privilegi (password scelta: mysqlserver2023)
    # accesso tramite utente root
    sudo mysql -u root -p
        -> password: 12345678 (la stessa definita prima)
    # si entra nella shell mysql
    sql> CREATE USER 'root_sod'@'%' IDENTIFIED BY 'mysqlserver2023';
    sql> GRANT ALL PRIVILEGES ON '*.*' TO 'root_sod'@'%' WITH GRANT OPTION;
    sql> FLUSH PRIVILEGES;
    sql> EXIT;
  8. Accedere da browser all'indirizzo http://localhost/phpmyadmin/ con le credenziali dell'utente appena creato

Autori

About

Progetto di Sistemi Operativi Dedicati A.A. 2022/2023 - Realizzazione di un'applicazione IoT completa

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •