Sommario:
- Passaggio 1: guida all'installazione
- Passaggio 2: vetrina del controllo
- Passaggio 3: elenco delle parti/software utilizzati nel progetto
- Passaggio 4: elenco I/0
- Passaggio 5: schema elettrico
- Passaggio 6: il codice Arduino
- Passaggio 7: Raspberry Pi 3 B+
- Passaggio 8: Python
- Passaggio 9: MySQL
- Passaggio 10: nodo rosso
Video: UCL - Serra IIOT: 11 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
Questo progetto è un'estensione del nostro precedente progetto con la serra (https://www.instructables.com/id/EAL-EMBEDDED-GREE…).
In questo progetto abbiamo aggiunto un database, dove registriamo tutti i nostri dati e poi li visualizziamo con node-red per una panoramica più ampia.
Il contenuto che registriamo nel nostro database è umidità, temperatura e umidità del suolo, che viene mostrato in diversi diagrammi.
Oltre al dataloggin siamo anche in grado di controllare quale profilo è attivo nella Serra e controllarlo da remoto.
Quindi siamo anche in grado di controllare manualmente la pompa e il ventilatore.
Passaggio 1: guida all'installazione
Il primo passo è installare tutti i diversi componenti.
All'interno delle parentesi (), abbiamo elencato dove è collegato il componente. Quindi, ad esempio, Arduino è collegato a Raspberry Pi tramite un cavo USB.
Hardware utilizzato:
- Arduino (Raspberry Pi)
- Raspberry Pi 3 B+
- Igrometro da suolo (Arduino)
- Sensore DHT11 (Arduino)
- Pompa dell'acqua sommergibile HG-320 (relè)
- Relè 5V (Arduino)
- Un fan del computer (Relè)
- Alimentazione 230V (Pompa)
Software utilizzato:
- Raspbian (sistema operativo per Raspberry Pi)
- Arduino IDE
- Python (Raspberry Pi)- PySerial- MySQLclient
- Node-Red (Raspberry Pi)- Pythonshell- Summariser- MySQL- Dashboard
- Server MySQL (freemysqlhosting.net)
Per prima cosa dovrai collegare i componenti hardware, quindi segui questa guida per costruire la serra: Guida all'installazione.
Quindi dovrai installare il sistema operativo Raspbian sul tuo Raspberry Pi. Dopodiché dovrai installare Python e quindi installare le librerie Python.
Il prossimo passo è installare Node-Red sul Raspberry Pi, quindi accedere al gestore pallet e installare i moduli indicati in precedenza.
Quindi vai su questo sito Free MySQL Server e crea un server MySQL gratuito.
Quando tutto questo è fatto, sei pronto per trasferire lo script Python sul tuo Raspberry Pi, importare lo script Node-Red e caricare il codice per Arduino.
Passaggio 2: vetrina del controllo
Passaggio 3: elenco delle parti/software utilizzati nel progetto
Abbiamo utilizzato la seguente tecnologia per realizzare la serra
- Arduino
- Lampone Pi
- Nodo-rosso
- Pitone
- PHPMyAdmin
Passaggio 4: elenco I/0
Passaggio 5: schema elettrico
Passaggio 6: il codice Arduino
Il codice Arduino funziona stampando i dati, misurati dai sensori, sulla connessione seriale dove vengono letti dal Raspberry Pi e trasferiti al database.
L'Arduino ha anche alcuni ingressi digitali collegati al Raspberry Pi che l'Arduino legge e se uno dei tre diventa ALTO il profilo cambierà a causa di un'istruzione IF.
Inoltre, abbiamo aggiornato il codice per utilizzare Millis invece del ritardo che consente di leggere continuamente i pulsanti e il resto del codice invece di un intervallo dal vecchio ritardo.
Passaggio 7: Raspberry Pi 3 B+
Abbiamo usato un Raspberry Pi 3 B+ per connettere il nostro Arduino con Internet e un database MySQL. Questo ci ha permesso di memorizzare i dati dai nostri sensori e creare un'interfaccia visiva per l'utente finale. Per l'interfaccia utente abbiamo utilizzato Node-Red con la palette Dashboard.
Ma prima di poter mostrare i dati dei nostri sensori su Node-Red, avevamo bisogno di un modo per caricare i dati su un database MySQL, e per questo abbiamo creato uno script Python che potesse essere eseguito sul nostro Raspberry Pi.
Passaggio 8: Python
Lo script Python viene utilizzato per ricevere dati dalla comunicazione seriale proveniente da Arduino. Lo script invia quindi i dati a un database MySQL.
Abbiamo usato due librerie, pyserial e mysqlclient.
Quindi il primo passo sarebbe scaricare queste due librerie:
- PySerial
- MySQLclient
PySerial viene utilizzato per raccogliere dati da Arduino tramite comunicazione seriale.
dispositivo = '/dev/ttyUSB0'
arduino = serial. Serial(dispositivo, 9600)
La prima riga viene utilizzata per definire la nostra porta COM. Sul Raspberry Pi è /dev/ttyUSB0, che usiamo per Arduino. La seconda riga serve per aprire la porta seriale su Arduino. Definiamo semplicemente quale porta COM ea quale velocità è in esecuzione la connessione.
Il resto del codice viene eseguito in un ciclo while.
Successivamente utilizziamo più blocchi Try and Except. Innanzitutto il codice sta cercando di essere eseguito all'interno del blocco Try, se fallisce, esegue il blocco Except. Ma se il blocco Try funziona correttamente, non esegue il blocco Except, esegue solo il resto del codice.
Quindi all'interno dei blocchi Try abbiamo il codice che leggerà la comunicazione seriale e poi la invierà al nostro database MySQL.
hygrolist = arduino.readlines(1)
templist = arduino.readlines(2)humidlist = arduino.readlines(3)
Quindi il codice sopra è per leggere le righe nella comunicazione seriale. Il numero alla fine del codice definisce la riga che è stata letta nel seriale. Quindi queste linee vengono classificate in diverse variabili.
Quando vengono ricevuti i dati da Arduino, abbiamo utilizzato il modulo mysqlclient per inviare i dati al nostro server MySQL.
db = _mysql.connect(host="sql7.freemysqlhosting.net", utente="sql7256552", passwd="3ebtbP8FQ2", db="sql7256552")
Questa riga serve per la connessione al nostro database MySQL. Specifica il server, il nome utente, la password e a quale database deve connettersi all'interno del server. Qui dovresti specificare la connessione al tuo DB MySQL.
db.query("INSERTINTO `TempHumid`(`temp`, `humid`, `hygro`) VALUES (%s, %s, %s)" % (temp, umido, igro))
Quindi qui prendiamo la nostra connessione DB e facciamo una query SQL. La query dice che i valori devono essere inseriti all'interno della tabella “TempHumid” e poi nelle colonne “temp”, “humid” e “hygro”. L'ultima parte "(%s, %s, %s)" è la formattazione della stringa e viene utilizzata per fornire al database un formato che può leggere.
E tutta questa azione viene inserita in un ciclo while, in modo che continuiamo a ricevere i dati inviati al server MySQL.
Se vuoi vedere tutto il codice, scarica lo script python (TempHumid.py).
Passaggio 9: MySQL
Per il server MySQL, abbiamo utilizzato un servizio gratuito su www.freemysqlhosting.net. Avremmo potuto creare un server localmente sul Raspberry Pi, ma siamo andati con il servizio gratuito per renderlo completamente connesso al cloud/internet.
Per accedere al tuo MySQL, devi andare su phpmyadmin.co e accedere con le credenziali dal tuo account freemysqlhosting.
Quando sei dentro, devi creare una tabella chiamata "TempHumid", all'interno di questa tabella devi creare 4 colonne chiamate "ID", "temp", "humid" e "hygro". Nella prima colonna (ID) devi spuntare la casella A_I (Auto Increment). In questo modo la colonna ID assegna un ID a ogni set di dati. Tutte le seguenti colonne devono essere impostate come INT (intero) e impostare il valore standard su NULL.
Passaggio 10: nodo rosso
Nel nostro progetto abbiamo utilizzato Node-Red per creare un'interfaccia grafica. Node-Red è in esecuzione sul Raspberry Pi e sta raccogliendo dati dal nostro database MySQL e sta mostrando questi dati con indicatori a forma di ciambella e grafici, in modo che l'utente finale possa monitorare i dati. La cosa intelligente di Node-Red è che è visualizzabile su qualsiasi dispositivo, il che significa che il sito verrà ridimensionato per il determinato dispositivo che sta visualizzando il contenuto.
Per installare la nostra programmazione Node-Red, guarda il passaggio 1 e scarica il documento chiamato "Node-Red.docx". Quindi copia e incolla il testo in Node-Red tramite la funzione di importazione nell'angolo in alto a destra.
Dopodiché modifica le impostazioni del DB per il tuo DB MySQL.
Consigliato:
UCL - IIoT - Clima interno 4.0: 8 passaggi
UCL - IIoT - Clima interno 4.0: dopo aver letto e lavorato con questa istruzione, avrai il tuo clima interno automatico, che puoi osservare online con l'aiuto di Node-red. Nel nostro caso abbiamo sviluppato questa idea e l'abbiamo presentata in una casa di stampa 3D
UCL-IIoT-Drivhus: 5 passaggi
UCL-IIoT-Drivhus: Lo scopo di questo progetto era costruire una Garden House usando Arduino. Pertanto i 3 studenti del gruppo hanno deciso di realizzare una serra automatica, abbiamo deciso di effettuare il datalogging sulle informazioni fornite dalla serra, tramite Wamp-server, node-re
UCL-IIOT - Sistema di allarme con database e nodo rosso: 7 passaggi
UCL-IIOT - Sistema di allarme con database e Node-red: lo scopo di questa build è insegnare come collegare Arduino con Node-red e un database, in modo da poter registrare i dati e anche raccoglierli per un uso successivo. Per questa build utilizzo un semplice sistema di allarme arduino che emette 5 numeri di dati, ciascuno separato da un
UCL-IIoT-Strongbox con RFID e schermo LCD (Nodered, MySQL): 5 passaggi
UCL-IIoT-Strongbox con RFID e schermo LCD (Nodered,MySQL): progetto Arduino con scanner RFID e LCD.Introduzione Per concludere il nostro corso con i microcontrollori, in particolare l'Arduino Mega che abbiamo utilizzato. Ci è stato affidato il compito di realizzare un progetto che comprenda il nostro Arduino Mega, oltre a
UCL-IIOT - Registrazione dati su Raspberry Pi: 6 passaggi
UCL-IIOT - Data Loggings su Raspberry Pi: questo istruibile è stato creato da Obayda Haj Hamoud e Sidse Henriksen per un progetto scolastico. L'idea principale è raccogliere dati dal sensore acceso, registrare i dati in un database in modalità wireless su un raspberry pi e monitorare quei dati attraverso un dashboard