E’ passato più di un anno dall’ultima versione rilasciata di piGarden (script bash per la gestione di un impianto di irrigazione basato su Raspberry Pi). Questi mesi trascorsi hanno dato frutto alla versione 0.2 che fa da preludio al rilascio di piGardenWeb, interfaccia web che permetterà la gestione della centralina via browser e smatphone.
Il lavoro su questa versione ha infatti aggiunto la possibilità di dialogare via socket server con altri componenti software. E’ con questa caratteristica che l’applicazione piGardenWeb potrà dialogherà con piGarden permettendo di avere una comunicazione tra i due componenti e quindi poter leggere lo stato sensori, impartire l’apertura/chiusura delle elettrovalvole e gestire le schedulazioni dell’irrigazione.
Oltre all’implementazione del socket server è stato semplificata la gestione dei crontab utilizzati per l’apertura/chiusura delle elettrovalvole, l’inizializzazione della centralina e il controllo dello stato della pioggia. Adesso non è più necessario agire manualmente sul crontab dell’utente ma basta impartire dei semplici comandi tramite piGarden.
Vediamo più in dettaglio quanto detto sopra riguardo i crontab.
# Imposta e rimuove il cron per fare eseguire l'inizializzazione della centralina all'avvio del sistema piGarden.sh set_cron_init piGarden.sh del_cron_init # Imposta e rimuove il cron per avviare il socket server all'avvio del sistema piGarden.sh set_cron_start_socket_server piGarden.sh del_cron_start_socket_server # Imposta e rimuove i cron per il controllo dello stato metereologico dal sensore e servizio online piGarden.sh set_cron_check_rain_sensor piGarden.sh del_cron_check_rain_sensor piGarden.sh set_cron_check_rain_online piGarden.sh del_cron_check_rain_online # Imposta e rimuove il cron per interrompere l'irrigazione in caso di pioggia piGarden.sh set_cron_close_all_for_rain piGarden.sh del_cron_close_all_for_rain # Aggiunge elimina e recupera i cron per l'apertura/chiusura delle zone piGarden.sh add_cron_open alias m h dom mon dow piGarden.sh del_cron_open alias piGarden.sh get_cron_open alias piGarden.sh add_cron_close alias m h dom mon dow piGarden.sh del_cron_close alias piGarden.sh get_cron_close alias
Per esempio, se vogliamo fare aprire l’irrigazione alla zona denominata GIARDINO_POSTERIORE alle ore 20:30 per tutto il mese di giugno, basterà impartire il seguente comando:
piGarden.sh add_cron_open GIARDINO_POSTERIORE 30 20 * 6 *
i valori “30 20 * 6 *” formano l’orario di schedulazione da impartire al cron.
Volendo aggiungere un’ulteriore schedulazione della stessa zona basterà impartire un altro comando simile a quello sopra variando l’orario di apertura.
Riguardo il socket server, l’avvio manuale, l’interruzione e il riavvio forzato può essere eseguito come segue
piGarden.sh start_socket_server piGarden.sh stop_socket_server piGarden.sh start_socket_server force
Installazione
La procedura di installazione è simile a quella descritta nel post Impianto di irrigazione con Raspberry Pi: piGarden, lo script di gestione (quinta parte), rimando quindi a questo per maggiori informazioni. L’unica differenza è l’aggiunta di alcune dipendenze, infatti adesso piGarden ha bisogno di alcuni pacchetti aggiuntivi installabili come segue:
sudo apt-get install grep sed ucspi-tcp
Configurazione
Anche per la configurazione rimando al post Impianto di irrigazione con Raspberry Pi: piGarden, lo script di gestione (quinta parte). L’unica cosa di rilevanza aggiunta al file di configurazione sono i parametri relativi al socket server:
# Indirizzo ip sul quale il socket server rimane in ascolto. E' possibile impostare il valore 0 perché rimanga in ascolto su tutti gli indirizzi ip del sistema TCPSERVER_IP="127.0.0.1" # Porta tcp su cui il socket server rimane in ascolto TCPSERVER_PORT="8084"
Oltre a quanto sopra sono stati aggiunte le definizioni dei percorsi dei comandi esterni utilizzati nello script:
# Percorso di tr TR="/usr/bin/tr" # Percorso di cut CUT="/usr/bin/cut" # Percorso tcpserver TCPSERVER="/usr/bin/tcpserver" # Percorso cron CRONTAB="/usr/bin/crontab" # Percorso grep GREP="/bin/grep" # Percorsp sed SED="/bin/sed" # Percorso readlink READLINK="/bin/readlink"
Con questo è tutto, seguirà il post relativo all’installazione di piGardenWeb, interfaccia web per gestire la centralina.