Sommario:

IoT APIS V2 - Sistema di irrigazione automatizzato autonomo abilitato per IoT: 17 passaggi (con immagini)
IoT APIS V2 - Sistema di irrigazione automatizzato autonomo abilitato per IoT: 17 passaggi (con immagini)

Video: IoT APIS V2 - Sistema di irrigazione automatizzato autonomo abilitato per IoT: 17 passaggi (con immagini)

Video: IoT APIS V2 - Sistema di irrigazione automatizzato autonomo abilitato per IoT: 17 passaggi (con immagini)
Video: I sensori in campo per l’irrigazione come supporto ai modelli previsionali 2024, Luglio
Anonim
IoT APIS V2 - Sistema di irrigazione automatizzato per impianti autonomo abilitato per IoT
IoT APIS V2 - Sistema di irrigazione automatizzato per impianti autonomo abilitato per IoT
IoT APIS V2 - Sistema di irrigazione automatizzato per impianti autonomo abilitato per IoT
IoT APIS V2 - Sistema di irrigazione automatizzato per impianti autonomo abilitato per IoT

Questo progetto è un'evoluzione della mia precedente istruzione: APIS - Automated Plant Irrigation System

Uso APIS da quasi un anno e volevo migliorare il design precedente:

  1. Possibilità di monitorare l'impianto da remoto. Ecco come questo progetto è diventato abilitato per l'IoT.
  2. Sonda di umidità del suolo di facile sostituzione. Sono passato attraverso tre diversi modelli della sonda di umidità e, indipendentemente dal materiale che ho usato, prima o poi si è erosa. Quindi il nuovo design doveva durare il più a lungo possibile ed essere sostituito rapidamente e facilmente.
  3. Livello dell'acqua nel secchio. Volevo essere in grado di dire quanta acqua è ancora disponibile nel secchio e smettere di annaffiare quando il secchio è vuoto.
  4. Aspetto migliore. Una scatola grigia del progetto era un buon inizio, ma volevo creare qualcosa che avesse un aspetto un po' migliore. Sarai il giudice se sono stato in grado di raggiungere questo obiettivo…
  5. Autonomia. Volevo che il nuovo sistema fosse autonomo in termini di potenza e/o disponibilità di internet.

Il progetto risultante non è meno configurabile del suo predecessore e ha funzionalità aggiuntive utili.

Volevo anche utilizzare la mia stampante 3D appena acquistata, quindi alcune parti dovranno essere stampate.

Passaggio 1: hardware

Hardware
Hardware
Hardware
Hardware

Avrai bisogno dei seguenti componenti per creare API IoT v2:

  1. NodeMcu Lua ESP8266 Scheda di sviluppo ESP-12E WIFI - su banggood.com
  2. SODIAL(R) Modulo di misurazione della distanza del sensore a ultrasuoni a 3 pin, doppio trasduttore, tre pin a bordo - su amazon.com
  3. DC 3V-6V 5V Piccola pompa sommergibile per acquari Pompa per acquario - su ebay.com
  4. LED a tre colori - su amazon.com
  5. Vero board - su amazon.com
  6. Transistor PN2222 - su amazon.com
  7. Viti, bulloni e dadi in plastica
  8. Attrezzature e forniture per saldatura
  9. Fili, resistori, connettori e altri componenti elettronici vari
  10. Barattolo vuoto Tropicana GU 2.78 QT
  11. 2 chiodi zincati

Passaggio 2: progettazione generale

Design generale
Design generale
Design generale
Design generale

Il progetto complessivo è costituito dai seguenti componenti: 1. Sonda di umidità del suolo e recinzione per l'irrigazione delle piante (combinata - stampata in 3D)2. Tubi e cablaggi3. Sensore di perdite d'acqua nel vassoio (stampa 3D)4. Modulo di controllo montato sulla parte superiore del barattolo della GU (posizionato e racchiuso nella custodia stampata in 3D)5. Pompa sommersa dell'acqua6. NodeMCU sketch7. Configurazione IoT8. Alimentazione: USB tramite presa di corrente -O- pannello solare (modalità autonoma)Discutiamo ogni componente individualmente

Passaggio 3: pompa dell'acqua sommersa

Pompa dell'acqua sommersa
Pompa dell'acqua sommersa
Pompa dell'acqua sommersa
Pompa dell'acqua sommersa

La pompa dell'acqua sommersa si trova sotto l'impugnatura del barattolo della GU (per evitare interferenze con la misurazione del livello dell'acqua). La pompa è posizionata in modo tale da "librarsi" a circa 2-3 mm sopra il fondo del vaso per consentire il libero flusso d'acqua all'aspirazione.

Poiché la pompa dovrebbe essere completamente sommersa per il normale funzionamento, il livello minimo dell'acqua nel vaso dovrebbe essere di circa 3 cm (circa 1 pollice).

Passaggio 4: modulo di controllo montato sulla parte superiore di OJ Jar

Modulo di controllo montato sulla parte superiore del vaso OJ
Modulo di controllo montato sulla parte superiore del vaso OJ
Modulo di controllo montato sulla parte superiore del vaso OJ
Modulo di controllo montato sulla parte superiore del vaso OJ
Modulo di controllo montato sulla parte superiore del vaso OJ
Modulo di controllo montato sulla parte superiore del vaso OJ

Ho scelto il barattolo Tropicana OJ standard grande come contenitore per l'acqua. Quelli sono ampiamente disponibili e standard.

Il modulo di controllo viene posizionato sopra il barattolo dopo aver rimosso il rubinetto originale.

La piattaforma su cui si trova il modulo di controllo è stampata in 3D. Il file STL è fornito nelle sezioni file e schizzi di questa istruzione.

La pompa, i tubi e il cablaggio vengono instradati attraverso la maniglia del vaso Tropicana per liberare spazio per la misurazione del livello dell'acqua.

Il livello dell'acqua viene misurato dal sensore di distanza ad ultrasuoni integrato con la piattaforma del modulo di controllo. Il livello dell'acqua è determinato in quanto la differenza è la misurazione della distanza di un barattolo vuoto e un barattolo riempito d'acqua fino a un certo livello.

Il modulo di controllo e il sensore US sono coperti da una "cupola" stampata in 3D. Il file STL della cupola è fornito nella sezione file e schizzi di questo manuale.

Passaggio 5: modulo di controllo - Schemi

Modulo di controllo - Schemi
Modulo di controllo - Schemi
Modulo di controllo - Schemi
Modulo di controllo - Schemi

Gli schemi per il modulo di controllo (incluso l'elenco dei componenti) e i file di progettazione della breadboard sono forniti nella sezione file e schizzi di questo manuale.

NOTA: lavorare con NodeMCU si è rivelato un compito impegnativo in termini di pin GPIO disponibili. Quasi tutti i GPIO svolgono una serie di funzioni, il che li rende non disponibili per l'uso o impossibili da utilizzare nella modalità di sospensione profonda (a causa delle funzioni speciali che svolgono durante il processo di avvio). Alla fine sono riuscito a trovare un equilibrio tra l'uso dei GPIO e le mie esigenze, ma ci sono volute alcune frustranti iterazioni.

Ad esempio, un certo numero di GPIO rimane "caldo" durante il sonno profondo. Il collegamento del LED a quelli ha vanificato lo scopo della riduzione del consumo energetico durante il sonno profondo.

Passaggio 6: sensore di perdite d'acqua del vassoio

Sensore di perdite d'acqua del vassoio
Sensore di perdite d'acqua del vassoio
Sensore di perdite d'acqua del vassoio
Sensore di perdite d'acqua del vassoio
Sensore di perdite d'acqua del vassoio
Sensore di perdite d'acqua del vassoio

Se il tuo vaso ha un foro di troppo pieno sul fondo, c'è il rischio che l'acqua trabocchi dal vassoio inferiore e si rovesci sul pavimento (ripiano o qualunque cosa sia la tua pianta).

Ho notato che la misurazione dell'umidità del suolo è fortemente influenzata dalla posizione della sonda, dalla densità del suolo, dalla distanza dall'uscita dell'irrigazione, ecc. In altre parole, passare solo all'umidità del suolo potrebbe essere dannoso per la tua casa se l'acqua trabocca dal vassoio inferiore e si rovescia.

Il sensore di troppo pieno è un distanziatore tra la pentola e il vassoio inferiore, con due fili avvolti attorno alle barre. Quando l'acqua riempie il vassoio, i due fili si collegano, segnalando così al microcontrollore che l'acqua è presente nel vassoio inferiore.

Alla fine, l'acqua evapora e i fili si scollegano.

Il vassoio inferiore è stampato in 3D. Il file STL è disponibile nella sezione file e schizzi di questa istruzione.

Passaggio 7: sonda per l'umidità del suolo e recinzione per l'irrigazione

Image
Image
Sonda di umidità del suolo e recinzione di irrigazione
Sonda di umidità del suolo e recinzione di irrigazione
Sonda di umidità del suolo e recinzione di irrigazione
Sonda di umidità del suolo e recinzione di irrigazione

Ho progettato un recinto esagonale stampato in 3D per essere una sonda combinata per l'umidità del suolo e un recinto per l'irrigazione.

Un file di stampa 3D (STL) è disponibile nella sezione file e schizzi di questo manuale.

La custodia è composta da due parti, che devono essere incollate insieme. Un raccordo spinato modificato è incollato sul lato dell'involucro per fissare i tubi.

Sono forniti due fori da 4,5 mm per posizionare i chiodi zincati, che fungono da sonde di umidità del suolo. La connettività al microcontrollore è ottenuta tramite distanziatori metallici selezionati appositamente per adattarsi ai chiodi.

La progettazione 3D viene eseguita utilizzando www.tinkercad.com che è uno strumento di progettazione 3D eccezionale, facile da usare ma potente.

NOTA: potresti chiedermi perché non ho semplicemente usato una delle sonde del suolo prefabbricate? La risposta è: la pellicola su quelli si dissolve in poche settimane. Infatti, anche con un tempo limitato i chiodi sono sotto tensione, si erodono comunque e devono essere sostituiti almeno una volta all'anno. Il design sopra consente di sostituire le unghie in pochi secondi.

Passaggio 8: tubi e cablaggio

Tubi e cablaggio
Tubi e cablaggio

L'acqua viene erogata al piano tramite un tubo semitrasparente in gomma di lattice super morbido (con diametro interno di 1/4" e diametro esterno di 5/16").

L'uscita della pompa richiede un tubo più grande e un adattatore: Raccordo spinato in polipropilene resistente agli agenti chimici, diritto di riduzione per ID tubo da 1/4" x 1/8".

Infine, un raccordo spinato in polipropilene resistente agli agenti chimici, dritto per tubo ID da 1/8 funge da connettore per il contenitore di irrigazione.

Passaggio 9: schizzo NodeMCU

Schizzo NodeMCU
Schizzo NodeMCU

Lo schizzo NodeMCU implementa diverse funzionalità di API IoT v2:

  1. Si connette alla rete WiFi esistente -OPPURE- funziona come un punto di accesso WiFi (a seconda della configurazione)
  2. Interroga i server NTP per ottenere l'ora locale
  3. Implementa un server web per il monitoraggio dell'impianto e la regolazione dei parametri di irrigazione e di rete
  4. Misura l'umidità del suolo, le perdite d'acqua del vassoio inferiore, il livello dell'acqua nel vaso e fornisce indicazioni visive tramite LED a 3 colori
  5. Implementa modalità operative online e risparmio energetico
  6. Salva le informazioni su ciascuna delle corse di irrigazione localmente nella memoria flash interna

Passaggio 10: schizzo NodeMCU - WiFi

NodeMCU Sketch - WiFi
NodeMCU Sketch - WiFi

Per impostazione predefinita, IoT APIS v2 creerà un punto di accesso WiFi locale chiamato "Plant_XXXXXX", dove XXXXXX è il numero di serie del chip ESP8266 a bordo di NodeMCU.

Puoi accedere al server web integrato tramite URL: https://plant.io Il server DNS interno collegherà il tuo dispositivo alla pagina di stato dell'APIS.

Dalla pagina di stato, puoi accedere alla pagina dei parametri di irrigazione e alla pagina dei parametri di rete, dove puoi connettere le API IoT v2 alla tua rete WiFi e iniziare a segnalare lo stato al cloud.

Le API IoT supportano modalità operative online e di risparmio energetico:

  1. Nella modalità online IoT APIS mantiene la connessione WiFi sempre attiva, così puoi controllare lo stato del tuo impianto in qualsiasi momento
  2. Nella modalità di risparmio energetico, l'API IoT controlla periodicamente l'umidità del suolo e il livello dell'acqua, mettendo il dispositivo in modalità "sonno profondo" nel mezzo, riducendo così drasticamente il suo consumo energetico. Tuttavia, il dispositivo non è sempre disponibile online e i parametri possono essere modificati solo durante l'orario di accensione del dispositivo (attualmente ogni 30 minuti, allineato con l'orologio in tempo reale ora/mezz'ora). Il dispositivo rimarrà online per 1 minuto ogni 30 minuti per consentire le modifiche alla configurazione, quindi entrerà in modalità di sospensione profonda. Se l'utente si connette al dispositivo, il tempo di "attivazione" viene esteso a 3 minuti per ogni connessione.

Quando il dispositivo è connesso alla rete WiFi locale, il suo indirizzo IP viene segnalato al server cloud IoT e visibile sul dispositivo di monitoraggio mobile.

Passaggio 11: schizzo NodeMCU - NTP

Schizzo NodeMCU - NTP
Schizzo NodeMCU - NTP

IoT APIS v2 utilizza il protocollo NTP per ottenere l'ora locale dai server dell'ora NIST. L'ora corretta viene utilizzata per determinare se il dispositivo deve entrare in modalità "notte", ovvero evitare di far funzionare la pompa o il LED lampeggiante.

La notte è configurabile separatamente per i giorni feriali e la mattina del fine settimana.

Passaggio 12: schizzo NodeMCU - Server Web locale

NodeMCU Sketch - Server Web locale
NodeMCU Sketch - Server Web locale
NodeMCU Sketch - Server Web locale
NodeMCU Sketch - Server Web locale
NodeMCU Sketch - Server Web locale
NodeMCU Sketch - Server Web locale

IoT APIS v2 implementa un server Web locale per la segnalazione dello stato e le modifiche alla configurazione. La home page fornisce informazioni su umidità e livello dell'acqua correnti, presenza di acqua di trabocco nel vassoio inferiore e statistiche dell'ultima operazione di irrigazione. Pagina di configurazione della rete (accessibile tramite il pulsante di configurazione della rete) offre la possibilità di connettersi alla rete WiFi locale e di passare dalla modalità Online a quella di risparmio energetico. (Le modifiche alla configurazione di rete causeranno il ripristino del dispositivo) Pagina di configurazione dell'irrigazione (accessibile tramite il pulsante di configurazione dell'acqua) consente di modificare i parametri di irrigazione (umidità del suolo per avviare/interrompere l'irrigazione, durata dell'irrigazione e pausa di saturazione tra le sessioni, numero di sessioni, ecc.) I file HTML del server Web si trovano nella cartella dati dello sketch dell'IDE Arduino IoT APIS. Dovrebbero essere caricati nella memoria flash NodeMCU come file system SPIFF utilizzando lo strumento "ESP8266 Sketch Data Upload" che si trova qui.

Passaggio 13: schizzo NodeMCU - Registro di irrigazione locale e accesso al file system interno

NodeMCU Sketch - Registro di irrigazione locale e accesso al file system interno
NodeMCU Sketch - Registro di irrigazione locale e accesso al file system interno

Nel caso in cui la connettività di rete non sia disponibile, il sistema IoT APIS v2 registra tutte le attività di irrigazione localmente.

Per accedere al registro, connettiti al dispositivo e vai alla pagina "/modifica", quindi scarica il file watering.log. Questo file contiene la cronologia di tutti i cicli di irrigazione dall'avvio della registrazione.

Un esempio di tale file di registro (in formato separato da tabulazioni) è allegato a questo passaggio.

NOTA: la pagina di download non è disponibile quando IoT APIS v2 è in esecuzione in modalità Access Point (a causa della dipendenza dalla libreria Java Script online).

Passaggio 14: schizzo NodeMCU: umidità del suolo, perdita d'acqua nel vassoio inferiore, livello dell'acqua, LED a 3 colori

Image
Image
NodeMCU Sketch - Umidità del suolo, perdita d'acqua dal vassoio inferiore, livello dell'acqua, LED a 3 colori
NodeMCU Sketch - Umidità del suolo, perdita d'acqua dal vassoio inferiore, livello dell'acqua, LED a 3 colori
NodeMCU Sketch - Umidità del suolo, perdita d'acqua dal vassoio inferiore, livello dell'acqua, LED a 3 colori
NodeMCU Sketch - Umidità del suolo, perdita d'acqua dal vassoio inferiore, livello dell'acqua, LED a 3 colori

La misurazione dell'umidità del suolo si basa sullo stesso principio dell'APIS originale. Si prega di fare riferimento a tale istruibile per i dettagli.

Le perdite dalla vaschetta dell'acqua vengono rilevate applicando momentaneamente tensione ai fili posti sotto la pentola mediante resistenze PULLUP interne. Se lo stato del PIN risultante è BASSO, è presente dell'acqua nel vassoio. Lo stato del PIN ALTO indica che il circuito è "rotto", quindi non c'è acqua nel vassoio inferiore.

Il livello dell'acqua viene determinato misurando la distanza dalla parte superiore del barattolo alla superficie dell'acqua e confrontandola con la distanza dal fondo di un barattolo vuoto. Si prega di notare l'uso del sensore a 3 pin! Questi sono più costosi dei sensori a quattro pin HC-SR04. Sfortunatamente ho esaurito i GPIO su NodeMCU e ho dovuto tagliare ogni filo che potevo per far funzionare il progetto su un solo NodeMCU senza circuiti aggiuntivi.

Il LED a 3 colori viene utilizzato per indicare visivamente lo stato dell'APIS:

  1. VERDE lampeggiante moderatamente - connessione alla rete WiFi
  2. VERDE lampeggiante rapidamente - interrogazione del server NTP
  3. Breve VERDE fisso: connesso al WiFi e ottenuto con successo l'ora corrente da NTP
  4. BIANCO fisso breve - inizializzazione della rete terminata
  5. BIANCO lampeggiante rapidamente - avvio della modalità punto di accesso
  6. BLU lampeggiante rapidamente - irrigazione
  7. BLU lampeggiante moderatamente - saturazione
  8. AMBRA fisso brevemente seguito da ROSSO fisso brevemente - impossibile ottenere il tempo da NTP
  9. BIANCO brevemente fisso durante l'accesso al server web interno

Il LED non funziona in modalità "notte". La modalità notturna può essere determinata in modo affidabile solo se il dispositivo è stato in grado di ottenere l'ora locale dai server NTP almeno una volta (l'orologio in tempo reale locale verrà utilizzato fino alla successiva connessione a NTP)

Un esempio della funzione LED è disponibile su YouTube qui.

Passaggio 15: energia solare, power bank e funzionamento autonomo

Energia solare, Power Bank e funzionamento autonomo
Energia solare, Power Bank e funzionamento autonomo
Energia solare, Power Bank e funzionamento autonomo
Energia solare, Power Bank e funzionamento autonomo
Energia solare, Power Bank e funzionamento autonomo
Energia solare, Power Bank e funzionamento autonomo

Una delle idee alla base delle API IoT v2 era la capacità di operare in modo autonomo.

Il design attuale utilizza un pannello solare e un power bank provvisorio da 3600 mAh per raggiungere questo obiettivo.

  1. Il pannello solare è disponibile su amazon.com
  2. Il power bank è disponibile anche su amazon.com

Il pannello solare ha anche una batteria integrata da 2600 mAh, ma non è stato in grado di sostenere il funzionamento APIS 24 ore anche in modalità di risparmio energetico (sospetto che la batteria non gestisca bene la carica e la scarica simultanee). Una combinazione di due batterie sembra fornire una potenza adeguata e consentire la ricarica di entrambe le batterie durante il giorno. Il pannello solare carica il power bank, mentre il power bank accende il dispositivo APIS.

Notare che:

Questi componenti sono opzionali. Puoi semplicemente alimentare il dispositivo con qualsiasi adattatore USB che fornisce 1A di corrente.

Passaggio 16: integrazione IoT - Blynk

Integrazione IoT - Blynk
Integrazione IoT - Blynk
Integrazione IoT - Blynk
Integrazione IoT - Blynk
Integrazione IoT - Blynk
Integrazione IoT - Blynk

Uno degli obiettivi del nuovo design era la capacità di monitorare l'umidità del suolo, il livello dell'acqua e altri parametri da remoto.

Ho scelto Blynk (www.blynk.io) come piattaforma IoT per la sua facilità d'uso e il design accattivante.

Poiché il mio schizzo è basato sulla libreria multitasking cooperativa TaskScheduler, non volevo utilizzare le librerie di dispositivi Blynk (non sono abilitate per TaskScheduler). Invece, ho usato l'API RESTful HTTP Blynk (disponibile qui).

La configurazione dell'app è intuitiva come potrebbe essere. Si prega di seguire gli screenshot allegati.

Passaggio 17: schizzi e file

Schizzi e file
Schizzi e file

Lo schizzo IoT APIS v2 si trova su github qui: Schizzo

Alcune librerie utilizzate dallo sketch si trovano qui:

  1. TaskScheduler - libreria multitasking cooperativa per Arduino ed esp8266
  2. AvgFilter - implementazione intera del filtro Media per il livellamento dei dati del sensore
  3. RTCLib - implementazione hardware e software Real Time Clock (modificato da me)
  4. Orario - Modifiche per la libreria Orario
  5. Fuso orario - libreria che supporta i calcoli del fuso orario

NOTA:

I fogli dati, la documentazione dei pin e i file 3D si trovano nella sottocartella "file" dello schizzo principale.

I file HTML per il server web integrato devono essere caricati nella memoria flash NODE MCU utilizzando arduino-esp8266fs-plugin (che crea un file di file system dalla sottocartella "dati" della cartella principale dello sketch e lo carica nella memoria flash)

Concorso di giardinaggio indoor 2016
Concorso di giardinaggio indoor 2016
Concorso di giardinaggio indoor 2016
Concorso di giardinaggio indoor 2016

Secondo classificato al concorso di giardinaggio indoor 2016

Consigliato: