Raspberry PI - gennemføre en overkommelig hjem automatiseringssystem [Del II]

I den tidligere post om overkommelige Hjem automation baseret på Raspberry PI, Vi har lært at kontrollere hus individuel tilslutning fra et panel af otte relæer tilsluttet vores Raspberry PI.

Screenshot af 2015-02-01 20:20:47I dag ser vi hvordan man styrer alt seksten elektriske apparater Tak til de kredsløb, som vi gennemført over, og gør det muligt for bestyrelser har givet mig Jordi af @electronics.cat og du allerede kunne du se Resumé af den Hardware frihedsdag; designet af den samme, og et hundrede procent gratis hardware.

For denne praksis, 'm I gonna bruge den PIS tre grene, der er ansvarlig for at tilpasse alle keglerne GPIO af Raspberry PI af 3.3V til 5V bi-veje og vil gøre det muligt for os at arbejder med den anden forbeholdt PiCam I2C bus; Jeg vil også bruge plade relæer optoacoplados jeg brugte i den foregående artikel om hjem automation.

Pi3Ramas

IP i tre intervaller designet af @JordiBinefa.

Alt dette sætter vi har til rådighed alt seksten stikkontakter domotic delt mellem to Hindbær, og med udvidelsesmuligheder med op til 128 i tilfælde af den PIS 3 grene, Da det gør det muligt for os at drage fordel af de to busser I2C ofrer muligheden af at anvende stik til PiCam.

Tilsluttes pi's tre grene, Vi skal svejse de seks svarende til de anden bus pins I2C der er ikke soldater fra fabrikken, i øjeblikket Jordi Det aktivt arbejder på en ny version af sin plade for Raspberry PI B + og Raspberry PI modeller 2.

OLYMPUS DIGITAL KAMERAVi kan hjælpe med at svejse benene holder de to strimler af tre med jumpere, Men Vi skal sørge for de er mere tilpasset os som muligt på alle tidspunkter før lodning dem..

Vi kan nu tilslutte den PIS tre grene til den Hindbær Jeg har tidligere redigeret isolere de to plader, For hvad Jordi Bruge separatorer sådan plast.

Pi af tre grene og plast indeks divider stik P3.

set05_08_v02_P2P3P4

Ordningen af P3 stik lavet af @JordiBinefa.

Udføre forbindelsen med den Relæ adapterplade, Vi skal bøje benene af relay bord Jeg ønsker at forbinde til pi's tre grene, at hjælpe os med nogle tænger; i det næste billede kan du se det endelige resultat.

Afhængig af positionen af benene VCC og GND i vores relæ, Vi vil placere denne jumper relæer i ét modul, eller en anden holdning til at investere dem; altid forsynet med i tankerne Relæ plade skal være drevet af USB.

IN1 IN2 IN3 IN4 VCC GND

IN1 IN2 IN3 IN4 GND VCC

Nu vi vil forbinde vores relæ af otte udgange til adapter plade af relæer, og er i den PIS tre grene; skal bemærkes, at Dette modul er kompatibel med fire og otte output relæer.

Så vi kan se tabellen af forbindelser mellem de Relæ modul, den PIS tre grene, og Raspberry PI.

Modul relæer optoacoplados Stik P3 Raspberry PI model B
VCC + 5V + 5V
I 7 Bit 0 GPIO 29
I 6 Bit 1 GPIO 28
I 5 Bit 2 GPIO 18
I 4 Bit 3 GPIO 7
I 3 Bit 4 GPIO 8
I 2 Bit 5 GPIO 10
I 1 Bit 6 GPIO 9
I 0 Bit 7 GPIO 11
GND GND GND

Nu gå videre til at forbinde den relæer optoacoplados plade direkte til den GPIO af den anden Hindbær, på billedet nedenfor kan du se det endelige resultat.

Forbindelser mellem de GPIO af vores Hindbær de vil være de samme som i den tidligere artikel, Men i dette tilfælde jeg har tilføjet alle tabellen forbindelser.

Modul relæer optoacoplados Raspberry PI model B
VCC + 5V
I 1 GPIO 3
I 2 GPIO 2
I 3 GPIO 24
I 4 GPIO 25
I 5 GPIO 23
I 6 GPIO 27
I 7 GPIO 22
I 8 GPIO 4
GND GND

At køre den scripts i python af internettet, som vi vil se nedenfor, Først nødt vi til at give tilladelser til brugeren www-data Det er den bruger, der er tildelt til web-serveren; For hvad Første vil vi installere apache webserver, som vi har set i denne tidligere artikel og vi vil skrive sudo terminalvisudo i terminalen og i slutningen af filen Vi vil tilføje til www-data som sudoer, det endelige resultat som nedenfor.

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

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

For hver af de seksten GPIO pins medarbejdere i denne praksis, Vi har brug at oprette en undermappe, og to scripts i Python; en til at tænde, og den anden til at aktivere relæet, Her er et eksempel med den 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)

I hver af de Raspberry PI Vi vil placere din Seksten scripts at slå på de tilsluttede relæer eller til den Pins medarbejdere i hver, at du kan høre i de foregående tabeller; den scripts svarende til den Hindbær tilsluttet direkte fra den GPIO videregive plade vil placere dem i mappen /Hjem/pi/relæer/gpio.

Til at oprette hierarkiet af mapper og undermapper, og kopiere en programmeret i Python Vi vil bruge disse to andre scripts i Bash; først vil være at udføre i den PI tilsluttet til den PIS tre grene.

#!/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/*

De andre Seksten scripts svarende til kontrol af den Hindbær tilsluttet til den PIS tre grene Vi vil holde dem i mappen /var/www/relæ/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/*

På dette tidspunkt skal vi skabe en nøglepar så den Raspberry PI Det er siden for at køre den scripts af det tilsluttede til den PIS tre grene fjernt, som den bruger, der vil gøre det www-data skal tildele en adgangskode for at logge ind og oprette nøgleparret på dine vegne.

#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.

Når den er oprettet den nøglepar offentlige og private, Vi vil kontrollere, at vi kan få adgang til ved SSH uden at indtaste adgangskoden; for betjente fra det samme net af forskellige relæer hindbær på det samme lokale netværk, i dette tilfælde Jeg har tilsluttet dem takket være den lille gratis router WRTNode.

WRTNode_ETHSå skaber vi vores hjemmeside, som vil indeholde de INPUTTYPE til knapper du bliver nødt til at trykke på for at udføre den scripts i Python fra web-interface ved hjælp af metoden post; i dette eksempel vil jeg vise web med kun fire starter, så artiklen ikke er for lang tid.

<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
?>

Hvis jeg ønsker at fodre ham alt fra en enkelt stikkontakt, skal omgå alle negative output 220V Relæ.

Forbindelser til lysnettet Vi vil gøre dem på samme måde som i den sidste post, lukket mellem plug og skifte ordninger miniature circuit breaker at lette sporingen af praksis.

Plug differential relæ

I den næste rate på overkommelige Hjem automation Vi vil lære at drage fordel af de to busser I2C Tak til den PIS tre grene, og vi vil gøre en bevis af begrebet kontrol 128 udskiftelige lysdioder elektriske apparater.

Hvis du som du kan følge mig på Twitter, Facebook, Google +, LinkedIn, eller dele det med knapper under denne publikation, Hvis du har spørgsmål eller forslag så tøv ikke at kommentere.

Hjælp os med at nå flere læsere Share on LinkedInShare on FacebookTweet about this on TwitterShare on Google+Email this to someone

4 tanker om"Raspberry PI - gennemføre en overkommelig hjem automatiseringssystem [Del II]

  1. Meget godt indlæg, stadig så!!
    Et spørgsmål, Jeg vil også installere en home automation med let hindbær system, men ikke er hvordan for eksempel at kende status for et lys,blind eller nogle enhed, Hvis det er blevet manuelt aktiveret.
    Så sige for eksempel, Hvis jeg ønsker at tænde et lys fra mobilen men ikke er i er denne stat beliggende i tid.

    Salu2

    • Hej Igor, Tak for din kommentar.

      Er mig finder sted, der kunne bruge noget skrive i sensor at kontrollere de spændinger, som du kommer til den belysning, der vil have kontrol, og det er din webserver i realtid at vide på ethvert tidspunkt, hvis det er tændt eller ej.

Skriv et svar