Skip to content

Latest commit

 

History

History
213 lines (134 loc) · 9.81 KB

File metadata and controls

213 lines (134 loc) · 9.81 KB

Controllo di Motori e Sensori su Arduino, Raspberry Pi e ESP

GitHub contributors GitHub all releases GitHub GitHub deployments GitHub repo size GitHub Repo stars

Python C++ HTML5 CSS3 Arduino Raspberry Pi Matplotlib Flask Mosquitto Zigbee Amazon Alexa

README.us 🇺🇸


tps_GiorgioCitterio_UmbertoColombo_2022_2023

Indice

Installazione delle librerie su sistemi Linux.


Attività 1

Relazione attività 1: Trasmissione seriale su arduino.

Controllare come avviene comunicazione sulla seriale da parte di arduino.


Attività 2

Relazione attività 2: Comunicazione seriale con python e arduino.

Comunicare tramite un' applicazione python che gira su Windows un sensore (potenziometro) ed un attuatore (motore con L293D), entrambi realizzati su breadboard e gestiti da un programma su arduino.

Per comunicare sulla porta seriale tramite python si utilizza la libreria serial che può essere installata (su Windows) con il seguente comando:

py -m pip install pyserial

Documentazione ufficiale libreria serial.


Attività 3

Relazione attività 3: Comunicazione con pacchetto modello ISO/OSI.

Come riorganizzare il formato dei messaggi scambiati fra i sensori/attuatori e l’applicazione python, preparando le cose in modo tale che possano funzionare utilizzando un RF24, che ha un payload di 32 byte.

Per realizzare questi pacchetti si utilizza la libreria struct già presente in python.

Documentazione ufficiale libreria struct.


Attività 4

Relazione attività 4: Controllo sensore/attuatore tramite interfaccia grafica GUI (Python).

Come gestire il sensore e l'attuatore tramite interfaccia grafica GUI su python, 3 programmi diversi per l'attuatore e 3 per il sensore.

Per realizzare la GUI (Graphical User Interface) si utilizza la libreria tkinter installabile per la maggior parte degli utenti con il seguente comando:

py -m pip install tkinter

Documentazione ufficiale libreria tkinter.

Nell'ultima versione del programma per il sensore, per la realizzazione del grafico si utilizza la libreria matplotlib installabile (su Windows) con il comando seguente:

py -m pip install matplotlib

Documentazione ufficiale libreria matplotlib.


Attività 5

Relazione attività 5: Memorizzazione dati sensore su un file JSON.

Come memorizzare i dati ricevuti dal sensore su un file JSON in modo da poterli rendere disponibili successivamente per lo scambio di dati client/server.

Per scrivere su un file JSON da python si utilizza la libreria json già presente in python:

Documentazione ufficiale libreria json.


Attività 7

Relazione attività 7: Rendere disponibili sul Web i dati del sensore.

Come rendere disponibili sul Web i dati del sensore memorizzati nel file JSON grazie all'utilizzo di Flask e del tunneling.

Per creare il Web server utilizzeremo la libreria Flask installabile (su Windows) con il comando seguente:

py -m pip install Flask

Documentazione ufficiale libreria Flask.


Attività 8

Relazione attività 8: Controllo del motore tramite browser.

Come inviare dati da Web all’applicazione Flask, in modo da poter controllare il motore.


Attività 9

Installazione e importazione programmi su Raspberry.


Attività 10

Relazione attività 10: Inviare pacchetti tramite modulo radio RF24.

Come inviare i pacchetti realizzati nella fase “Pacchetto Livello 3 – seriale”, in modo che facciano uso del modulo radio nRF24L01+.

Per utilizzare il modulo radio nRF24L01+ serve importare la libreria RF24 su arduino.

Documentazione ufficiale libreria RF24. RF24 GitHub.


Attività 11

Relazione attività 11: Controllo motore e sensore da Raspberry.

Come visualizzare i dati sensore e controllare il motore tramite un server Flask che gira su Raspberry, che comunica con i due arduino con l'hardware tramite il modulo radio nRF24L01+.

Per il controllo dei piedini GPIO su Raspberry abbiamo dovuto installare la libreria pigpiod con il comando seguente:

sudo apt-get install pigpiod

Per interfacciarsi con il modulo radio RF24 da python bisogna importare la libreria nrf24 con il comando seguente:

python3 –m pip install nrf24  

Attività 12

Relazione attività 12: Utilizzare MQTT tra dispositivi IoT.

Come utilizzare il protocollo MQTT per comunicare tra dispositivi IoT, anche tramite app.

Per utilizzare mqtt da python bisogna importare la libreria paho-mqtt con il comando seguente:

python3 -m pip install paho-mqtt  

Attività 13

Relazione attività 13: Utilizzare MQTT con l'ESP8266.

Come utilizzare MQTT per lo scambio di messaggi fra dispositivi IoT connessi direttamente all'ESP8266 con funzionalità per la connessione WiFi.

Bisognerà aggiungere il gestore schede nell'IDE di Arduino per poter gestire l'ESP8266.

Tutorial per l'installazione.


Attività 14

TODO: Come controllare sensore e attuatore tramite alexa.


Attività 15

Relazione attività 15: Utilizzare BLE per il controllo dell'ambiente.

Come utilizzare ESP32 per realizzare dispositivi che utilizzano il protocollo Bluetooth Low Energy (BLE) per la comunicazione.

Per il controllo dell'ESP32 dall'IDE di Arduino bisognerà aggiungere il gestore schede come fatto precedentemente per l'ESP8266.