Sommario:

Fai da te - Irrigazione automatizzata del giardino - (Arduino / IOT): 9 passaggi (con immagini)
Fai da te - Irrigazione automatizzata del giardino - (Arduino / IOT): 9 passaggi (con immagini)

Video: Fai da te - Irrigazione automatizzata del giardino - (Arduino / IOT): 9 passaggi (con immagini)

Video: Fai da te - Irrigazione automatizzata del giardino - (Arduino / IOT): 9 passaggi (con immagini)
Video: Irrigarore automatico con Arduino 2024, Dicembre
Anonim
Fai da te - Irrigazione automatizzata del giardino - (Arduino / IOT)
Fai da te - Irrigazione automatizzata del giardino - (Arduino / IOT)
Fai da te - Irrigazione automatizzata del giardino - (Arduino / IOT)
Fai da te - Irrigazione automatizzata del giardino - (Arduino / IOT)
Fai da te - Irrigazione automatizzata del giardino - (Arduino / IOT)
Fai da te - Irrigazione automatizzata del giardino - (Arduino / IOT)

Questo progetto ti mostrerà come costruire un programmatore di irrigazione per un giardino di casa. In grado di misurare le letture dell'umidità del suolo e di attivare l'irrigazione da un rubinetto del giardino se il terreno diventa troppo secco. Il controller include anche un sensore di temperatura e umidità. Il controller non attiverà il rubinetto da giardino se la temperatura è troppo bassa. Le letture dei sensori e le statistiche sull'utilizzo dell'acqua/tempi di funzionamento sono registrate su ThingsBoard IOT per la visualizzazione e l'analisi. Avvisi ed e-mail vengono attivati se il programmatore di irrigazione smette di trasmettere dati, il terreno diventa troppo secco o troppo saturo.

Prerequisiti

  • Conoscenza di Arduino, inclusa almeno la codifica di base per Arduino e la saldatura.
  • 1x rubinetto da giardino pressurizzato

Distinta materiali

  • Tubo in polietilene per irrigazione da giardino, getti, gocciolatori ecc.
  • Timer elettronico a due quadranti (es: Timer digitale elettronico Aqua Systems)
  • Riduttore pressione rubinetto 300kpa
  • Arduino Uno
  • Lora Arduino Shield
  • Lora Gateway (non necessario se si dispone di un gateway Things Network locale nel raggio d'azione)
  • DHT11 Sensore di umidità della temperatura
  • Relè 5v
  • Cavo telefonico
  • Fascette
  • Tubi corrugati per autoveicoli
  • Strisce di connettori per terminali automobilistici
  • 2x chiodi zincati
  • 1x resistenza
  • Silicio / Caulk
  • cemento PVC
  • Primer per PVC
  • Tubo in PVC larghezza 32 mm x lunghezza 60 mm
  • Tubo in PVC larghezza 90 mm x lunghezza 30 cm
  • 3 tappi terminali in PVC da 90 mm
  • 1x tappo a vite in PVC da 90 mm
  • 1x raccordo filettato in PVC da 90 mm
  • 1x cappucci terminali in PVC da 32 mm
  • 1x fonte di alimentazione da 3,2 V (timer a rubinetto) [batterie, adattatore multivolt CA]
  • 1x fonte di alimentazione 6-12V (arduino) [batterie, USB, adattatore da USB a CA]
  • nastro sigillante per filettature
  • nastro elettrico

Passaggio 1: installare l'irrigazione del giardino

Installare l'irrigazione del giardino
Installare l'irrigazione del giardino
Installare l'irrigazione del giardino
Installare l'irrigazione del giardino

Disposizione tubo in polietilene, fit jet, linee gocciolanti e gocciolatori. Il programmatore di irrigazione funzionerà con qualsiasi impianto di irrigazione. Al centro è misurare le letture dell'umidità del suolo e attivare il timer del rubinetto se e quando il terreno è troppo secco. Il controller può essere calibrato per impostare il punto basso per la saturazione, per quanto tempo deve essere attivato il timer e con quale frequenza il controller deve controllare la saturazione.

Queste impostazioni possono essere modificate su arduino e memorizzate nella memoria EPROM. Le impostazioni possono essere aggiornate anche dall'integrazione IOT. Questo progetto eseguirà il controller ogni quattro ore e aprirà il rubinetto per 3 minuti se il terreno è troppo secco. Può funzionare alcune volte di seguito se secco/caldo o una o due volte al giorno.

Passaggio 2: adatta il timer del tocco

Fit Tap Timer
Fit Tap Timer

Montare il timer del rubinetto e sperimentare con le manopole regolabili per calcolare una frequenza e un tempo di funzionamento approssimativi che funzionano meglio per l'impianto di irrigazione. Rimuoveremo il timer e lo modificheremo per funzionare con un Arduino.

Passaggio 3: build Arduino

Arduino Build
Arduino Build
Arduino Build
Arduino Build
Arduino Build
Arduino Build
Arduino Build
Arduino Build

Utilizzare lo schema elettrico come guida per la compilazione. Nelle foto sono stati utilizzati cavi telefonici e morsettiere a vite per i punti di giunzione. Sono necessarie alcune saldature.

Tocca Modifica timer

Smontare con cautela il timer del rubinetto. Faremo il cablaggio fisso dei due quadranti regolabili in modo che possano essere controllati dall'arduino invece che dai quadranti manuali. Il selettore di frequenza sinistro sarà cablato alla posizione di ripristino in modo che il selettore di destra possa essere commutato tra la posizione on/off. Il quadrante destro avrà un filo proveniente dal contatto centrale destro e il contatto esterno destro come mostrato. Per impostazione predefinita, il timer sarà in posizione off. Se i due fili entrano in contatto il timer si accende. Con i due fili collegati a un relè 5V, un arduino può quindi chiudere/aprire il contatto tra i due fili. Con un filo nel terminale del relè comune e l'altro nel terminale normalmente chiuso ci assicureremo che il timer si spenga quando si spegne l'arduino. L'impostazione del pin del relè su HIGH attiverà il timer; impostandolo su BASSO si spegne il timer.

Sonda del suolo

Per questo progetto i due chiodi sono saldati a filo collegato a morsetti a vite. Il terminale di un chiodo va dritto a terra. L'altro si collega a un ingresso analogico nell'arduino e un resistore. Il resistore si collega al segnale arduinos 5v. Mostrato nel diagramma di strizzatura.

Sensore di temperatura/umidità

Il sensore di temperatura / umidità DHT11 è collegato a 5V, terra e un pin digitale di arduino su arduino.

Scudo di Lora

Questo progetto ha utilizzato anche un Dragino Lora Shield (non mostrato nello schema elettrico).

Base in PVC

La base in PVC per l'arduino utilizzato in questo progetto è stata progettata in modo che il sensore di temperatura/umidità potesse essere esposto mantenendo tutti gli altri componenti fissati all'interno della custodia impermeabile in PVC. Viene praticato/tagliato un piccolo foro per il sensore e il silicone viene utilizzato per tenerlo in posizione impedendo all'umidità di raggiungere l'arduino. Mostrato nel diagramma.

Passaggio 4: programmazione Arduino

Programmazione Arduino
Programmazione Arduino

Collegare i componenti insieme tramite breadboard o morsettiere per la programmazione e il test

Configurazione EPROM

Per prima cosa dobbiamo scrivere le variabili di configurazione nella memoria EPROM. Esegui il seguente codice sul tuo arduino:

Codice disponibile su Github

Qui DRY_VALUE è impostato a 960. 1024 significa che il terreno è completamente asciutto, 0 significa saturazione completa, 960 era un buon livello di saturazione per il resistore, la lunghezza del cavo e i chiodi utilizzati. Questo può variare a seconda della propria configurazione.

VALVE_OPEN è impostato a 180000 millisecondi (3 minuti). Quando/se il timer del rubinetto è acceso, verrà lasciato aperto per 3 minuti.

RUN_INTERVAL è impostato a 14400000 millisecondi (4 ore). Ciò significa che il controller controllerà l'umidità del suolo ogni quattro ore e attiverà il timer del rubinetto per 3 minuti se la saturazione è bassa (superiore a 960).

Il codice sopra può essere modificato e questi valori modificati in qualsiasi momento.

Codice del programma

Codice disponibile su Github

Dipendenze:

  • Azione a tempo
  • Testa radiofonica

Questo esempio ha utilizzato lo scudo Dragino Lora e in particolare l'esempio simultaneo Lora con lo scudo che si collega direttamente al Gateway Dragino Lora.

Questo può essere adattato per utilizzare la Things Network rimuovendo il codice nella sezione "BEGIN: lora vars" e modificando il programma per includere il seguente esempio Dragino o adattato per funzionare con altre radio/scudi wifi ecc.

Il codice fornito presuppone che DHT11_PIN sia il pin digitale 4, RELAY_PIN sia il pin digitale 3 e che il pin analogico dell'umidità del suolo sia l'ingresso analogico 0.

Una variabile di debug può essere impostata su true in modo che i messaggi di debug seriali possano essere registrati a baudrate 9600.

Passaggio 5: costruzione del contenitore

Costruzione dell'involucro
Costruzione dell'involucro

Taglia il tubo in PVC per adattarlo al timer del rubinetto e alla base Arduino. Praticare i fori per il raccordo del rubinetto del timer del rubinetto e il raccordo del tubo. Praticare dei fori nel tubo abbastanza larghi per il condotto automobilistico, inserire le lunghezze di 10 cm del condotto nei fori e strappare i fili dall'arduino e toccare il timer. Questo dovrebbe includere:

Da Arduino

  • Cavi di alimentazione e/o un cavo USB dalla porta USB di Arduino.
  • Cavi per umidità del suolo (VCC, GND, A0)
  • Due fili dai terminali a vite NC e comune del relè

Dal timer del rubinetto

  • Cavi di alimentazione
  • Due fili dai contatti a quadrante di destra

Passaggio 6: test del controller prima dell'incollaggio

Testare il controller prima dell'incollaggio
Testare il controller prima dell'incollaggio
Testare il controller prima dell'incollaggio
Testare il controller prima dell'incollaggio

Assicurati che tutto funzioni ancora prima di sigillare tutto.

Le foto sopra mostrano una configurazione di esempio in un esky in cui la sonda per l'umidità del suolo è stata posizionata in una pentola e il timer del rubinetto è stato dotato di acqua proveniente da una bottiglia di bibita.

Un gocciolatore era collegato al timer del rubinetto.

Questo era un buon modo per verificare che l'installazione non sovrastasse o sottraesse l'acqua alla pianta.

Questo esempio può essere eseguito per tutto il tempo necessario per calibrare il controller.

Passaggio 7: colla/involucri impermeabili

Colla/involucri impermeabili
Colla/involucri impermeabili

Utilizzare PVC Primer e PVC Cement per fissare i cappucci terminali e il giunto.

Usa mastice/silicio per riempire eventuali spazi intorno al condotto automatico e ai raccordi del timer del rubinetto.

Qui viene utilizzato un tappo a vite sull'involucro di arduino per l'accessibilità.

Passaggio 8: installazione

Installare
Installare
Installare
Installare
Installare
Installare

Installa in una giornata limpida. I componenti e i cavi dovranno rimanere asciutti prima di essere sigillati.

Posiziona il controller in un punto centrato tra il punto in cui si trova il rubinetto da giardino e il punto in cui verrà posizionata la sonda del suolo.

Montare il timer del rubinetto e assicurarsi che non sia alimentato fino al termine dell'installazione.

Montare la sonda per terreno.

Collegare i terminali a striscia a ciascun componente, quindi posare il cavo telefonico dai terminali a vite di ciascun componente assicurandosi che il cavo sia coperto da un condotto automatico. Collegando tutto insieme

Sigillare tutti i terminali e qualsiasi altra parte esposta con nastro sigillante per filettature e poi nastro isolante.

Sigillare eventuali aree libere/esposte del condotto diviso con nastro sigillante per filettature e poi nastro isolante.

Collega il timer a una fonte di alimentazione da 3,2 V. O un pacco batteria o un adattatore da 3,2 V CC - CA collegato a una presa di corrente.

Collega l'Arduino a una fonte di alimentazione CC da 6-12 V. O un pacco batteria o un adattatore USB / DC-AC in esecuzione su una presa di corrente.

Accendi e prova!

Passaggio 9: integrazione di ThingsBoard - Monitoraggio e reporting

Integrazione ThingsBoard - Monitoraggio e Reporting
Integrazione ThingsBoard - Monitoraggio e Reporting

Questo esempio ha utilizzato uno scudo Dragino Lora collegato a un Gateway Dragino Lora. Sia che si utilizzi questa configurazione, un'altra configurazione Lora o qualsiasi altra connettività IOT, i dati raccolti dal controller di irrigazione possono essere inoltrati a una piattaforma IOT come Thingsboard. Per impostazione predefinita il programma trasmette la seguente stringa di dati in cui ogni byte di carattere è codificato in esadecimale:

TXXXHXXXSXXXXRX

Dove T è seguito dalla temperatura, H è seguito dall'umidità, S è seguito dal livello di saturazione e R è seguito da una sola cifra relativa all'azione eseguita nell'ultimo intervallo di esecuzione. Questo può essere 0-5 dove ogni cifra significa:

0: Il programma è in fase di inizializzazione1: Guasto del sensore di temperatura2: La temperatura era troppo bassa per l'esecuzione3: L'umidità del suolo è troppo secca, quindi è stato attivato il timer del rubinetto4: L'umidità del suolo è buona quindi il timer del rubinetto non è stato attivato5: Il controller di irrigazione è stato disattivato

Esistono diversi modi per installare una copia di Thingsboard sulla propria attrezzatura oppure è possibile creare un account gratuito sulla nostra installazione di ThingsBoard qui.

Configura il tuo dispositivo in Thingsboard

Segui queste istruzioni per aggiungere un nuovo dispositivo in Thingsboard chiamandolo "Irrigation Controller".

Invia i dati di telemetria dal dispositivo

Segui queste istruzioni per impostare un metodo per inviare i dati di telemetria dal dispositivo a Thingboard tramite MQTT, HTTP o CoAp.

Sul nostro server stiamo inviando il seguente JSON a https://thingsboard.meansofproduction.tech/api/v1/… ogni quattro ore quando il dispositivo è in funzione (con dati live):

Inoltre, stiamo inviando periodicamente i seguenti attributi a https://thingsboard.meansofproduction.tech/api/v1/… con i dati sull'ultima volta che il nodo è stato visto:

Viene utilizzato per avvisi che vengono attivati se il dispositivo smette di trasmettere dati.

Crea una dashboard

Crea una dashboard come descritto qui. I nostri widget includono:

Un semplice widget di scheda creato dal campo di telemetria lastRunResult. Un indicatore digitale verticale per il campo di telemetria della temperaturaUna tabella delle serie temporali creata dal campo di telemetria lastRunResult che mostra i dati degli ultimi giorni. Una barra orizzontale che mostra il campo di telemetria della saturazione. Questo utilizza una funzione di post-elaborazione dei dati:

restituire il valore 1024;

E imposta un valore minimo e massimo 0-100. In questo modo il livello di saturazione può essere espresso in percentuale. Un indicatore per mostrare il valore dell'umidità. Un grafico a barre della serie temporale che include la temperatura, l'umidità e il risultato della corsa, raggruppati in periodi di 5 ore per l'ultima settimana, aggregati per mostrare i valori massimi. Questo ci dà una barra per un evento di quattro ore. Una funzione di post-elaborazione dei dati viene utilizzata per esprimere il risultato della corsa come 0 o 120 a seconda che sia stata eseguita o meno l'acqua. Ciò fornisce un facile feedback visivo per vedere quanto spesso scorre l'acqua in una settimana. Una scheda HTML statica che mostra un'immagine del giardino.

Avvisi e-mail

Abbiamo utilizzato le regole per impostare gli avvisi e-mail per il programmatore di irrigazione. Tutti utilizzano filtri per i messaggi e un'azione plug-in di azione di invio posta.

Per inviare un avviso e-mail se il programmatore di irrigazione non riesce a inviare i dati, abbiamo utilizzato "Filtro attributi dispositivo" con il seguente filtro:

typeof cs.secondsSinceLastSeen !== 'undefined' && cs.secondsSinceLastSeen > 21600

Per inviare una mail se il terreno diventa troppo secco utilizzare il seguente filtro Telemetria

tipo di saturazione != "non definito" && saturazione > 1010

Per inviare un'e-mail in base a se il terreno diventa troppo umido, utilizzare il seguente filtro di telemetria

tipo di saturazione != "non definito" && saturazione

Consigliato: