Raspberry PI e Giardinaggio

Tra le mie passioni, ultimamente, si sta rafforzando quella per il giardinaggio.

Il mio trasferimento in una nuova abitazione nel centro di Roma mi ha permesso di "coltivare" questa nuova attività sfruttando al meglio un terrazzo di una 50ina di mq.

Seppur il momento dell'annaffiatura possa essere considerato molto zen, la routine romana non va molto d'accordo con eventi ripetitivi (non si può mai essere certi dell'orario in cui si tornerà a casa, vero ATAC? :D) perciò, dopo le prime settimane di attività manuale, ho inseguito la strada della micro irrigazione.

Mi sono recato presso un Leroy Merlin e ho acquistato un semplice timer da giardino dell'Aqua Flow PNR11  e un po' di raccordi idraulici per allestire il mio sistema. (qui il manuale di istruzioni se vi dovessero servire)

Timer Aqua Flow

Timer Aqua Flow

Piacevolmente sorpreso dal tempo richiesto dall'installazione del sistema, ho testato il tutto per un paio di mesi con estrema soddisfazione.

Le ferie si avvicinano e ragionavo riguardo ad un meccanismo per ottimizzare l'annaffiatura nelle giornate di pioggia o maltempo.
Guardando meglio il timer acquistato, ho notato la presenza di un ingresso di inibizione annaffiatura situato nella zona inferiore.

Ho così partorito l'idea di collegare il raspberry pi che già utilizzavo quotidianamente come "pvr/allarme casa/media center" al sistema di annaffiatura.

Pensavo ad un sistema avente queste componenti:

  • raspberry pi scarica le informazioni meteo
  • raspberry pi collegato ad un relè
  • relè collegato al timer di giardinaggio

Presto fatto.

Come relè ho utilizzato un semplicissimo relè doppio canale a 5V che già usavo per il sistema di allarme. (acquistato da SainSmart, ma lo potete tranquillamente trovare anche su Amazon o Ebay)

Relè doppio canale 5V

Relè doppio canale 5V

Dal lato software, ho creato un piccolo scriptino avviato da cron una volta al giorno che acquisisce le informazioni meteo da Wunderground.com (è necessario creare un account gratuito per usufruire delle API).

import urllib2
import json

from datetime import date, timedelta

h = urllib2.urlopen('http://api.wunderground.com/api/chiave/conditions/q/IT/Rome.json')
json_string = h.read()
parsed_json = json.loads(json_string)

rain = parsed_json['current_observation']['precip_today_metric']

out_file = open("/tmp/garden","w")

if rain == "0":
    out_file.write("1\n")
else:
    out_file.write("0\n")

out_file.close()
h.close()

Come vedete lo script genera in output un file che conterrà il valore 0 o 1. Questo valore verrà girato semplicemente tramite un comando bash ad un GPIO del Raspberry che andrà poi ad attivare uno dei 2 relè della scheda precedentemente menzionata.

Un esempio di implementazione bash della movimentazione dei GPIO potrebbe essere:

echo "23" > /sys/class/gpio/export
echo "1" > /sys/class/gpio/gpio23/active_low
echo "out" > /sys/class/gpio/gpio23/direction
echo "0" > /sys/class/gpio/gpio23/value

while [ 1 ];
do
        sleep 5
        if [ -e "/tmp/garden" ]; then
                garden=$(cat /tmp/garden)
                if [ $garden == "1" ]; then
                        echo "1" > /sys/class/gpio/gpio23/value
                else
                        echo "0" > /sys/class/gpio/gpio23/value
                fi
        fi
done

Chiaramente era possibile movimentare i GPIO direttamente dallo script in python, ma avendo già implementando il sistema di allarme in bash, ho preferito adottare questo tipo di soluzione.

A questo punto rimane solo il collegamento tra relè e timer.

E' necessario un jack audio da 2,5 (anche stereo va benissimo) che io ho preso in prestito da un auricolare inutilizzato ricevuto in dote dopo una visita ai musei vaticani.

Auricolari Musei Vaticani

Tagliando e spelando il jack è necessario saldare i 2 cavi alle due estremità.

Ora, se tutto è stato realizzato per il meglio, quando il relè si attiverà il timer avrà il consenso per annaffiare (potete provare il sistema diminuendo al minimo la frequenza e la durata dal timer).

Happy hacking e un buon pollice verde a tutti!

Work in progress

connessione jack