Lampone Pi – Uso del relè, X10 e rilevatore di movimento

 

In questo documento lanceremo un Raspberry Pi con alcune funzioni molto pratiche che possono farci pensare di implementare un sistema domotico, Super semplice ed economico. Da un lato, collegheremo un relè che ci permetterà di commutare circuiti come le luci di casa, e dall'altro un sensore di movimento che ci permetterà di svolgere la funzione che ci interessa, come accendere quelle stesse luci e quindi non dover più accendere le luci in casa =)

 

lampone-domotica-bujarra

 

Controllo di un relè con un Raspberry Pi,

In questo documento, da un lato,, Vedremo come collegare un relè a un Raspberry per poter controllare i circuiti. Puoi usarlo come interruttore per controllare alcune luci della casa, Il termostato del riscaldamento… In eBay possiamo trovare relè da 5 V per chiudere o aprire circuiti a 220 V, a 2€ a modulo, Possiamo avere fino a 8 Moduli in un relè per il controllo 8 Circuiti!

 

Lampone-Rele-01-Bujarra

Vi lascio un paio di screenshot con il permesso dal blog di RSPPI dove viene anche spiegato in modo eccellente come configurarlo. Questa immagine ci mostra sul lato destro i connettori con il Raspberry, il GND che metteremo a terra, con l'IN1 controlleremo il canale K1 (IN2 per K2…) li collegheremo a un GPIO; Il VCC è collegato ai 5V del Raspberry. Sul lato sinistro controlleremo il circuito dove collegheremo i fili, Se chiudiamo il circuito tra 1 e 2, Il circuito sarà normalmente "aperto", Se lo chiudiamo tra il 2 E la 3, Il circuito sarà normalmente "chiuso".

 

 

Lampone-Rele-02-Bujarra

E in questa immagine vediamo un esempio di circuito a 220V che normalmente sarà chiuso, tramite GPIO 18 del Pi greco lo faremo =)

Ora, installeremo WiringPi sul Raspbeyry:

[Codice sorgente]WGET HTTP://project-downloads.drogon.net/files/wiringPi.tgz
tar xfzv wiringPi-xxx.tar.gz
cablaggio cdPi-xxx
./costruire[/Codice sorgente]

Possiamo utilizzare i seguenti comandi di esempio:

[Codice sorgente]Buon gioco readall –> Elimina lo stato di tutti i GPIO.
Modalità GPIO -G 24 Cambio –> Attiva GPIO24.
Modalità GPIO -G 24 in –> Spegni GPIO24.
GPIO -G Lettura 24 –> Ottenere lo stato, su 0, spento 1.[/Codice sorgente]

 

Collega un sensore di movimento a un Raspberry Pi,

Per poco più di 1€ possiamo acquistare a eBay rilevatori di movimento passivi o PIR che possiamo usare per quello che vogliamo quando rilevano un movimento, Che si tratti di mettere una telecamera per registrare o anche di dire al relè precedente di accendere una luce.

 

Lampone-PIR-02-Bujarra

In questa immagine vedremo la connessione tra i pin del rivelatore PIR e il GPIO del Raspberry, colleghiamo il VCC ai 5V del Pi, GND a terra e l'OUT a un GPIO di controllo per leggerne lo stato utilizzando uno script Python. Una volta rilevato un movimento, Possiamo decidere cosa vogliamo che accada =)

 

Primo, abbiamo scaricato lo script Python e l'abbiamo testato:

[Codice sorgente]WGET HTTP://www.raspberrypi-spy.co.uk/archive/python/pir_1.py[/Codice sorgente]

Modificheremo nel file 'GPIO_PIR = ‘ dal numero GPIO corretto a cui abbiamo collegato l'OUT del sensore PIR.

[Codice sorgente]sudo python pir_1.py[/Codice sorgente]

Saremo in grado di modificare lo script a nostro piacimento con il codice che ci interessa, Ad esempio, il successivo eseguirà 'entrada_enciende.sh’ quando si rileva un movimento e si accende la luce durante 5 Secondi, dove controllerà di nuovo se c'è ancora movimento per lasciare la luce accesa o spegnerla:

[Codice sorgente]…
se Current_State==1 e Previous_State==0:
# Il PIR viene attivato
Stampare " Movimento all'ingresso! Accendiamo la luce e aspettiamo 5sec"
# Registra lo stato precedente
Previous_State=1
Sottoprocesso di importazione
cmd='/home/pi/entrada_enciende.sh’
sottoprocesso.chiamata(Cmd, shell=Vero)
# Aspettare 5 Secondi
tempo.sonno(5)
elif Current_State==0 e Previous_State==1:
# Il PIR è tornato allo stato pronto
Previous_State=0
Stampare " Di nuovo pronto, Non c'è movimento"
Sottoprocesso di importazione
cmd='/home/pi/entrada_apaga.sh’
sottoprocesso.chiamata(Cmd, shell=Vero)
# Aspettare 10 Millisecondi
…[/Codice sorgente]

Per avviare questo script, ad esempio, ogni giorno alle 19:00 e sono 12 ore in attesa di rilevare un movimento (Per accendere una luce) Possiamo usare il nostro cron, con 'crontab -e’ Aggiungeremo la seguente riga:

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

 

Protocollo X10,

Lampone-X10-01-Bujarra
Se stai pensando che usare un relè è forse molto scomodo a causa del problema del cablaggio, il più semplice sarebbe utilizzare un sistema wireless basato su X10, anche un po' meno economico. Possiamo ottenere un controller-ricevitore, ad esempio il CM15PRO (o il CM15A o CM19A) da Marmitek per circa 75€ che ci aiuterà a gestire interruttori wireless come l'AW12 (Interruttore di accensione/spegnimento) che costa 45€ l'uno o un dimmer regolabile come l'LW12 a circa 49€ anche se possiamo utilizzare anche altri interruttori o dispositivi, Certo!

Il collegamento del ricevitore al raspberry avverrebbe tramite USB e l'installazione del demone modchad, Gli interruttori devono essere configurati con un codice ciascuno oltre a collegarli alla rete elettrica come indicato nel manuale in modo molto semplice.

Installiamo e compiliamo mochad:

[Codice sorgente]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
Tempo di recuperoPeriodo di recupero*
./Mettere
fare
sudo make install[/Codice sorgente]

Possiamo creare uno script per spegnere o accendere un interruttore, Ma prima proveremo ad accenderlo!

[Codice sorgente]eco "pl a1 acceso" | nc localhost 1099[/Codice sorgente]

Nel seguente documento vedremo come gestire il controllo del relè da una semplice interfaccia web per i nostri cellulari o tablet!!!

 

Post consigliati

Autore

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, Non esitate a contattarmi, Cercherò di aiutarti ogni volta che potrò, Condividere è vivere ;) . Goditi i documenti!!!