piGarden 0.2 – Easter egg

piGarden Easter egg

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.

Lascia un commento

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