Sommario:
- Fase 1: PARTI e STRUMENTI
- Fase 2: SONDA UMIDITÀ DEL SUOLO V1
- Fase 3: SONDA UMIDITÀ DEL SUOLO V2
- Fase 4: SONDA UMIDITÀ DEL SUOLO V3 "Katana"
- Passaggio 5: FUNZIONALITÀ DI BASE
- Passaggio 6: VISUALIZZAZIONE A 7 SEGMENTI
- Passaggio 7: POMPA e CONTROLLO DELLA POMPA
- Passaggio 8: CONFIGURAZIONE e PULSANTI
- Passaggio 9: RTC: OROLOGIO IN TEMPO REALE
- Passaggio 10: METTERE TUTTO INSIEME
- Passaggio 11: SCHIZZI e altro
- Fase 12: *** ABBIAMO VINTO!!! ***
Video: APIS - Sistema di irrigazione automatizzato per piante: 12 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
La STORIA: (una prossima evoluzione di questo sistema è disponibile qui)
Ci sono alcune istruzioni sull'argomento dell'irrigazione delle piante, quindi ho inventato a malapena qualcosa di originale qui. Ciò che rende questo sistema diverso è la quantità di programmazione e personalizzazione che è stata inserita, consentendo un migliore controllo e integrazione nella vita quotidiana.
Ecco un video di un percorso di irrigazione: percorso di irrigazione
Ecco come è nata l'APIS:
Abbiamo due piante di peperoncino rosso piccante, che a malapena sono "sopravvissute" a molte delle nostre vacanze e che a questo punto sono quasi considerate membri della famiglia. Hanno attraversato un'estrema siccità e un'eccessiva irrigazione, ma si sono sempre ripresi in qualche modo.
L'idea di costruire un impianto di irrigazione basato su Arduino è stata quasi la prima idea di come Arduino potrebbe essere applicato come progetto di automazione domestica. Quindi è stato costruito un semplice sistema di irrigazione delle piante.
Tuttavia, la versione 1 non aveva alcuna indicazione sull'umidità del suolo e non c'era modo di dire se stava per innaffiare le piante o se l'irrigazione era a pochi giorni di distanza.
Curiosity, come tutti sappiamo, ha ucciso il gatto e la versione 2 è stata costruita con un modulo a 4 cifre e 7 segmenti per visualizzare l'umidità corrente in ogni momento.
Non era abbastanza. La domanda successiva era "quando è stata l'ultima volta che ha innaffiato le piante"? (Dato che raramente eravamo a casa per testimoniarlo). La versione 3 utilizzava il modulo a 7 segmenti per visualizzare anche quanto tempo fa si è verificato l'ultimo ciclo di irrigazione (come stringa di testo in esecuzione).
Una notte, l'irrigazione è iniziata alle 4 del mattino, svegliando tutti. Frustrante… Ritenendo che fosse troppo complicato disattivare l'APIS per la notte e riattivarlo durante il giorno per impedire l'irrigazione nel cuore della notte, è stato aggiunto un orologio in tempo reale per mettere a dormire il dispositivo durante la notte come parte della versione 4.
Poiché l'orologio in tempo reale richiede regolazioni periodiche (come ad esempio l'interruttore dell'ora legale), la versione 5 include tre pulsanti che consentono di impostare una varietà di parametri di irrigazione delle piante.
Non si è fermato qui. Ho notato che la sonda di umidità tende a erodere piuttosto rapidamente, molto probabilmente a causa del fatto che era (per progettazione) sotto tensione costante, e quindi c'era una corrente elettrica costante tra le sonde (erosione dell'anodo). La sonda del suolo economica dalla Cina è sopravvissuta per circa una settimana. Anche un chiodo galvanizzato è stato "mangiato" in un mese. Una sonda in acciaio inossidabile reggeva meglio, ma notai che anche quella stava cedendo. La versione 6 accende la sonda solo per 1 minuto ogni ora (e per tutto il tempo durante l'irrigazione), riducendo così drasticamente l'erosione (~16 minuti al giorno contro 24 ore al giorno).
L'idea:
Sviluppa un sistema di irrigazione delle piante con le seguenti capacità:
- Misura l'umidità del suolo
- Al raggiungimento di una soglia di umidità "bassa" predefinita, accendere la pompa dell'acqua e innaffiare le piante fino a raggiungere una soglia di umidità "alta"
- L'irrigazione dovrebbe essere eseguita in più passaggi, separati da periodi di inattività per consentire la saturazione dell'acqua attraverso il terreno
- Il sistema dovrebbe disattivarsi di notte tra gli orari di "riposo" e di "risveglio"
- Il tempo di "sveglia" dovrebbe essere regolato per i fine settimana su un valore successivo
- Il sistema dovrebbe tenere il registro delle corse di pompaggio
- Il sistema dovrebbe visualizzare la lettura corrente dell'umidità del suolo
- Il sistema dovrebbe visualizzare la data/ora dell'ultimo funzionamento della pompa
- I parametri di irrigazione dovrebbero essere regolabili senza riprogrammare
- Interrompere il pompaggio e indicare una condizione di errore se il funzionamento della pompa non porta a variazioni di umidità (mancanza d'acqua o problemi ai sensori) prevenendo l'allagamento dell'impianto e perdite d'acqua
- Il sistema dovrebbe accendere/spegnere la sonda di umidità per evitare l'erosione del metallo
- Il sistema deve drenare l'acqua dai tubi per evitare la formazione di muffe al loro interno
I seguenti parametri dovrebbero essere configurabili tramite pulsanti:
- Segno di umidità "basso", in %, per avviare il funzionamento della pompa (predefinito = 60%)
- Contrassegno di umidità "alta", in %, per arrestare il funzionamento della pompa (predefinito = 65%)
- Durata di un singolo ciclo di irrigazione, in sec (default = 60 secondi)
- Numero di tentativi per raggiungere l'umidità target (predefinito = 4 corse)
- Orario militare da disattivare per la notte, solo ore (default = 22 o 22)
- Ora militare da attivare al mattino, solo ore (default = 07 o 7 am)
- Regolazione fine settimana per attivazione mattutina, delta ore (default = +2 ore)
- Data e ora correnti
L'APIS scrive la data/ora degli ultimi 10 cicli di irrigazione nella memoria EEPROM. Il registro potrebbe essere visualizzato, mostrando la data e l'ora delle corse.
Una delle tante cose che abbiamo imparato da APIS è che in realtà non è necessario annaffiare le piante ogni giorno, che era la nostra routine finché non abbiamo visto le letture dell'umidità del suolo su un display a 7 segmenti…
Fase 1: PARTI e STRUMENTI
Avrai bisogno delle seguenti parti per creare APIS:
SCATOLA DI CONTROLLO E TUBI:
- Scheda Arduino Uno: su Amazon.com
- Pompa peristaltica 12v con tubo in silicone: su Adafruit.com
- Modulo JY-MCU con display digitale a LED numerico 4X: su Fasttech.com
- Kit scheda breakout orologio in tempo reale DS1307: su Adafruit.com (opzionale)
- Microtivity IM206 Interruttore tattile 6x6x6mm: su Amazon.com
- Vero board: su Amazon.com
- IC driver motore L293D: su Fasttech.com
- 3 resistenze da 10kOhm
- Arduino progetti custodia in plastica: su Amazon.com
- Adattatore CA/CC da 12 V con jack di alimentazione da 2,1 mm: su Amazon.com
- Spiedini di bambù
- Battistrada e un po' di colla supercemento
- Tubo in gomma super morbida in lattice 1/8" ID, 3/16" OD, 1/32" parete, ambra semi-trasparente, 10 piedi di lunghezza: su McMaster.com
- Raccordo per tubo spinato a tenuta stagna in nylon resistente, raccordo a T per ID tubo da 1/8", bianco, confezioni da 10: su McMaster.com
- Resistente raccordo per tubo spinato a tenuta stagna in nylon, a stella per ID tubo da 1/8", bianco, confezioni da 10: su McMaster.com
- Come al solito, fili, strumenti di saldatura, ecc.
SONDA UMIDITÀ:
- Piccolo pezzo di legno (1/4" x 1/4" x 1")
- 2 x aghi per estrazione dell'acne in acciaio inossidabile: su Amazon.com
- Modulo sensore di rilevamento dell'umidità del suolo: su Fasttech.com
Fase 2: SONDA UMIDITÀ DEL SUOLO V1
L'umidità del suolo viene misurata in base alla resistenza tra due sonde metalliche inserite nel terreno (a circa 1 pollice di distanza l'una dall'altra). Gli schemi sono rappresentati in figura.
La prima sonda che ho provato è stata quella che puoi acquistare da un certo numero di provider Internet (come questo).
Il problema con quelli è che il livello della lamina è relativamente sottile e si erode rapidamente (una o due settimane), quindi ho abbandonato rapidamente questo prefabbricato per il sensore più robusto, basato su chiodo zincato (vedi passaggio successivo).
Fase 3: SONDA UMIDITÀ DEL SUOLO V2
La sonda "di nuova generazione" era fatta in casa da due chiodi zincati, una tavola di legno e un paio di fili.
Dato che avevo già una sonda fabbricata usurata, ho riutilizzato il pezzo di connessione e il modulo elettronico da essa, sostanzialmente solo sostituendo il componente del suolo.
Chiodi galvanizzati, con mia sorpresa, anch'essi erosi (anche se più lenti della lamina sottile), ma comunque più veloci di quanto vorrei.
È stata progettata un'altra sonda, basata su aghi per la rimozione dell'acne in acciaio inossidabile. (vedi passaggio successivo).
Fase 4: SONDA UMIDITÀ DEL SUOLO V3 "Katana"
La sonda in acciaio inossidabile (simile alla spada del samurai, da cui il nome) è quella attualmente in uso.
Credo che la rapida erosione possa essere attribuita al fatto che la sonda era sempre sotto tensione elettrica (24x7) indipendentemente da quante volte avvenisse la misurazione effettiva.
Per mitigare ciò, ho modificato gli intervalli di misurazione in modo che fossero una volta ogni 1 ora (dopotutto, questo NON è un sistema in tempo reale) e ho collegato la sonda a uno dei pin digitali anziché a 5v permanenti. Attualmente, la sonda viene alimentata solo ~16 minuti al giorno invece di 24 ore, il che dovrebbe aumentare notevolmente la sua durata.
Passaggio 5: FUNZIONALITÀ DI BASE
APIS è basato sulla scheda Arduino UNO.
APIS misura l'umidità del suolo una volta all'ora e, se scende al di sotto di una soglia predefinita, accende la pompa per un periodo di tempo predefinito un numero predefinito di volte separato da intervalli di "saturazione".
Una volta raggiunta una soglia di umidità target, il processo torna alla modalità di misurazione una volta all'ora.
Se non è possibile raggiungere l'umidità target, ma è stato raggiunto il limite inferiore, va bene lo stesso (almeno si è verificata un'irrigazione). Il motivo potrebbe essere lo sfortunato posizionamento della sonda, dove è troppo lontana dal terreno umido.
Tuttavia, se non è stato possibile raggiungere nemmeno il limite di umidità inferiore, viene dichiarata una condizione di errore. (Molto probabilmente un problema con la sonda, o il secchio di rifornimento ha esaurito l'acqua, ecc.). In condizioni di errore, l'unità dormirà per 24 ore senza fare nulla, quindi riproverà.
Passaggio 6: VISUALIZZAZIONE A 7 SEGMENTI
DISPLAY A 7 SEGMENTI BASATO SU TM1650:
In origine, APIS non aveva alcuna capacità di visualizzazione. Era impossibile stabilire l'attuale livello di umidità del suolo senza collegarsi tramite USB.
Per risolvere il problema ho aggiunto al sistema un display a 7 segmenti a 4 cifre: su Fasttech.com
Non sono riuscito a trovare una libreria per lavorare con questo modulo da nessuna parte (né una scheda tecnica per esso), quindi dopo alcune ore di ispezione e sperimentazione delle porte I²C, decido di scrivere io stesso una libreria di driver.
Supporta display fino a 16 cifre (con 4 come predefinito), può visualizzare caratteri ASCII di base (si prega di notare che non tutti i caratteri possono essere costruiti con 7 segmenti, quindi lettere come W, M, ecc. non sono implementate), supporta i decimali visualizzazione dei punti sul modulo, esegue una stringa di caratteri (per visualizzare più di 4 lettere) e supporta 16 gradi di luminosità.
La libreria è disponibile su arduino.cc playground qui. Libreria driver TM1650
Il video di esempio è disponibile qui
ANIMAZIONE:
Un po' di animazione a 7 segmenti è implementata durante una corsa in acqua.
- Mentre la pompa è in funzione, i punti digitali sul display scorrono da sinistra a destra, a simboleggiare un flusso d'acqua: video di animazione dell'irrigazione
- Durante il periodo di "saturazione", i punti corrono dal centro del display verso l'esterno, a simboleggiare la saturazione: video di animazione della saturazione
Inutile, ma un bel tocco.
Passaggio 7: POMPA e CONTROLLO DELLA POMPA
POMPA
Ho usato una pompa peristaltica a 12v (disponibile qui) per innaffiare le piante. La pompa fornisce circa 100 ml/min (che è circa 1/2 di un bicchiere - è bene ricordare quando si configura il tempo di irrigazione per evitare traboccamenti, e questo è successo 8-))
COMANDO POMPA - L293D
La pompa è controllata tramite il chip del driver del motore L293D. Poiché la direzione di rotazione è preimpostata, è necessario utilizzare solo il pin di abilitazione del chip per il controllo. I pin di direzione possono essere collegati direttamente a +5v e GND in modo permanente.
Se tu (come me) non eri sicuro di quale direzione andrà la pompa, puoi comunque collegare tutti e tre i pin ad Arduino e controllare la direzione in modo programmatico. Meno risaldature.
Passaggio 8: CONFIGURAZIONE e PULSANTI
PULSANTI:
Ho usato tre pulsanti per configurare e controllare le API.
Tutte le pressioni dei pulsanti vengono elaborate in base agli interrupt dei pin (libreria PinChangeInt).
- Il rosso (all'estrema destra) è un pulsante SELECT. Fa entrare APIS in modalità di configurazione e conferma anche i valori.
- I pulsanti neri più a sinistra e al centro (rispettivamente PI e MENO) vengono utilizzati per aumentare/diminuire i valori configurabili (nella modalità di configurazione) o visualizzare la data/ora corrente e le informazioni sull'ultima irrigazione (in modalità normale).
Poiché la maggior parte delle volte il display è spento, tutti i pulsanti prima "risveglieranno" APIS e solo dopo, alla seconda pressione, svolgeranno la loro funzione.
Il display si spegne dopo 30 secondi di inattività (a meno che non sia in corso un ciclo di irrigazione).
APIS esegue i parametri di configurazione all'avvio per la revisione: video
CONFIGURAZIONE:
APIS ha quattro modalità di configurazione:
- Configura i parametri di irrigazione
- Imposta l'orologio in tempo reale
- Irrigazione "forzata"
- Rivedere il registro di irrigazione
PARAMETRI DI IRRIGAZIONE:
- Soglia bassa umidità del suolo (inizio irrigazione)
- Soglia di umidità del suolo elevata (interruzione dell'irrigazione)
- Durata di un singolo ciclo di irrigazione (in secondi)
- Numero di cicli di irrigazione in un batch
- Durata del periodo di saturazione del suolo tra i cicli all'interno di un lotto (in minuti)
- Orario di attivazione della modalità notturna (ora militare, solo ore)
- Ora di fine della modalità notturna (ora militare, solo ore)
- Regolazione fine settimana per l'ora di fine della modalità notturna (in ore)
IMPOSTAZIONE DELL'OROLOGIO IN TEMPO REALE:
- Secolo (cioè 20 per il 2015)
- Anno (cioè 15 per il 2015)
- Mese
- Giorno
- Ora
- Minuto
L'orologio viene regolato con i secondi impostati a 00 alla conferma dei minuti.
Le impostazioni hanno un periodo di timeout di 15 secondi, dopodiché tutte le modifiche vengono annullate.
Al momento del salvataggio, i parametri vengono salvati nella memoria EEPROM.
FORZARE UNA CORSA DI IRRIGAZIONE:
Non sono ancora sicuro del motivo per cui l'ho implementato, ma è lì. Una volta attivato, APIS entra in modalità di irrigazione. La modalità di irrigazione, tuttavia, è ancora soggetta a soglie. Ciò significa che se si forza l'irrigazione, ma l'umidità del suolo è superiore al segno ALTO, l'irrigazione termina immediatamente. Fondamentalmente questo funziona solo se l'umidità del suolo è compresa tra le soglie LOW e HIGH.
REVISIONE DEL REGISTRO DI IRRIGAZIONE:
APIS mantiene un registro delle ultime 10 irrigazioni nella memoria EEPROM, che l'utente può rivedere. Viene memorizzata solo la data/ora del ciclo di irrigazione. Le soglie (al momento) e il numero di esecuzioni necessarie per raggiungere la soglia HIGH non vengono memorizzati (sebbene nella prossima versione potrebbero esserlo).
Passaggio 9: RTC: OROLOGIO IN TEMPO REALE
MODALITÀ NOTTURNA
Una volta che l'APIS mi ha svegliato di notte, mi è venuta in mente l'idea di implementare una "modalità notturna".
Una modalità notturna è quando non vengono eseguite misurazioni, il display è spento e non viene eseguita l'irrigazione.
In un normale giorno lavorativo l'APIS si "sveglia" alle 7:00 (configurabile) ed entra in modalità notturna alle 22:00 (configurabile). In un fine settimana APIS utilizza un'impostazione di "regolazione del fine settimana" per ritardare una sveglia (ad esempio alle 9:00, se la regolazione del fine settimana è di 2 ore).
RTC BREAKOUT BOARD e RTC "SOFTWARE":
Ho usato l'RTC hardware (disponibile qui) per tenere traccia della data/ora e per entrare/uscire dalle modalità notturne.
È facoltativo da usare, poiché gli schizzi potrebbero essere compilati per utilizzare il cosiddetto "software" RTC (usando la funzionalità millis() di arduino).
Lo svantaggio dell'utilizzo del software RTC è che è necessario impostare l'ora ogni volta che l'APIS si accende.
Ho modificato la libreria RTC standard in modo che corrisponda esattamente all'API e anche per aggirare il problema del rollover di millis. (Si prega di vedere il passaggio degli schizzi per i download).
Passaggio 10: METTERE TUTTO INSIEME
L'intero sistema (tranne la sonda) inclusa la pompa si inserisce in una piccola scatola per Arduino Uno.
- Il display TM1650 utilizza l'interfaccia TWI, quindi i cavi SDA e SDC vanno rispettivamente ai pin A4 e A5 di Arduino. Gli altri due fili sono +5v e GND.
- La scheda RTC utilizza l'interfaccia TWI, quindi come sopra. (TM1650 e RTC utilizzano porte diverse, quindi coesistono pacificamente). Il pin RTC +5v è collegato al pin 12 di arduino (alimentato tramite pin digitale anziché +5v). Non ricordo perché l'ho fatto, non devi.
- I pin L293D sono collegati come segue: abilitazione (pin 1) a D5 e pin 2 e 7 di controllo della direzione ai pin arduino D6 e D7 rispettivamente.
- I PULSANTI sono collegati ai pin D2, D8 e D9 rispettivamente per SELECT, PLUS e MINUS. (I pulsanti sono implementati con resistori pull-down da 10K - nella configurazione "active-high").
- L'alimentazione +5v del modulo PROBE è collegata al pin 10 di arduino (per abilitare le misurazioni periodiche) e la sonda è collegata al pin analogico A1.
NOTA: il file degli schemi di Fritzing è stato aggiunto al repository github.
Passaggio 11: SCHIZZI e altro
Aggiornamento marzo 2015:
- Aggiunta funzionalità per drenare i tubi dopo il ciclo di irrigazione per evitare la formazione di muffe (ragazzo! Sono felice di non aver cablato la direzione di rotazione della pompa su L293D!)
- La registrazione più ampia include data/ora di inizio e fine del ciclo di irrigazione, umidità di inizio e fine e quante volte la pompa è stata attivata durante il ciclo di irrigazione
- Routine di errore aggiornata: il dispositivo verrà ripristinato dopo 24 ore dall'inserimento della condizione di errore
- Ricompilato con TaskScheduler 2.1.0
- Varie altre correzioni di bug
A partire dal 18 novembre 2015 APIS è stato aggiornato con le seguenti funzionalità aggiuntive:
- Utilizzo della libreria DirectIO per modifiche dei pin più rapide e semplici
- Utilizzo della libreria Timezone per passare correttamente da EST a EDT
- Aggiunta logica antirimbalzo dei pulsanti utilizzando solo TaskScheduler
- Aggiunta funzionalità di ripetizione del pulsante (valori ciclo se il pulsante viene premuto e tenuto premuto, con velocità del ciclo in aumento dopo 5 cicli)
- Ricompilato con IDE 1.6.6 AVR 1.6.9 contro TaskScheduler 1.8.4
- Trasferito a Github
BIBLIOTECHE:
APIS si basa sulle seguenti librerie:
- EEPROM - parte di Arduino IDE
- Wire - parte di Arduino IDE
- EnableInterrupt - disponibile su Github
- Fuso orario - disponibile su Github
- DirectIO - disponibile su Github
Modificato (biforcato) da me:
- Tempo - disponibile su Github
- RTClib - disponibile su Github
Sviluppato da me:
- TM1650 - disponibile su Github
- TaskScheduler - disponibile su Github
- AvgFilter - disponibile su Github
SCHIZZO:
L'ultima versione dello schizzo APIS, incluso il file di schemi fritzing, è disponibile su Github
SCHEDE TECNICHE:
- L293D: qui
- Scheda di sblocco RTC: qui
Fase 12: *** ABBIAMO VINTO!!! ***
Questo progetto ha vinto il secondo premio al concorso Home Automation sponsorizzato da Dexter Industries.
Controlla! WOO-HOO!!!
Secondo Premio nella Domotica
Consigliato:
Vaso per piante automatizzato - Piccolo giardino: 13 passaggi (con immagini)
Vaso per piante automatizzato - Little Garden: sono uno studente di Multimedia and Communication Technology a Howest Kortrijk. Per il nostro incarico finale, abbiamo dovuto sviluppare un progetto IoT di nostra scelta. In cerca di idee, ho deciso di fare qualcosa di utile per mia madre che ama crescere
Alimentatore automatico per piante WiFi con serbatoio - Impostazione coltivazione indoor/outdoor - Piante acquatiche automaticamente con monitoraggio remoto: 21 passaggi
Wi-Fi Automatic Plant Feeder With Reservoir - Configurazione coltivazione indoor/outdoor - Innaffiare le piante automaticamente con monitoraggio remoto: In questo tutorial dimostreremo come configurare un sistema di alimentazione piante interno/esterno personalizzato che irriga automaticamente le piante e può essere monitorato da remoto utilizzando la piattaforma Adosia
Irrigazione intelligente delle piante: 5 passaggi (con immagini)
Irrigazione intelligente delle piante: ciao! Usando questo progetto puoi innaffiare le tue piante automaticamente considerando la temperatura esterna, l'umidità e la luce. Inoltre puoi usarlo come stazione meteorologica domestica e controllare temperatura, umidità e luminosità dal tuo cellulare o computer ju
Irrigazione intelligente delle piante Arduino più semplice: 7 passaggi (con immagini)
Irrigazione intelligente delle piante Arduino più semplice: l'ultima volta che abbiamo scritto intricato su come realizzare un sistema di irrigazione automatico delle piante con arduino e sensori, il nostro articolo ha ricevuto molta attenzione e ottimi feedback. Successivamente, abbiamo pensato a come potremmo migliorarlo. Sembra che il nostro o
Progetto di irrigazione automatica delle piante da fiore-arduino: 8 passaggi (con immagini)
Progetto di irrigazione automatica delle piante da fiore-arduino: Ciao ragazzi! oggi vi spiegherò come innaffiare le vostre piante, con un sistema di controllo dell'acqua. Ti guiderò passo dopo passo attraverso i processi. Quindi cosa stiamo facendo