piGarden v 0.3.1: aggiunto supporto sperimentale per elettrovalvole mono-stabili

piGarden supporto per elettrovalvole monostabili

Con la versione 0.3.1 di piGarden il nostro impianto di irrigazione gestito da Raspberry Pi guadagna il supporto sperimentale per la gestione delle elettrovalvole mono-stabili.

Chi ha seguito questa serie di post dedicati alla realizzazione di un impianto di irrigazione pilotato da Raspberry Pi sa benissimo che avevo concepito la centralina in modo da comandare elettrovalvole bistabili, ovvero che non necessitano di una continua alimentazione in fase di irrigazione.

Nel tempo diversi utenti hanno chiesto di aggiungere il supporto per le elettrovalvole più classiche ovvero le mono-stabili, ovvero che necessitano di un’alimentazione continua per mantenere lo stato di apertura. Mi sono deciso quindi ad aggiungere il supporto anche per questo tipo di elettrovalvole e da qualche giorno è disponibile nella versione 0.3.1 di piGarden. Dato che alcuni utenti, tra cui @Claudio, mi hanno confermato il buon funzionamento, mi sono deciso scrivere questo post per ufficializzarne il supporto.

Con le elettrovalvole mono-stabili non servirà più la batteria a 9V che veniva utilizzata per impartire l’impulso di apertura/chiusura delle elettrovalvole come veniva spiegato in dettaglio in questo post. Sarà invece necessario che vi dotiate di un alimentatore/trasformatore che possa fornire l’alimentazione a corrente continua (generalmente 24V, 12V o 9V) richiesta dalle elettrovalvole mono-stabili che deciderete di utilizzare.

Differentemente da come avveniva per le bistabili, per quelle mono-stabili non sarà necessario l’utilizzo di due relè dedicati all’inversione di polarità, ma sara sufficiente collegare il polo positivo del vostro alimentatore all’ingresso dei relè che comanderanno l’apertura/chiusura dell’elettrovalvole. Il polo negativo lo potrete invece collegare direttamente al rispettivo contatto delle elettrovalvole.

Schema centralina irrigazione con valvole monostabili e raspberry pi

Nello schema qui sopra ho riassunto quanto detto sopra e possiamo vedere il collegamento dell’alimentatore ai relè e alle elettrovalvole, e  possiamo notare i due relè non più usati per l’inversione di polarità usati invece per le elettrovalvole bistabili.

Per fare si che piGarden attivi il supporto per le elettrovalvole mono-stabiliti baserà variare il file di configurazione posto in /etc/piGarden.conf impostando il valore 1 alla variabile EV_MONOSTABLE come segue e riavviare il vostro Raspberry:

EV_MONOSTABLE=1

Per ora è tutto, se avete dubbi o domande non esitate a lasciare un commento.

30 pensieri su “piGarden v 0.3.1: aggiunto supporto sperimentale per elettrovalvole mono-stabili

  1. Confermo che funziona perfettamente.
    chiaramente ho rivisto tutte le connessioni e con una scheda a 4 relè piloto 4 elettrovalvole/zone.
    domanda: c’è modo di inviare i log tramite email con una frequenza di invio giornaliera?
    siccome il sistema “lavora” di notte, mi sarebbe molto utili per capire se ha bagnato oppure no.
    grazie

  2. Ciao @Cludio,
    grazie del tuo feedback.

    Per l’invio dei log attualmente piGarden non integra questa funzione, magari nel futuro potrebbe essere una caratteristica da potere implementare.
    Ti puoi però affidare direttamente al nostro raspberry per l’invio della mail.
    Per fare questo innanzitutto devi installare i pacchetti mailutils e ssmtp.
    sudo apt-get install mailutils ssmtp
    devi poi configurare ssmtp con i parametri smtp del tuo server di posta modificando il file /etc/ssmtp/ssmtp.conf. Di seguito ti riporto la configurazione per eseguire l’invio da un account gmail:
    root=postmaster
    mailhub=smtp.gmail.com:587
    hostname=raspberry
    AuthUser=la_tua_mail@gmail.com
    AuthPass=la_tua_password
    FromLineOverride=YES
    UseSTARTTLS=YES

    Fatto questo sei pronto per eseguire l’invio dei log impartendo il seguente comando dalla shell:
    cat /home/pi/piGarden/log/piGarden.log | mail -s "Log piGarden" destinatario@email.com
    Oppure se vuoi inviare soltanto i log relativi all’apertura/chiusura delle elettrovalvole puoi accodare un grep in questo modo
    cat /home/pi/piGarden/log/piGarden.log | grep Solenoid | mail -s "Log piGarden" destinatario@email.com

    A questo punto puoi inserire un dei due comandi sopra in un cron per schedulare l’invio all’orario che preferisci.

    Ciao.

  3. Gran bel lavoro,ti confermo anche io il funzionamento con le valvole monostabilil,e la grande utilità “almeno per me ” dell avvio ritardato,un solo appunto se possibile in futuro poter utilizzare un tempo minimo di irrigazione inferiore ai 30 minuti,l’ideale sempre secondo me sarebbe 10 minuti.
    Grazie e ancora complimenti

  4. Ciao @stefano,
    grazie per il tuo feedback.
    Ho appena aggiunto i tempi di irrigazione che suggerivi. Ora dalla funzione di avvio ritardato è possibile impostare la durata dell’irrigazione anche per 10, 15 e 20 minuti, oltre a quelli già presenti.
    Se aggiorni piGardenWeb all’ultima versione avrai questa modifica funzionante. Per eseguire l’aggiornamento ti basta impartire il comando git pull da dentro la cartella piGardenWeb.
    Attenzione però, perché per funzionare è necessario che sia installata la versione 0.4.0 o superiore di piGarden.
    Per aggiornare piGarden all’ultima versione puoi seguire quanto descritto in questo post.

    A presto.

  5. Ciao lejubila, sono molto interessato al tuo progetto!!
    Devo realizzare il mio impianto di irrgazione e volevo sapere se il tuo sistema accetta connessioni in ingresso!!
    Ti spiego perchè: abito in una zona dove l’acqua esce naturalmente da sotto terra con una portata di circa 1500 litri ora che sfrutto, tramite una pompa di calore acqua-acqua, per riscaldare casa e l’acqua sanitaria. Tale pompa quando quando è in funzione consuma circa 1000 litri ora di conseguenza se nello stesso momento è attiva anche l’irrigazione rischiodi trovarmi lato pompa dic alore senz acqua e andrebbe in blocco…
    La mia idea è quella di mandare un segnale al raspberry che gli dice che la pompa di calore è attiva e di conseguenza di mettersi in standby per poi riprendere da dove si è fermato, una volta che la pompa di calore si è fermata.
    Dalla pompa di calore posso tirare fuori il segnale senza problemi..
    Ciao
    Marco

  6. Ciao @Marco,
    piGarden utilizza un socket server per comunicare con l’interfaccia web (piGardenWeb).
    Il socket server accetta connessioni in ingresso, possono essere impartiti diversi tipi di comandi:
    – interrogazione dello stato del sistema dove tra i tanti valori è presente anche lo stato delle elettrovalvole
    – apertura / chiusura elettrovalvole
    – creazione schedulazioni di apertura / chiusura elettrovalvole
    – altro

    Quindi direi che con un po di ingegno potresti interrogare il sistema da remoto e vedere se ci sono elettrovalvole aperte e a quel punto impartire il comando della chiusura.

    Eventuali altre funzioni possono essere implementate i futuro.

    Se hai altre domande non esitare 😉

  7. Ciao, grazie mille per la risposta!!
    Forse mi sono spiegato male!! Volevo sapere se è possibile tramite un contatto aperto chiuso che arriva dalla pompa di calore far mettere in standby il sistema per poi riprendere da dove si è fermato una volta che il contatto viene riportato in condizioni di normalità!!
    Se pensi che sia possibile potresti aiutarea realizzarlo?
    Ciao
    Marco
    Inviato da iPhone

  8. Ciao @marco, secondo me puoi farlo realizzando l’impianto nella versione con elettrovalvole mono-stabili.
    Fatto questo andrebbe messo a monte dell’alimentatore che accende le elettrovalvole un relè che possa spengerlo e accenderlo.
    Quando la tua pompa chiude il contatto andrebbe fatto aprire il relè in modo da togliere l’alimentazione alle elettrovalvole.
    Per fare questo è possibile collegare un’uscita a 3.3v del Raspberry su un gpio in entrata comandato dal contatto della tua pompa. Un schema da cui prendere spunto potrebbe essere questo.
    Il tutto sarebbe comandato da uno script che controlla lo stato del gpio collegato alla pompa e in base a questo fa aprire o chiudere il relè.
    Spero di non essere stato troppo criptico e di averti dato uno spunto da cui partire.

  9. Ciao grazie mille per la tua risposta!!
    Avevo pensato anch’io ad una cosa simile alla tua ma poi mi sono accorto che in realtà il sistema non viene messo in standby perché le valvole vengono spente ma tutto il sistema rimane acceso e di conseguenza i timer che vengono impostati continuano a girare!!

  10. Ciao @Marco,
    effettivamente hai ragione, in questo modo il sistema non viene messo in standby. Il problema è che piGarden si basa sul cron per fissare l’avvio e lo stop dell’irrigazione, in questo modo diventa difficile realizzare congelamento del sistema. Una soluzione potrebbe essere quella di utilizzare un singolo script per gestire il periodo di irrigazione, dove il tempo di attesa tra avvio e stop dell’irrigazione verrebbe gestita con un loop. In questo loop ogni iterazione verrebbe fatto uno sleep di un secondo e controllato l’eventuale stato della pompa. Se la pompa venisse trovata in esecuzione il loop verrebbe messo in attesa.
    Di seguito riporto un pseudo codice che potrebbe rappresentare lo script:

    piGarden.sh open Zona
    tempoIrrigazione=600 # Tempo di irrigazione in secondi
    i=0
    while [ $i -lt $tempoIrrigazione ]
    do
    # Attende un secondo finché la pompa è in funzione
    while [ $(pompaInFunzione) -eq 1 ]
    do
    sleep 1
    done

    sleep 1
    i=$[$i+1]
    done
    piGarden.sh close Zona

    In questo modo ogni volta che deve partire l’irrigazione della zona andrebbe eseguito questo script.
    L’inconveniente è che in questo modo si perderebbe l’integrazione con le schedulazioni gestite direttamente da piGarden e piGardenWeb.

  11. Ciao Lujubila spero mi puoi aiutare. Ho usato una elettrovalvola monostabile pilotata da un relè. Il pin IN del relè l’ho collegato al GPIO17 quindi nel file configurazione ho inserito EV_MONOSTABLE=1 e ho lasciato EV1_GPIO=17 ma stranamente quando avvio il raspberry attacca in automatico anche il relè e di conseguenza l’elettrovalv. Ho provato a vedere se era un problema di collegamenti sbagliati ma non mi sembra.Ho collegato il negativo dell’alimentazione diretto al negativo dell’elettrovalvola e il positivo dell’alimentazione al COM del relè e all’NO del relè ho collegato il positivo dell’elettrovalvola .
    Sembrerebbe come se il pin Gpio17 sia sempre alto.
    Grazie mille
    Domenico

  12. Ciao @Domenico,
    prova a vedere lo stato del gpio 17 con il comando
    gpio readall
    Non so che modello hai di raspberry ma ci sono alcuni gpio che per default hanno lo stato ad 1 sin da quando accendi il raspberry.
    E’ per questo che ho inserito nel crontab il comando “piGarden.sh init” che inizializza le elettrovalvole e le fa chiudere.
    Comunque puoi provare a collegare il positivo dell’alimentazione all’altro contratto del relè (NC) al posto di quello attuale (NA).
    Se così funziona e però noti che l’elettrovalvola funziona al contrartio (cioè si accende dando il comando close e si chiude dando il comando open), devi cambiare il valore della variabile RELE_GPIO_CLOSE ipostandolo a 1 e RELE_GPIO_OPEN a 0.

    Fammi sapere se riesci a risolvere.

  13. Grazie mille per tutte le info del caso!!
    Pensavo fosse una cosa più semplice da realizzare :-(!!
    Magari mantenendo anche le schedulazioni!!
    Grazie mille comunque!!

  14. Ciao Lejubila spero di aver risolto. Il pin al mio comando di open e close funzionava benissimo e con un tester ho potuto constatare che c’è la variazione di voltaggio da 0 a 1 e viceversa. Il problema è del relè che apre a prescindere dall’ingresso IN. Penso si sia bruciato. Ne ho comprato un’altro a breve mi arriverà speriamo bene. Ti volevo chiedere una cortesia ho un problemino con la parte della sicurezza TCP del PiGardenWeb. Pur avendo effettuato le modifiche per la sicurezza del TCP ai file configurazione e al file .env come hai scritto nella guida stranamente quando accedo all’interfaccia web di piGardenWEB non mi chiede i dati per il login. Quale potrebbe essere il problema (io ho lasciato TCP port alla 8084 e come indirizzo TCP “0”)?
    Grazie per la tua disponibilità.

  15. Ciao @Domenico,
    non ho capito bene ma quando accedi a piGardenWeb ti compare una pagina bianca senza mostrare l’interfaccia web?
    oppure ti viene mostrata la pagina web senza errori apparenti se non che non viene mostrata la pagina di login? Se così forse probabilmente hai salvato la password in fase di login precedente e quindi non ti viene richiesto di inserire nuovamente i dati.
    Nel primo caso invece andrebbe controllato i log nel file /var/log/nginx/error.log.

    Fammi sapere.

  16. Ciao,quando accedo a piGardenWeb mi mostra l’interfaccia web senza chiedermi nessuna password. Quando poi clicco su accedi mi esce la schermata per il login della dashboard.
    Ho impostato il tcp_user e il tcp_password sia nel file config sia nel .env.

  17. Ciao @Domenico,
    forse stai confondendo l’autenticazione del soket server con quella dell’interfaccia web.
    Andiamo con ordine.
    Quando accedi all’interfaccia web ti compare la home di piGarden che ti fa vedere lo stato delle elettrovalvole e delle condizioni meteo, da qui non puoi fare altro che osservare senza potere azionare le elettrovalvole proprio perché la pagina è pubblica e chiunque sia collegato sulla rete locale può vederla. Per aprire, chiudere o definire le schedualazioni delle elettrovalvole devi invece loggarti con l’apposita pagina di login. Per loggarti hai bisogno di un utente e password che dovrai definire eseguendo la procedura di registrazione del primo utente cliccando link in alto a destra “Registrati”.
    Registrati
    Una volta registrato l’utente puoi disabilitare il link di registrazione in modo che nessun altro possa registrarsi liberamente.
    E’ tutto spiegato nel post Impianto di irrigazione con Raspberry Pi: piGardenWeb, il pannello web di amministrazione (settima parte)

    Per quanto riguarda invece le variabili da definire nel file .env di piGardenWeb e nel file di configurazione di piGarden, riguardano la sicurezza di comunicazione dei due componenti tramite soket server. Si hai installato piGarden e piGardenWeb sul solito raspberry puoi anche evitare di definirle.

    Spero avere chiarito i tuoi dubbi.
    Se c’é qualcosa che non ti torna chiedi pure.

  18. Buongiorno,grazie per la spiegazione tutto chiarito :). Funziona tutto alla perfezione.

  19. Ciao, scusa sto provando a realizzare qualcosa di simile ma non capisco se l elettrovalvola monostabile è 24vdc o 24vac. Mi potresti dare un aiuto? Tra le altre cose quali caratteristiche per il trasformatore, tipo da quanti watt?
    Grazie
    Rosario

  20. Ciao @Rosario
    io non ho usato elettrovalvole mono-stabili. Magari qualcuno mi correggerà ma secondo me è 24vdc.
    Comunque dovresti se sai il modello non dovresti avere difficoltà a trovare le specifiche.

  21. Ciao @Piero,
    personalmente non ho mai usato elettrovalvole mono-stabili quindi non ho un’esperienza diretta.
    Magari può consigliarti con più precisione qualcun’altro che ha realizzato l’impianto con questo tipo di elettrovalvole.
    Comunque da quello che posso vedere l’elettrovalvola che hai scelto tu è una 24V AC (corrente alternata). Personalmente ne sceglierei una con alimentazione a corrente continua (DC) in modo facilitarne l’alimentazione con un alimentatore sempre a corrente continua.
    In più a complicare il tutto vedo che questa elettrovalvola è una 24V con tipo di pilotaggio a 9V Latching, che sinceramente non so cosa voglia dire.
    Magari qualcuno che ci legge saprà darci maggiori informazioni anche su questo aspetto.

  22. Ciao, complimenti per il progetto!
    Sto mettendo in piedi un sistema con le valvole monostabili e devo dire che funziona tutto molto bene.
    Sto inoltre scrivendo un servizietto Python che controlli che tutto funzioni correttamente ed in caso di errore mi mandi una notifica via Telegram.
    In particolare vorrei evitare che un’elettrovalvola rimanga aperta per tutto il giorno.
    In caso ti venga in mente un’idea per integrare questa cosa nel tuo progetto fammi sapere!

  23. Ciao @Daniel,
    mi piacerebbe sapere come eseguirai il controllo su eventuali elettrovalvole rimaste aperte.
    Una volta realizzato il tuo servizio in Python sarebbe bello se lo condividessi in modo da prendere spunto dal tuo codice per un’eventuale integrazione in piGarden.

  24. Ciao lejubila, volevo farti i complimenti per il bellissimo lavoro e le ottime guide di installazione e configurazione. Ho realizzato il mio impianto qualche giorno fa e sembra funzionare tutto alla perfezione.
    So che non è questo il post più recente ma volevo che il commento fosse maggiormente visibile a chi, come me, stava cercando info riguardo al funzionamento del sistema con elettrovalvole mono-stabili.
    La prima informazione che volevo condividere è che, da quel che so, le elettrovalvole mono-stabili sono praticamente tutte alimentate a 24V AC, ne ho di 3 tipi diversi, e anche andando a comprarle nei negozi di fai da te si trovano solo a 24V AC. Per me la comodità è stata quella di riutilizzare il trasformatore a 24V AC della centralina precedente (che chiaramente alimentava anche le EV), però controllate sempre l’etichetta del trasformatore per conferma.
    La seconda informazione che mi piacerebbe condividere invece riguarda il modulo dei relè: utilizzando 6 EV mono-stabili ho pensato che mi sarebbero bastati 6 relè. Non ho trovato alcun modulo compatibile con 6 relè, ho però trovato questo:

    https://www.amazon.it/SunFounder-Modulo-Channels-Module-Arduino/dp/B00DR9SE4A/ref=sr_1_1?s=electronics&ie=UTF8&qid=1525941796&sr=8-1&keywords=SunFounder+Lab+Modulo+8+Relè+5V+8+Channels+Relay+Module+for+Arduino

    Ha 8 relè in unico modulo e costa solo 1€ in più rispetto a quello con 4 relè, un buon modo per risparmiare qualche euro e due pin GPIO (utilizzerete una volta sola VCC e GND).
    Spero di essere stato d’aiuto e ti faccio di nuovo i miei complimenti lejubila per il lavoro e per l’impegno che devi aver messo nel progetto.

  25. Ciao Lejubila,
    rieccomi dopo tanto tempo. Mi stavo aggiornando sugli ultimi sviluppi di piGarden e ho visto l’aggiornamento ad OpenWeatherMaps. Leggendo il sito di OWM ho visto che nel report sono indicate anche ora di alba e di tramonto e mi è venuta questa idea: perchè non dare la possibilità di gestire 2 tipi di oggetti, ovvero Elettrovalvole e “altri servizi”?
    Con la funzione di alba/tramonto ed una scheda relè dedicata (non mi fiderei a far girare il tutto a 220v sulla stessa dell’irrigazione) si potrebbe implementare un interruttore Astronomico per accendere/spegnere la luce in giardino; inoltre, gestito come semplice interruttore si potrebbe accendere/spegnere le luminarie natalizie, la pompa della fontana, la pompa di ricircolo del laghetto e così via.

    Un piGarden a tutto tondo per il giardino insomma.

    Grazie,
    Marco

  26. ciao a tutti,
    mi sono appassionato a questo progetto e dopo aver letto il più possibile sul blog sto per acquistare il materiale e nonostante la mia scarsissima esperienza sul rasp spero di riuscire ad assemblare il tutto.
    se permettete un paio di domande:
    1 su quali versioni di raspberry gira l’interfaccia ?
    2 sarei orientato sulle valvole monostabili soprattutto per ovviare ai problemi di scarica batteria e mancanza rete, se non ho capito male senza corrente le valvole si chiudono, ma cosa succede al ritorno della luce ? il rasp si riavvia e tutto torna normale ?
    3 per vari motivi invece di tenere le valvole vicine in un gabbiotto con le varie linee, vorrei avere una “dorsale” con le valvole vicine alle varie zone da irrigare… questo comporterebbe avere lunghi cavi di controllo della centralina alle valvole puo essere un problema ?
    grazie per l’aiuto

  27. Ciao @stefano,
    rispondo alle tue domande.
    piGarden è nato sulla prima versione del Raspberry B, quello con 512MB di ram. Penso quindi che non ci siano problemi a farlo girare sulle altre versioni più recenti.
    In caso di interruzione di corrente le elettrovalvole bistabili mantengono il loro stato, quindi se sono aperte continueranno a fare irrigare anche in mancanza di alimentazione. Al contrario quelle mono stabili non essendo eccitate si chiuderanno.
    Al ritorno della corrente il raspberry avviandosi eseguirà l’inizializzazione di piGarden il quale provvederà a chiudere tutte le elettrovalvole configurate sul sistema.
    Portare i cavi di alimentazione vicino alle elettrovalvole non penso sia un problema, ma su questo punto forse può risponderti qualcuno più esperto di me.

Lascia un commento

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

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.