Irrigare il giardino con la Fonera

Con un semplice circuito e un altrettando semplice script è possibile controllare dei carichi A/C (corrente alternata) con la nostra Fonera.
In questo post ho spiegato alcune cose riguardo la Fonera, ora le metteremo in pratica.
Per controllare carichi in C/A o A/C che dir si voglia, ho utilizzato dei Triac, disaccoppiati dalla Fonera tramite dei Fototriac.
Il fototriac che ho utilizzato è il MOC3020, per fare parte del circuito ho seguito le application notes nel datasheet.
Per pilotare il led del fototriac ho utilizzato un 7407, un “hex buffer driver”.
Comunque ecco qui lo schema elettrico.
Schema elettrico
Una volta costruita la scheda, l’ho collegata alla Fonera, GND (Ground), VCC (5 Volt, a monte del regolatore a 3.3volt), e i 3 Pin di I/O ( me ne servivano 3 e 3 ne ho usati).
Ecco alcune foto
i componenti utilizzati prima del montaggio scheda di pilotaggio carico in corrente alternata scheda di pilotaggio carico in corrente alternata scheda di pilotaggio carico in corrente alternata collegata alla Fonera particolare collegamento pin di I/O
Dopo aver acceso la Fonera e caricato il driver GPIO, è possibile controllare, programmando opportunamente i piedini di I/O, i triac, permettendo o meno lo scorrere della corrente… in parole povere abbiamo 3 interruttori comandabili a software della Fonera.
Scrivendo ‘0’ nella porta di I/O che controlla un particolare triac,la corrente scorre (accensione), ‘1’ la corrente non scorre (spegnimento).
Per l’irrigazione, ogni canale mi pilota un elettrovalvola, ho quindi realizzato un rubinetto comandato a software !
Per comandare le singole elettrovalvole, ho utilizzato questo scriptino, l’ho chiamato “skizza” 🙂

#!/bin/sh
usage () {
echo "Usage skizza <sx|dx|c|all> <on|off>"
exit 1
}
if [ ! $# = 2 ] ; then
    usage
fi
# 3,4,1 sx,dx,cx
case $1 in
    "sx" ) port=3;;
    "dx" ) port=4;;
    "c" ) port=1;;
    "all" ) port=99;;
    * ) usage;;
esac

case $2 in
    "on" ) bit=0;;
    "off" ) bit=1;;
    * ) usage;;
esac

#
#bit=1
if grep "^`date +%d/%m/%y`$" /etc/noskiz ; then
bit=1
echo "no-skiz day"
fi
echo  $bit > /proc/gpio/${port}_out
echo  1 > /proc/gpio/${port}_dir

Il file /etc/noskiz contiene le date nelle quali non va fatta l’irrigazione
Es.

#gg/mm/aa
30/04/07
01/05/07
02/05/07

Il tutto ha trovato posto in una scatola di derivazione “a prova di acqua”…
La Fonera e la scheda nella scatola di derivazione interno della Scatola di Derivazione interno della Scatola di Derivazione
… ed è controllato dal crond …

root@OpenWrt:~# crontab -l
10 * * * * /usr/sbin/ntpclient -c 1 -s -h 192.168.0.99
# mattino
# destra
00 06 * * * /usr/bin/skizza dx on
05 06 * * * /usr/bin/skizza dx off
# sinistra
10 06 * * * /usr/bin/skizza sx on
15 06 * * * /usr/bin/skizza sx off
# centro
20 06 * * * /usr/bin/skizza c on
25 06 * * * /usr/bin/skizza c off

# sera
15 20 * * * /usr/bin/skizza c on
20 20 * * * /usr/bin/skizza c off
20 20 * * * /usr/bin/skizza dx on
25 20 * * * /usr/bin/skizza dx off
25 20 * * * /usr/bin/skizza sx on
30 20 * * * /usr/bin/skizza sx off

Nelle foto si può vedere la Fonera nuda :-), la scheda di comando carichi, il bel trasformatore toroidale 220 -> 24 per le elettrovalvole..
Ho usato un Breaker Aeronautico che mi avanzava come fusibile e 3 interruttori che ho messo in parallelo ai Triac per irrigare manualmente.

Per comodità ho copiato i driver gpio in questa pagina.
Dentro proc_gpio cìè il driver compilato per Openwrt.