Raspberry Pi – Ús de relé, X10 i detector de moviment

 

En aquest document vam posar en marxa una Raspberry Pi amb unes funcions molt pràctiques que ens poden fer pensar a implementar un sistema de domotica a casa, super senzill i barat. Connectarem d'una banda un relé que ens permetrà commutar circuits com els llums de casa, i de l'altra un sensor de moviment que ens permetrà fer la funció que ens interessi, com per exemple encendre aquests mateixos llums i per tant no haver de donar els llums de la casa mai més =)

 

raspberry-automatització-domèstica-bujarra

 

Controlar un relé amb una Raspberry Pi,

En aquest document per una part, veurem com connectar un relé a una Raspberry per poder controlar circuits. Podent-ne fer servir com a interruptor per controlar certes llums de la casa, el termòstat de la calefacció… En eBay podrem trobar relés de 5V per tancar o obrir circuits de 220V, per 2€ cada mòdul, podem tenir fins a 8 mòduls en un relé per controlar 8 circuits!

 

raspberry-rele-01-bujarra

Us deixo un parell de captures de pantalla amb permís del blog de RSPPI on s'explica també de manera genial com configurar-lo. Aquesta imatge ens mostra a la part dreta els connectors amb la Raspberry, el GND el connectarem a terra, amb l'IN1 controlarem el canal de K1 (IN2 per al K2…) els connectarem a un GPIO; El VCC el connectem als 5V de la Raspberry. A la part esquerra controlarem el circuit on connectarem els cables, si tanquem el circuit entre 1 y 2, el circuit normalment estarà 'obert', si el tanquem entre el 2 i el 3, el circuit normalment estarà 'tancat'.

 

 

raspberry-rele-02-bujarra

I en aquesta imatge veiem un circuit d'exemple de 220V que estarà normalment tancat, mitjançant el GPIO 18 de la Pi el commutarem =)

Ara, instal·larem WiringPi a la Raspberry:

[sourcecode]wget http://project-downloads.drogon.net/files/wiringPi.tgz
tar xfzv wiringPi-xxx.tar.gz
cd wiringPi-xxx
./build[/sourcecode]

Podrem utilitzar els següents comandos d'exemple:

[sourcecode]gpio readall –> Ens mostra l'estat de tots els GPIO.
gpio -g mode 24 out –> Encén GPIO24.
gpio -g mode 24 in –> Apaga el GPIO24.
gpio -g read 24 –> Mostra l'estat, encès 0, apagat 1.[/sourcecode]

 

Connectar un sensor de moviment a una Raspberry Pi,

Per poc més d'1€ podrem comprar en eBay detectores de moviment passiu o PIR que podrem usar per al que vulguem quan detectin un moviment, sigui posar una càmera a gravar o precisament dir-li al relé anterior que encengui un llum.

 

raspberry-pir-02-bujarra

En aquesta imatge veurem el cablejat entre els pins del detector PIR i els GPIO de la Raspberry, connectem el VCC als 5V de la Pi, GND a terra i el OUT a un GPIO de control per llegir mitjançant un script de Python el seu estat. Un cop es detecti un moviment, podrem decidir què volem que passi =)

 

Primer, baixem l'script de Python i el provem:

[sourcecode]wget http://www.raspberrypi-spy.co.uk/archive/python/pir_1.py[/sourcecode]

Modificarem en el fitxer ‘GPIO_PIR = ‘ pel número del GPIO correcte on hàgim connectat l'OUT del sensor PIR.

[sourcecode]sudo python pir_1.py[/sourcecode]

Podrem modificar l'script al nostre gust amb el codi que ens interessi, per exemple el següent executaria 'entrada_enciende.sh'’ en detectar un moviment i encendria la llum durant 5 segons, on tornarà a comprovar si continua havent-hi moviment per deixar la llum encesa o apagar-la:

[sourcecode]…
if Current_State==1 and Previous_State==0:
# PIR s'activa
print " Moviment a l'entrada! encenem la llum i esperem 5 seg"
# Recorda l'estat anterior
Previous_State=1
import subprocess
cmd='/home/pi/entrada_enciende.sh'’
subprocess.call(cmd, shell=True)
# Espera 5 segons
time.sleep(5)
elif Current_State==0 and Previous_State==1:
# PIR ha tornat a l'estat llest
Previous_State=0
print " Llest de nou, no hi ha moviment"
import subprocess
cmd='/home/pi/entrada_apaga.sh'’
subprocess.call(cmd, shell=True)
# Espera 10 mil·lisegons
…[/sourcecode]

Para arrancar aquest script per exemple tots els dies a les 19h i que esté 12h esperant a detectar un moviment (para encertar una luz) podrem usar el nostre cron, con 'crontab-e’ añadiremos la siguiente línea:

[sourcecode]00 19 * * * sudo timeout 12h python /home/pi/detector_entrada_enciende.py[/sourcecode]

 

Protocolo X10,

raspberry-x10-01-bujarra
Si estáis pensant que usar un relé sea quizás muy incomodo por el tema del cableado, lo más sencillo seria usar un sistema inalámbrico basado en X10, un poco menos económico también. Podemos hacernos con un controlador-receptor, per exemple el CM15PRO (o el CM15A o CM19A) de Marmitek por unos 75€ que nos servirá para gestionar los interruptores inalámbricos com el AW12 (interruptor on/off) que venda cada uno a 45€ o un dimmer regulable com el LW12 per uns 49€ encara que també podremos usar altres interruptores o dispositius, clar!

El conexionado del receptor a la raspberry seria mediante USB y la instalación del demonio modchad, los interruptores deberemos configurarlos amb un codi cada uno a més de connectarlos a la red elèctrica com indica en el manual de forma muy sencilla.

Instalamos y compilamos mochad:

[sourcecode]sudo apt-get install libusb-1.0-0-dev
wget -O mochad.tgz http://sourceforge.net/projects/mochad/files/latest/download
tar xf mochad.tgz
cd mochad*
./configure
make
sudo make install[/sourcecode]

Podremos crear un script para apagar o encender un interruptor, pero primero probaremos a encenderlo!

[sourcecode]echo "pl a1 on" | nc localhost 1099[/sourcecode]

En el següent document veurem com manejar des d'una interfície web senzilla per als nostres mòbils o tauletes el control del relé!!!

 

Posts recomanats

Autor

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, no dubtis a contactar amb mi, us intentareu ajudar sempre que pugui, compartir és viure ;) . Gaudir dels documents!!!