Mafon PI-gweithredu system fforddiadwy awtomatiaeth cartref [Rhan II]

Yn y post blaenorol am awtomatiaeth cartref fforddiadwy yn seiliedig ar Raspberry PI, Cawsom wybod i wirio cysylltiadau prif gyflenwad tŷ gan banel o wyth cyrraedd yn gysylltiedig â ein PI mafon.

Lun o 2015-02-01 20:20:47Heddiw byddwn yn gweld sut i reoli cyfanswm o un ar bymtheg o offer trydanol Diolch i gylched y Rydym wedi gweithredu uchod, a galluogi byrddau wedi rhoi imi Jordi o @electronics.cat a ydych eisoes gallech weld yn y crynodeb o y Diwrnod rhyddid caledwedd; Cynlluniwyd gan yr un, a gant y cant caledwedd am ddim.

Am yr arfer hwn, yr wyf yn mynd i ddefnyddio y PI y tair cangen, Mae hynny'n gyfrifol am addasu'r holl yr Arolygiaeth Gynllunio GPIO o PI mafon o 3.3V i 5V i'r cyfeiriad-ddwywaith y flwyddyn a bydd yn caniatáu i ni gweithio gyda ail wedi'i neilltuo ar gyfer y bws PiCam I2C; Byddaf hefyd yn defnyddio optoacoplados cyrraedd plât defnyddiais yn yr erthygl flaenorol am awtomatiaeth cartref.

Pi3Ramas

IP yn yr ystodau tri a gynlluniwyd gan @JordiBinefa.

Mae hyn i gyd yn peryglu ein gwaredu cyfanswm o un ar bymtheg o socedi domotic rhannu rhwng dau Mafon, a gyda expandability o hyd at 128 mewn achos o y Dangosyddion perfformiad 3 canghennau, Ers y mae'n caniatáu inni fanteisio ar y ddau fws I2C aberthu y posibilrwydd o ddefnyddio y cysylltydd i y PiCam.

I gysylltu y pi tair cangen, Rhaid inni ddod y chwe cyfatebol i pins bws ail I2C que no vienen soldados de fábrica, ar hyn o bryd Jordi Mae'n wrthi'n gweithio ar fersiwn newydd ar ei blât ar gyfer Raspberry PI B + a modelau Raspberry PI 2.

OLYMPUS CAMERA DIGIDOLGallwn helpu i weldio'r pins cynnal dau stribyn o dri, gyda siwmperi, ond Rhaid inni wneud yn siŵr eu bod fwy yn rhannu'r ohonom â phosibl bob amser cyn eu sodro.

Bellach y gallwn gysylltu'r y PI y tair cangen i y Mafon Wedi yr Golygwyd o'r blaen ynysu y ddau blât, para lo que Jordi Defnyddio gwahanwyr o'r fath plastigau.

YC tair cangen a mynegai plastig rhannwr cysylltydd P3.

set05_08_v02_P2P3P4

Cynllun y cysylltydd P3 a wnaed gan @JordiBinefa.

Gynnal y cysylltiad â y Ras gyfnewid addasydd plât, Rhaid inni blygu pins gyfnewid y Bwrdd Rwyf eisiau cysylltu i y pi tair cangen, ein helpu gyda'r rhai gefeiliau; yn y Llun nesaf Gallwch weld y canlyniad terfynol.

Gan ddibynnu ar y sefyllfa yr Arolygiaeth Gynllunio VCC ac GND yn ein ras gyfnewid, Byddwn yn rhoi hyn siwmper mewn un modiwl, neu sefyllfa arall i fuddsoddi eu; bob amser gofio'r hynny Rhaid i ras gyfnewid plât yn cael eu pweru gan USB.

WRTH 1GYNNAL IN2 IN3 IN4 VCC GND

WRTH 1GYNNAL IN2 IN3 IN4 GND VCC

Yn awr bydd yn eu cysylltu ein ras gyfnewid o allbynnau wyth yr addasydd plât o cyrraedd, ac yn y PI y tair cangen; Dylid nodi bod Y modiwl hwn yn gydnaws â pedwar ac wyth allbynnau cyrraedd.

Yna, gallwn weld y tabl o gysylltiadau rhwng y Ras gyfnewid y modiwl, y PI y tair cangen, ac PI mafon.

Modulo relés optoacoplados P3 cysylltydd Raspberry PI Modelo B
VCC + 5V + 5V
MEWN 7 Bit 0 GPIO 29
MEWN 6 Bit 1 GPIO 28
MEWN 5 Bit 2 GPIO 18
MEWN 4 Bit 3 GPIO 7
MEWN 3 Bit 4 GPIO 8
MEWN 2 Bit 5 GPIO 10
MEWN 1 Bit 6 GPIO 9
MEWN 0 Bit 7 GPIO 11
GND GND GND

Ymlaen yn awr i gysylltu y cofnodi plât optoacoplados uniongyrchol at y GPIO y llall Mafon, Gallwch weld y canlyniad terfynol yn y ddelwedd isod.

Y cysylltiadau rhwng y GPIO o ein Mafon fydd yr un fath ag yn Erthygl flaenorol, Fodd bynnag yn yr achos hwn wedi ychwanegu Tabl cysylltiadau i gyd.

Modulo relés optoacoplados Raspberry PI Modelo B
VCC + 5V
MEWN 1 GPIO 3
MEWN 2 GPIO 2
MEWN 3 GPIO 24
MEWN 4 GPIO 25
MEWN 5 GPIO 23
MEWN 6 GPIO 27
MEWN 7 GPIO 22
MEWN 8 GPIO 4
GND GND

I redeg y sgriptiau yn python de la web que veremos mas abajo, primero tenemos que dar permisos al usuario www-data Mae'n y defnyddiwr wedi'i neilltuo i serfiwr y we; am beth Yn gyntaf y bydd gosod gweinydd y we apache fel y gwelwyd yn yr erthygl hon blaenorol y escribiremos sudo visudo yn y derfynfa ac ar ddiwedd y ffeil Byddwn yn ychwanegu at www-data fel sudoer, yn y canlyniad terfynol fel isod.

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d
pi ALL=(ALL) NOPASSWD: ALL
www-data ALL=(ALL) NOPASSWD: ALL

Ar gyfer pob un o'r un ar bymtheg o GPIO pins cyflogeion yn arfer hwn, Mae angen inni greu gyfeiriaduron, ac dos scripts en Python; un i droi, a'r llall i droi y ras gyfnewid, Dyma enghraifft â y PIN 11.

#!usr/bin/env/ python
#enciende.py
import RPi.GPIO as GPIO
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(11, GPIO.IN)
#!usr/bin/env/ python
#apaga.py
import RPi.GPIO as GPIO
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(11, GPIO.OUT)

Ym mhob un o y PI mafon Byddwn yn rhoi eich Un ar bymtheg o sgriptiau i droi ar cyrraedd cysylltiedig neu at y Arolygiaeth Gynllunio gweithwyr ym mhob un, y gallwch ymgynghori yn y tablau blaenorol; y sgriptiau cyfateb i y Mafon cysylltu yn uniongyrchol gan y GPIO i gyfleu fydd plât yn eu rhoi yn y cyfeiriadur /Cartref/YC/cyrraedd/gpio.

I greu hierarchaeth cyfeiriaduron a isgyfeiriadau, a'i gopïo ffeiliau wedi'u rhaglennu yn Python Byddwn yn defnyddio'r rhain ddau arall sgriptiau yn Darllen difyr; y cyntaf fydd y mae gweithredu yn y PI yn gysylltiedig â y PI y tair cangen.

#!/bin/bash
#Raspberry PI con la pi de 3 ramales.

#Creamos la jerarquía de directorios.
mkdir /home/pi/reles/gpio
mkdir /home/pi/reles/gpio/11
mkdir /home/pi/reles/gpio/9
mkdir /home/pi/reles/gpio/10
mkdir /home/pi/reles/gpio/8
mkdir /home/pi/reles/gpio/7
mkdir /home/pi/reles/gpio/18
mkdir /home/pi/reles/gpio/28
mkdir /home/pi/reles/gpio/29
ls /home/pi/reles/gpio

#Y copiamos los scripts
cp enciende.py apaga.py /home/pi/reles/gpio/11
cp enciende.py apaga.py /home/pi/reles/gpio/9
cp enciende.py apaga.py /home/pi/reles/gpio/10
cp enciende.py apaga.py /home/pi/reles/gpio/8
cp enciende.py apaga.py /home/pi/reles/gpio/7
cp enciende.py apaga.py /home/pi/reles/gpio/18
cp enciende.py apaga.py /home/pi/reles/gpio/28
cp enciende.py apaga.py /home/pi/reles/gpio/29
ls /home/pi/reles/gpio/*

Y lleill Un ar bymtheg o sgriptiau cyfateb i reolaeth y Mafon yn gysylltiedig â y PI y tair cangen Bydd yn eu cadw yn y cyfeiriadur /var/www/ras gyfnewid/gpio /.

#!/bin/bash
#Raspberry pi con relé compatible con GPIO.

#Creamos la jerarquía de directorios.
mkdir /var/www/rele/gpio
mkdir /var/www/rele/gpio/4
mkdir /var/www/rele/gpio/22
mkdir /var/www/rele/gpio/27
mkdir /var/www/rele/gpio/23
mkdir /var/www/rele/gpio/25
mkdir /var/www/rele/gpio/24
mkdir /var/www/rele/gpio/2
mkdir /var/www/rele/gpio/3
ls /var/www/rele/gpio

#Y copiamos los scripts.
cp enciende.py apaga.py /var/www/rele/gpio/4
cp enciende.py apaga.py /var/www/rele/gpio/22
cp enciende.py apaga.py /var/www/rele/gpio/27
cp enciende.py apaga.py /var/www/rele/gpio/23
cp enciende.py apaga.py /var/www/rele/gpio/25
cp enciende.py apaga.py /var/www/rele/gpio/24
cp enciende.py apaga.py /var/www/rele/gpio/2
cp enciende.py apaga.py /var/www/rele/gpio/3
ls /var/www/rele/gpio/*

Rhaid inni greu ar hyn o bryd pâr allweddol fel bod y PI mafon Mae'n y dudalen i redeg y sgriptiau o y cysylltiedig i y PI y tair cangen o bell, fel y defnyddiwr a fydd yn ei wneud yn www-data rhaid neilltuo cyfrinair er mwyn mewngofnodi a chreu y pâr allweddol ar eich rhan.

#Asignamos un password al usuario www-data
usuario@maquina:~$ passwd www-data

Introduzca la nueva contraseña de UNIX: 
Vuelva a escribir la nueva contraseña de UNIX: 
passwd: contraseña actualizada correctamente

#Creamos el par de claves RSA de 4096 bits
www-data@maquina:~$ ssh-keygen -b 4096 -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/var/www/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /var/www/.ssh/id_rsa.
Your public key has been saved in /var/www/.ssh/id_rsa.pub.
The key fingerprint is:
5a:dc:bd:af:0d:ae:9d:9f:bb:c2:d4:5b:dd:67:8d:18 tmo@tmo-K55A
The key's randomart image is:
+--[ RSA 4096]----+
|                 |
|                 |
|                 |
|       . . .E    |
|        S . .+ .+|
|       o    o.o B|
|      .    oo  +.|
|           oo=.. |
|          ..=+Bo |
+-----------------+

#Copiamos la clave pública a la otra raspberry
www-data@maquina:~$ ssh-copy-id pi@192.168.*.***                 
Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'pi@192.168.*.***'"
and check to make sure that only the key(s) you wanted were added.

Creu unwaith y pâr allweddol cyhoeddus a phreifat, Byddwn yn sicrhau y gallwn mynediad gan SSH heb y cyfrinair; ar gyfer cofnodi mafon yn gweithredu oddi ar y we un gwahanol ar yr un rhwydwaith lleol, yn yr achos hwn Wedi eu cysylltu Diolch i'r llwybrydd bach am ddim WRTNode.

WRTNode_ETHYna byddwn yn creu ein tudalen cartref a fydd yn cynnwys y math mewnbwn botymau Bydd yn rhaid ichi bwyso i gyflawni y sgriptiau yn Python o'r rhyngwyneb y we drwy ddefnyddio dull swydd; para este ejemplo voy a mostrar la web con solo cuatro salidas para que el artículo no sea demasiado extenso.

<html>
 <head>
                 <!--/var/www/rele/index.php-->
 </head>
 <body>

 <!--GPIO11--> 
 <form action="" method="post">
 Enchufe 0 [GPIO 11 - P3 Bit 7 - IN1]&nbsp;<input type="submit" name="encender11" value="Encender">
 <input type="submit" name="apagar11" value="Apagar">
 </form>
 &nbsp;&nbsp;

 <!--GPIO04--> 
 <form action="" method="post">
 Electrodomestico 0 [GPIO 04 - P4 Bit 7 - IN1]&nbsp;<input type="submit" name="encender4" value="Encender">
 <input type="submit" name="apagar4" value="Apagar">
 </form>
 <br></br>

 <!--GPIO09--> 
 <form action="" method="post">
 Enchufe 1 [GPIO 09 - P3 Bit 6 - IN2]&nbsp;<input type="submit" name="encender9" value="Encender">
 <input type="submit" name="apagar9" value="Apagar">
 </form>
 &nbsp;&nbsp;

 <!--GPIO22--> 
 <form action="" method="post">
 Electrodomestico 1 [GPIO 22 - P4 Bit 6 - IN2]&nbsp;<input type="submit" name="encender22" value="Encender">
 <input type="submit" name="apagar22" value="Apagar">
 </form>
 </body>
</html>

<?php

// Funciones PHP del pin GPIO 11
 if ($_POST[encender11]) { 
 $a- exec("sudo python /var/www/rele/gpio/11/enciende.py");
 echo $a;
 }

 if ($_POST[apagar11]) { 
 $a- exec("sudo python /var/www/rele/gpio/11/apaga.py");
 echo $a;
 }
// Fin de las funciónes del pin GPIO 11

// Funciones PHP del pin GPIO 9
 if ($_POST[encender9]) { 
 $a- exec("sudo python /var/www/rele/gpio/9/enciende.py");
 echo $a;
 }

 if ($_POST[apagar9]) { 
 $a- exec("sudo python /var/www/rele/gpio/9/apaga.py");
 echo $a;
 }
// Fin de las funciónes del pin GPIO 9

// Funciones PHP del pin GPIO 04

  if ($_POST[encender4]) { 
   $a- exec("ssh root@192.168.*.*** python /home/pi/reles/gpio/4/enciende.py");
   echo $a;
  }

  if ($_POST[apagar4]) { 
   $a- exec("ssh root@192.168.*.*** python /home/pi/reles/gpio/4/apaga.py");
   echo $a;
  }

// Fin de las funciónes del pin GPIO 04

// Funciones PHP del pin GPIO 22

  if ($_POST[encender22]) { 
   $a- exec("ssh root@192.168.*.*** python /home/pi/reles/gpio/22/enciende.py");
   echo $a;
  }

  if ($_POST[apagar22]) { 
   $a- exec("ssh root@192.168.*.*** python /home/pi/reles/gpio/22/apaga.py");
   echo $a;
  }

// Fin de las funciónes del pin GPIO 22
?>

Os wyf eisiau iddo fwydo popeth o siop un, Mae'n rhaid i ffordd osgoi yn gwbl negyddol allbynnau 220V Ras gyfnewid.

Cysylltiadau i y prif gyflenwad Fe wnawn ni wneud yr un modd ag yn y cofnod diwethaf iddynt, Rwy'n amgáu rhwng y cynlluniau plwg a newid dewis cylched bychan er mwyn hwyluso olrhain arferion.

Relé enchufe diferencial

Yn installment nesaf ar awtomatiaeth cartref fforddiadwy Byddwn yn dysgu i fanteisio ar y ddau fws I2C Diolch i y PI y tair cangen, a byddwn yn gwneud prawf o gysyniad gwirio 128 LEDs ymgyfnewidiol gan offer trydanol.

Os hoffech chi ddilyn mi Twitter, Facebook, Google +, LinkedIn, neu rannu gyda botymau dan y cyhoeddiad hwn, Os oes gennych unrhyw gwestiynau neu awgrymiadau croeso i sylwadau.

Yn ein helpu i gyrraedd mwy o ddarllenwyr Share on LinkedInShare on FacebookTweet about this on TwitterShare on Google+Email this to someone

4 meddyliau ar"Mafon PI-gweithredu system fforddiadwy awtomatiaeth cartref [Rhan II]

  1. Muy buenos posts, sigue así!!
    Una pregunta, yo quiero montar también un sistema domotico casero con raspberry muy sencillo, pero no se como hacer por ejemplo para saber el estado de una luz,persiana o algún dispositivo, si ha sido activado manualmente.
    Lo digo por ejemplo, si quiero encender una luz desde el movil pero no se en que estado se encuentra en ese momento.

    Salu2

    • Hola Igor, Diolch am eich sylwadau.

      Se me ocurre que podrías utilizar algún tipo de sensor que compruebe la tensión que le está llegando a la iluminación que desees controlar, y se lo notifique a tu servidor web en tiempo real para saber en todo momento si está encendida o no.

Gadael Ymateb