Sommario:

Automazione della serra: 11 passaggi
Automazione della serra: 11 passaggi

Video: Automazione della serra: 11 passaggi

Video: Automazione della serra: 11 passaggi
Video: Lezione 1 - Introduzione ai sistemi di automazione industriale 2024, Dicembre
Anonim
Automazione della serra
Automazione della serra

L'automazione della serra è un progetto in cui tre parametri di una serra, ovvero umidità del suolo, temperatura e umidità, sono monitorati dall'utente in remoto semplicemente utilizzando un browser web.

Passaggio 1: componenti necessari

Componenti richiesti
Componenti richiesti
Componenti richiesti
Componenti richiesti
Componenti richiesti
Componenti richiesti

Alcuni componenti essenziali richiesti sono elencati di seguito

1. Raspberry PI Modello B

2. Scheda di sviluppo NodeMCU

3. Modulo Wi-Fi ESP8266

4. Sensore di umidità

5. Sensore di temperatura e umidità DHT11

6. Relè a canale singolo 5V

7. Pompa dell'acqua sommergibile da 5 V

8. Tagliere di pane

9. Modulo di alimentazione della scheda pane

Passaggio 2: lingua e protocollo

Lingua e protocollo
Lingua e protocollo
Lingua e protocollo
Lingua e protocollo
Lingua e protocollo
Lingua e protocollo
  • Il linguaggio C è utilizzato per i microcontrollori.
  • Messaggi MQTT: MQTT sta per MQ Telemetry Transport. È un protocollo di messaggistica di pubblicazione/sottoscrizione, estremamente semplice e leggero, progettato per dispositivi vincolati e reti a bassa larghezza di banda, alta latenza o inaffidabili. I principi di progettazione consistono nel ridurre al minimo la larghezza di banda della rete e i requisiti delle risorse del dispositivo, cercando anche di garantire l'affidabilità e un certo grado di garanzia di consegna. Questi principi si rivelano anche per rendere il protocollo ideale per l'emergente mondo "machine-to-machine" (M2M) o "Internet of Things" dei dispositivi connessi e per le applicazioni mobili in cui la larghezza di banda e la potenza della batteria sono un vantaggio.
  • Il programma Python viene utilizzato per automatizzare il flusso d'acqua e la connettività del database.

Passaggio 3: Eclipse Mosquitto MQTT Broker

Eclipse Mosquitto MQTT Broker
Eclipse Mosquitto MQTT Broker

Qui ho usato il Mosquitto MQTT Broker per la facile comunicazione di messaggi tra i nodi.

Eclipse Mosquitto è un broker di messaggi open source (con licenza EPL/EDL) che implementa il protocollo MQTT versioni 5.0, 3.1.1 e 3.1. Mosquitto è leggero ed è adatto per l'uso su tutti i dispositivi, dai computer a scheda singola a bassa potenza ai server completi.

Il protocollo MQTT fornisce un metodo leggero per eseguire la messaggistica utilizzando un modello di pubblicazione/sottoscrizione. Ciò lo rende adatto per la messaggistica di Internet of Things, ad esempio con sensori a bassa potenza o dispositivi mobili come telefoni, computer incorporati o micro controller.

Il progetto Mosquitto fornisce anche una libreria C per l'implementazione di client MQTT e i popolari client MQTT della riga di comando mosquitto_pub e mosquitto_sub.

Passaggio 4: flusso di dati nell'intero progetto

Nell'immagine sopra i nodi sono

  1. NodoMCU
  2. Lampone PI
  3. ESP8266

NodeMCU è la parte sensibile della Green House e l'ESP8266 è la parte di attuazione che fornisce l'acqua quando il terreno ha bisogno di acqua secondo i sensori.

Raspberry PI contiene il Mosquitto Broker e un client Python che sottoscrive i messaggi provenienti dal Broker MQTT e memorizza i dati in un server SQL.

Passaggio 5: collegamento dei sensori con il NodeMCU

Collegamento dei sensori con il NodeMCU
Collegamento dei sensori con il NodeMCU

Il sensore di temperatura e umidità DHT11 e il sensore di umidità dell'acqua sono in grado di funzionare a 3,3 volt.

NodeMCU non può fornire più di 3,3 volt. Quindi i sensori possono essere collegati direttamente alla scheda del microcontrollore NodeMCU.

Passaggio 6: collegamento della pompa dell'acqua sommergibile con ESP8266

Collegamento della pompa dell'acqua sommergibile con ESP8266
Collegamento della pompa dell'acqua sommergibile con ESP8266
Collegamento della pompa dell'acqua sommergibile con ESP8266
Collegamento della pompa dell'acqua sommergibile con ESP8266

Una pompa dell'acqua sommergibile viene utilizzata per fornire l'acqua quando necessario.

La pompa dell'acqua necessita di alimentazione a 5 volt per il suo funzionamento.

È necessario un relè a canale singolo per collegare il motore. Quando viene attivato il pin GPIO2 dell'ESP8266, il relè si accende e fornisce automaticamente l'acqua utilizzando la pompa dell'acqua sommergibile.

Qui viene fornita l'alimentazione esterna alla scheda ESP8266, al relè e alla pompa dell'acqua sommergibile.

La mia connessione hardware completa è nell'immagine sopra.

Passaggio 7: installazione di Mosquitto Broker e esecuzione del programma Python in Raspberry Pi

Di seguito sono riportati i passaggi per l'installazione del broker Mosquitto in Raspberry PI

Apri il terminale e digita i seguenti comandi

sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa

sudo apt-get update

sudo apt-get install mosquitto

sudo apt-get install mosquitto-clients

Dovrebbe avviare automaticamente la zanzara.

Per interrompere e avviare il servizio che dovevo utilizzare

sudo service stop mosquitto

sudo service start mosquitto

La maggior parte dei siti che ho scoperto dove utilizzare il formato.

sudo /etc/init.d/mosquitto stop

Passaggio 8: come funziona MQTT?

Come funziona MQTT?
Come funziona MQTT?

MQTT è uno dei protocolli più comunemente utilizzati nei progetti IoT. Sta per Message Queuing Telemetry Transport.

Inoltre, è progettato come un protocollo di messaggistica leggero che utilizza operazioni di pubblicazione/sottoscrizione per scambiare dati tra client e server. Inoltre, le sue dimensioni ridotte, il basso consumo energetico, i pacchetti di dati ridotti al minimo e la facilità di implementazione rendono il protocollo ideale per il mondo "machine-to-machine" o "Internet of Things".

Come qualsiasi altro protocollo Internet, MQTT si basa su client e server. Allo stesso modo, il server è il tipo che è responsabile della gestione delle richieste del client di ricevere o inviare dati tra loro. Il server MQTT è chiamato broker e i client sono semplicemente i dispositivi collegati. Quindi:

* Quando un dispositivo (un client) vuole inviare dati al broker, chiamiamo questa operazione "pubblicazione".

* Quando un dispositivo (un client) vuole ricevere dati dal broker, chiamiamo questa operazione “subscribe”.

Passaggio 9: programmazione di NodeMCU ed ESP8266

Di seguito è riportato il codice sorgente per la scheda Microcontrollore NodeMCU e ESP8266

Passaggio 10: progettazione di una pagina Web e connessione al database SQL

La pagina Web è progettata utilizzando il linguaggio HTML, CSS e PHP.

PHP viene utilizzato per estrarre le letture del sensore dal database e mostrarle nella pagina HTML.

Un programma Python viene utilizzato come cuore di questo progetto.

I lavori eseguiti dal programma Python sono i seguenti.

  1. Sottoscrive un argomento in cui il sensore invia le letture del sensore.
  2. Pubblica il comando di attivazione/disattivazione della pompa dell'acqua sul broker MQTT.
  3. Memorizza la lettura del sensore in un database SQL.

Qui nel mio caso il programma Python e il database SQL sono presenti in un laptop. La pagina Web in esecuzione tramite un host locale.

Di seguito è riportato il codice sorgente del mio programma Python.

Passaggio 11: completare il lavoro

Funzionante completo
Funzionante completo

Di seguito sono riportati i passaggi in cui si svolge il processo.

  1. NodeMCU funziona come parte di rilevamento e legge la temperatura, l'umidità e il livello di umidità del suolo.
  2. Invia le letture al broker MQTT con un argomento "Topic 1"
  3. In un laptop il programma Python è in esecuzione e si iscrive a un argomento "Topic 1" con il broker MQTT.
  4. Quando il NodeMCU invia le letture, Mosquitto MQTT Broker invia immediatamente i dati al programma Python.
  5. Il programma Python calcola quindi se c'è bisogno di acqua nella Green House. Quindi memorizza le letture nel database SQL.
  6. Se l'acqua è necessaria nella Green House, il programma Python pubblica un messaggio di attivazione/disattivazione della pompa dell'acqua al broker Mosquitto MQTT con un argomento "Argomento 2"
  7. ESP8266 funziona come un attuatore. Sottoscrive l'argomento "Argomento 2" in quale argomento il programma Python sta pubblicando il messaggio. Quando il programma Python pubblica un messaggio, il messaggio viene immediatamente trasferito all'ESP8266. Secondo il messaggio on/off, ha acceso/spento la pompa dell'acqua sommergibile.
  8. Ultima fase per visualizzare le letture live nella pagina web. La pagina web recupera i dati dal database SQL in cui il programma Python memorizza direttamente i dati e visualizza le letture nella pagina.

Consigliato: