Impianto di irrigazione con Raspberry Pi: collegamenti esterni alla centralina (sesta parte)

Dopo molti mesi di assenza sul blog torno scrivere un post relativo al progetto piGarden (realizzazione di un impianto di irrigazione comandato da un Raspberry Pi).

Luca, in un recente commento, chiedeva di potere vedere in modo più chiaro i collegamenti esterni con i quali viene collegata la centralina alle varie elettrovalvole, ed è proprio questo che cercherò di mostrare in questo articolo.

Centralina su muroL’impianto di irrigazione che ho realizzato serve un giardino posto sul retro della mia abitazione. Adiacente al giardino è presente un garage nel quale ho posizionato la centralina fissandola al muro interno (confinante sul giardino).

Dalla centralina parte un tubo di forassite la cui estremità opposta finisce sulla parte esterna del muro dove sono posizionati i collettori e le elettrovalvole.

Nel tubo passano i cavi che collegano la centralina alle elettrovalvole.

Nella figura sottostante possiamo vedere in dettaglio i cavi che dalla centralina entrano nella tubo. I cavi gialli escono dei relè comandati dai gpio del Raspberry Pi e finiscono ad una morsettiera. Da questa ripartono i cavi marroni i quali giungeranno ai poli positivi delle elettrovalvole. In questo caso le elettrovalvole in funzione sono tre ma per comodità ho passato tutti i cavi (sei) anche per le altre elettrovalvole che potrò collegare in futuro.

Sottostante è possibile vedere un’ulteriore morsettiera, questa collega il cavo nero destinato a giungere sui poli negativi delle elettrovalvole. Lo possiamo notare nella seconda posizione a partire dalla destra della morsettiera, che dalla stessa posizione riparte il cavo blu destinato a passare nel tubo di forassite.

Sulla stessa morsettiera possiamo vedere nella prima e seconda posizione a partire da sinistra i due cavi (marrone e blu) che serviranno da raccordo per collegare il sensore di rilevamento pioggia. Anche questi passeranno nel tubo di forassite per raggiungere il sensore posto sulla parte opposta della parete.

Il tubo di forassite raggiunge la parte esterna della parete e finisce all’interno di un piccolo casottino nel quale sono ospitati i collettori dell’acqua e le elettrovalvole.

Contenitore collettori ed elettrovalvole

Collettori ed elettrovalvole

Entrato nel casottino, il tubo di forassite termina in una piccola scatola elettrica stagna circolare. Nella scatola ho collegato i cavi elettrici provenienti dalla centralina ad altre coppie di cavi ricoperti da una guaina gommata in modo da essere protetti dalle diverse condizioni climatiche. Per finire queste coppie di cavi raggiungono le relative elettrovalvole e il sensore di rilevamento pioggia.

Scatola di raccordo cavi elettrovalvole

Elettrovalvole

Bene !!!! Con questo post spero di avere chiarito un po’ i dettagli sui vari collegamenti.

Per qualsiasi dubbio o chiarimento scrivete nei commenti.

PS: state sintonizzati perché è in fase di realizzazione l’applicazione web per pilotare la centralina.

20 pensieri su “Impianto di irrigazione con Raspberry Pi: collegamenti esterni alla centralina (sesta parte)

  1. Che dire, i miei complimenti! Veramente un lavoro ben fatto, pulito nella realizzazione e nella integrazione nella casa (il mio attuale è in una scatola di plastica messo a terra …).
    Quindi alla fine ci sono 2 raccordi, nella morsettiera iniziale (dove i gialli delle ev diventano marroni e la massa nera diventa blu) e nella scatola tonda esterna, dalla quale fai partire i fili verso le ev a coppie dentro una guaina (quindi immagino quelli diventati marroni e quelli diventati blu della massa).
    A questo punto aspetto con ansia l’applicazione web!
    Grazie mille per l’aggiornamento!
    Luca

  2. Ciao Luca,
    hai capito tutto benissimo 🙂
    Per quanto riguarda l’applicazione web ho approfittato delle ferie estive per iniziarla.
    Attualmente sto terminando la dashboard da dove si possono vedere lo stato delle elettrovalvole, accenderle e spengerle. Oltre a questo dalla dashboard è possibile vedere le condizioni meteo attuali recuperate dal servizio online di wunderground.com da cui verifico le condizioni meteo per spengere le elettrovalvole in caso di pioggia.
    Appena ho qualcosa di pronto vedo di pubblicarlo.

  3. Io stavo tentando di installare sul raspberry il sw opensource openhab2 così da renderlo (essendo acceso h24) il centralino domotico di tutta la casa e far capo a lui per tutte le automazioni (philips hue, netatmo, sonos, etc…).
    Integravo anche meteo rilevato e irrigazione.
    E’ piuttosto complicato, soprattutto nel tentare di creare una dashboard gradevole anche da eventualmente esporla in casa tramite tablet.
    Tu invece cosa hai scelto per l’interfaccia web del tuo progetto?

  4. Ciao @Luca,
    openhab2 non lo conoscevo, molto bello e interessante.
    Per quanto mi riguarda ho utilizzato laravel come framework php su cui poi ho installato alcuni pacchetti di backpack per automatizzare i meccanismi di login e per avere una base di template di amministrazione già funzionante.
    Qui di seguito puoi vedere la dashboard che ho fatto per amministrare l’impianto.
    piGardenWeb alfa

  5. Bella!! Quando posterai la guida testerò sicuramente il tutto 🙂 !
    Io cercavo di creare una dashboard integrata, così da mettere un tablet vecchio da 7″ in casa per la gestione completa della casa tipo telecomando.
    Una cosa così per capirci:
    https://community-openhab-org.s3-eu-central-1.amazonaws.com/original/1X/5d0573b712617a0ca41773eccf5e830276dcb38e.JPG
    Secondo te con laravel si possono integrare altre feature? Essendo php non so quanto si possa “spingere” sul codice.
    Grazie!

  6. @Luca,
    secondo me non è un problema di php.
    L’interfaccia web che ho creato io si interfaccia via socket con lo script bash che gestisce l’impianto di irrigazione.
    Quindi ad un livello più altro abbiamo l’interfaccia web creata con php/laravel e ad un livello più basso il software che dialoga con l’hardware, nel mio caso lo script bash che gestisce la centralina. I due elementi dialogano tramite socket.
    Il problema quindi, secondo me, sta nel dovere implementare lo strato di basso livello per gestire i vari dispositivi che ci interessano. Per ognuno di questi naturalmente poi ci sarebbe da implementare anche l’opportuna interfaccia web.
    Spero di avere reso l’idea 🙂

  7. Ciao!
    Innanzitutto ti rinnovo i complimenti per il lavoro egregio che hai fatto! Davvero lodevole!
    Non ti leggo da qualche tempo tanto che questa sesta parte me la sono persa (mea culpa!!) ma noto con molto piacere che stai sviluppando l’interfaccia WEB.
    Io ho studiato il tuo progetto e ho intenzione di realizzarlo ma non prima di aver a disposizione una WEB-GUI: a tal proposito avevo visto su internet un progetto simile al tuo fatto però con Arduino Yun (http://www.lucadentella.it/2015/08/04/irrighino/) del quale mi piaceva molto l’interfaccia (con il calendar per la programmazione ecc), molto usabile anche da smartphone e stavo ingegnandomi, nei ritagli di tempo, per farne un porting sul tuo sistema adattando le chiamate di sistema, ma a questo punto metto in pausa (sono molto in alto mare) e attendo il tuo sicuramente eccellente lavoro.

    Grazie ancora,
    Marco

  8. Ciao @Marco,
    grazie per i complimenti 🙂
    In questi giorni sto proprio affrontando l’implementazione sull’interfaccia web della gestione schedulazioni di apertura / chiusura delle elettrovalvole.
    L’applicazione web che sto portando avanti è scritta in php e si appoggia al framework laravel.
    Ho fatto delle modifiche abbastanza pesanti allo script bash che gestisce l’impianto, in modo da implementare un socket server che rimane in ascolto e possa gestire un dialogo con l’applicazione web (via socket, appunto).
    In questo modo posso avere su un primo raspberry pi lo script che gestisce l’impianto e su di un secondo raspberry l’interfaccia web.
    Questa è proprio la configurazione che sto usando per sviluppare il progetto.
    Naturalmente una volta completato cercherò di riunire il tutto in modo che possa funzionare su di un unico hardware.
    Se ti può interessare quanto fatto fin’ora lo puoi trovare qui su gitHub.
    Per quanto riguarda invece la nuova versione in fase di sviluppo dello script bash la puoi trovare sempre qui su gitHub.

  9. Ciao! Ho visto che da dicembre non ci son stati più aggiornamenti … sei poi riuscito a terminare la parte dell’interfaccia web?
    Siamo entrati in primavera e mi è scoppiata la fregola con i primi caldi di preparare il mio terrazzo per fiori e piante!!
    Grazie
    Luca

  10. Ciao Luca,
    l’interfaccia web purtroppo non è ancora completa. Manca ancora la gestione delle schedulazioni e altri dettagli.
    E’ funzionante invece la dashboard per comandare le zone.
    Se vuoi provare a installarla è necessario la versione di sviluppo di piGarden https://github.com/lejubila/piGarden/tree/develop e naturalmente l’applicazione web piGardenWeb https://github.com/lejubila/piGardenWeb
    PiGardenWeb ha bisogno del web server apache e di un db mysql per funzionare.
    Dato che per ora non ho pronta una guida per l’installazione, se bisogno di istruzioni fammi sapere….

  11. Ciao mio malgrado penso di aver trovato un bug al sistema.
    Sabato sera mi si è aperta l’irrigazione dei fiori in terrazzo e purtroppo si è scaricata la pila che gestisce apertura\chiusura elettrovalvola.
    Risultato acqua ovunque in terrazzo (e al balcone di sotto).
    Per fortuna era solo una sera, se penso ad una cosa così quando parto per le vacanze mi vengono i brividi (soprattutto per la bolletta che arriverebbe!).
    E’ mai capitato a qualcuno?? Come si può sistemare a tuo avvisto? Alla fine con pile 9V può succedere in qualsiasi momento se non ci sono i controlli.
    Luca

  12. Ciao Luca,
    mi dispiace del problema che hai avuto.
    Innanzitutto vorrei premettere che l’impianto che ho descritto in questa serie di post non è di tipo professionale ma bensì frutto della mia passione per l’informatica e in particolare per il raspberry pi. Questo implica che possa peccare di eventuali difetti e controlli di sicurezza magari presenti su altre centraline che troviamo in commercio.
    Per quanto riguarde il problema che hai riscontrato non ho bene capito se l’irrigazione è partita da sola oppure se era stata programmata l’apertura/chisura ad un certo orario e poi a causa dell’esaurimento della batteria sia mancata la chiusura.
    Come spiegavo nei post precedenti, nell’impianto ho utilizzato delle elettrovalvole bistabili in modo da non doverle alimentare continamente ma bensi vengano aperte e chiuse con un semplice impulso elettrico (della durata di un secondo circa). Propro a causa di questa natura se la batteria si scarica dopo avere eseguito l’apertura non sarà in grado di impartire l’impulso successivo per la chiusura.
    L’unico rimedo che vedo possibile è sostituire la batteria a 9v con trasformatore equivalente collegato direttamente alla corrente elettrica.
    Il problema però rimarrebbe comunque nel caso vada via la corrente ad irrigazione già aperta, anche in questo caso non sarebbe possibile fare arrivare l’impulso di chiusura alle elettrovalvole perchè il raspberry sarebbe spento.
    Sinceramente una soluzione sicura al problema non mi viene in mente, l’unica precauzione che posso consigliare è che a inizio stagione venga cambiata la batteria in modo da prevenire eventuali scaricamenti.
    Riguardo altre eventuali segnalazioni di altre persone …. ho paura che per ora siamo in ben pochi ad avere realizzato il progetto.

    Fammi sapere se ha suggerimenti.

  13. Ciao il mio era solo un update di “sicurezza” per trovare una soluzione, non volevo accusare nessuno del proprio lavoro\hobby ci mancherebbe! 🙂
    Anzi ancora grazie per l’idea avuta e la spiegazione sul come realizzarla, senza non sarei mai arrivato a farla.
    A me è venuta un’idea da implementare, ossia inviare una email o un allarme acustico qual ora la valvola venga aperta e dopo tot minuti non venga richiusa (come accaduto a me che malauguratamente si è scaricata la pila proprio in quell’ultima apertura!).
    Almeno si ha la sensibilità di avere il controllo e poter intervenire tempestivamente (anche solo facendo chiudere l’acqua dai vicini).
    Che ne pensi? Si potrebbe fare?
    Grazie
    Luca

  14. Ciao,
    sto seguendo il discorso perchè interessa anche a me realizzare il sistema. Ho ordinato i pezzi questa settimana, a breve quindi saremo almeno in 3 ad utilizzarlo !! 🙂

    Riguardo la patch di sicurezza proposta credo non si possa realizzare perchè non esiste un “flag” di controllo dell’elettrovalvola che dice se è accesa o se è spenta perchè di fatto cambia stato con un preciso impulso di corrente.

    Inoltre mi verrebbe da dire che lo stesso problema che hai avuto tu (la sfortuna ci vede benissimo come sempre) potrebbero averlo tutti quelli che hanno un sistema a batteria. L’unica differenza che mi viene in mente è che i controller da pozzetto consumano gradualmente la batteria tutto l’anno in quanto fanno funzionare il clock e i circuiti interni del sistema, quindi l’impulso di avviare/fermare l’elettrovalvola è una “utenza” saltuaria del sistema, insieme a quella continua del microprocessore.
    PIrrigate invece scarica la batteria solo con gli impulsi da dare alle elettrovalvole.

    Una possibile soluzione a questo problema potrebbero essere:
    A- sostituire la batteria periodicamente
    B- impiegare un trasformatore a 9V

    in questo modo il problema delle elettrovalvole si risolverebbe, ma rimane il grosso problema della mancanza di corrente. A casa mia ho un interruttore generale di tipo “STOP and GO” che si riarma da solo dopo essere scattato.
    Non avendolo ancora realizzato non so se il Rasp quando si alimenta si riavvia in automatico e fa partire i servizi. Se si comportasse così allora sarebbe possibile cercare un rilevatore di umidità da installare nel terreno (di un giardino, o in un vaso) e quando l’umidità raggiunge un certo livello allora si interrompe l’irrigazione dando un impulso negativo.

    Inoltre, quando si avvia il sistema come prima cosa si resettano le elettrovalvole dando un impulso di chiusura.

    Continuando con questa iperbole, volendo si potrebbe pensare ad un mini UPS che dia l’impulso in caso di mancanza della correte che venga recepito da una porta di input del GPIO (o che piloti direttamente il relè) e che permetta di eseguire il comando di chiusura forzata di tutte le elettrovalvole.

  15. Ciao Marco,
    io pensavo ad un controllo senza aggiunte\modifice alla configurazione attuale usando lo script piGarden del progetto.
    Esempio si potrebbe mettere una verifica del tipo:
    # Apertura elettrovalvola
    /home/pi/piGarden/piGarden.sh open giardino_posteriore

    Dopo N minuti a seconda di quanto è stata impostata l’apertura nel crontab, lanciare il comando

    # Visualizza lo stato di una elettrovalvola (1=aperta, 0=chiusa)
    piGarden.sh ev_status giardino_posteriore

    E qui fare il controllo da script:
    se output è 1 e sono passati + di N minuti provare prima con il comando
    piGarden.sh close_all [force]
    altrimenti inviare email o segnalazione acustica per avvisare che è ancora 1 (aperto) nonostante avesse dovuto essere 0 (chiuso), quindi qualcosa non va e necessita di un intervento manuale di qualcuno per non sprecare acqua e\o allagare tutto.

    Non dovrebbe essere impossibile da fare a mio avviso, però lascio al “padre” dello script il verdetto :o)
    Luca

  16. Sicuramente Luca ci darà la risposta definitiva, ma credo che il problema sia proprio nel TEST della EV, non credo si possa fare una cosa come l’hai scritta tu:
    piGarden.sh ev_status giardino_posteriore

    in quanto l’EV riceve un comando ed esegue, non ha la possibilità di far conoscere il suo stato tramite un “piedino” perchè la sua interfaccia con l’esterno è costituita solo da 2 connettori, il Positivo ed il Negativo, appunto.

    In ogni caso, se si utilizza un alimentatore 9v al posto della pila, il problema è risolto a monte.

    Il vero problema è se va via la corrente: il Raspberry si spegne e buonanotte ai sognatori. Se la valvola è aperta, rimarrà aperta.

    Per questo suggerivo il collegamento con l’UPS: alcune versioni (vedi APC), quando va via la corrente, hanno la possibilità di lanciare segnali intercettabili da Raspberry via USB (che quindi potrebbe lanciare un CLOSE) o dei segnali HW che possono far attivare il circuito del relè e simulare il CLOSE da script.

    Quando il sistema riparte, se riparte, la prima cosa da fare è lanciare un bel comando di close in modo da essere sicuri che tutto è fermo.

    Ciao!

  17. Ciao @Luca, ciao @Marco

    purtroppo il controllo di stato sull’elettrovalvola, come diceva correttamente Marco, non è possibile in quanto non ho nessun modo di verificare se questa sia realmente aperta oppure chiusa. Lo stato che viene restituito con il comando “piGarden.sh ev_status giardino_posteriore” è “virtuale” in quanto viene impostato dallo script scrivendolo in un apposito file al momento dell’esecuzione del comando “open” e “close”.

    Il problema della batteria scarica, come confermava anche Marco, è quello di sostituirla con un trasformatore a 9v.
    Per risolvere il problema della mancanza di corrente la soluzione potrebbe essere installare un ups che dia autonomia al raspberri in caso di interruzione. Sempre come suggeriva Marco gli ups APC possono dialogare con il raspberry grazie al tool apcupsd grazie al quale è possibile fare eseguire dei comandi personalizzati quando viene a mancare la corrente. In questo modo si potrebbe fare eseguire la chiusura forzata di tutte le elettrovalvole e successivamente spengere il raspberry.
    Il problema è che gli ups apc costano in botto 🙁 ne esistono comunque di altre marche che funzionano similmente, ma penso che anche questi abbiano dei costi un po alti.

    Dando un’occhiata veloce ho trovato questo mini ups per il rasp che sembra avere un prezzo contenuto. Però non ho approfondito …..

  18. Eccellente soluzione quella che hai trovato! in particolare perchè, avendo in casa l’impianto predisposto per la domotica, ho un vero e proprio quadro elettrico in Barra DIN e vorrei montare l’impianto li dentro.
    L’ups APC che ho visto io costa circa 60€ (e ha il modulo di segnalazione guasti) https://www.amazon.it/APC-Back-UPS-Gruppo-continuit%C3%A0-BE325/dp/B0009HMYKS/ref=sr_1_4?ie=UTF8&qid=1492151963&sr=8-4&keywords=UPS+APC

    Effettivamente costa esattamente il doppio, ma può essere utilizzato anche per supportare l’alimentatore 9v (che non funzionerebbe con L’ups Integrato Raspberry) e magari anche come protezione per sbalzi e mancanza di corrente del PC di casa o del router wifi per eventuali altri dispositivi come antifurto ecc ecc…)

    certo, nel mio caso sarebbe più complesso farcelo stare nel quadro, ma facendo passare 4 cavi si può facilmente risolvere.

    Detto questo, UPS integrato nel PI + cambio regolare della batteria (ricaricabile??) costituisce sicuramente un ottimo compromesso.

    Ora mi studio bene il nuovo script ed in particolare la struttura delle chiamate via rete…

    Grazie!

  19. Sull’APC che hai linkato non mi sembra di vedere che ci sia la porta USB da collegare al pc così da potere monitorare lo stato dell’UPS.

  20. Quello che vedi come presa telefonica termina in realtà come porta USB. Probabilmente serve solo per dare un input che viene intercettato dalla porta USB e gestito dal driver APC.

    In ogni caso stamattina mi si è aperto un mondo per gli UPS PI:

    https://www.amazon.it/gp/product/B00HY8XY40/ref=ox_sc_act_title_1?ie=UTF8&psc=1&smid=A32W3989DZTKZY

    questo ad esempio funziona con un battery pack da 6×1.5 AA (che in totale fanno 9V), ed il connettore è quello di una classica pila rettangolare da 9v che è proprio quella che serve a noi per controllare le elettrovalvole! essendo ricaricabile questa rimarrà sempre attiva nel momento in cui il tutto è alimentato, mentre quando cade la corrente con il SW si può attendere fino all’arrivo al 5% della batteria prima di spegnere EV e sistema nell’ordine.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *