Himbeer-PI - Implementierung eines erschwinglichen home-Automation-Systems [Teil II]

In der früheren Post über preiswerte Hausautomation basierend auf Raspberry PI, Wir haben gelernt zu überprüfen Hausanschlüsse Netz von einem Gremium aus acht Relais angeschlossen unsere Himbeer-PI.

Screenshot von 2015-02-01 20:20:47Heute werden wir sehen, wie Sie insgesamt sechzehn elektrische Geräte steuern Dank der Schaltung, der wir oben implementiert, und Aktivieren der Bretter hat mir Jordi der @electronics.cat und Sie bereits konnte Sie sehen in der Zusammenfassung von der Hardware-Freiheit Tag; entworfen durch den gleichen, und hundert Prozent Kostenlose hardware.

Für diese Praxis werde ich verwenden die PiS drei Zweige, Das ist verantwortlich für die Anpassung der pins GPIO der Himbeer-PI der 3.3V An 5V bidirektional und ermöglicht es uns, Arbeiten mit dem zweiten reserviert für den PiCam I2C-bus; Ich verwende auch Platte Relais Optoacoplados habe ich im vorherigen Artikel über Heimautomation.

Pi3Ramas

IP in drei Bereiche, entworfen von @JordiBinefa.

All dies bringt uns zur Verfügung stehenden insgesamt sechzehn Sockets Domotik zwischen zwei geteilt Himbeere, und mit Erweiterbarkeit von bis zu 128 bei der PiS 3 Zweige, Da es uns erlaubt, die zwei Busse nutzen I2C Opfern die Möglichkeit mit dem Anschluss an die PiCam.

Die Pi drei Zweige verbinden, Wir müssen die sechs, die zweite Bus-Pins entspricht Schweißen. I2C Soldaten der Fabrik sind nicht, im moment Jordi Es arbeitet aktiv an einer neuen Version seiner Platte für Raspberry PI B + und Raspberry PI-Modelle 2.

OLYMPUS DIGITALKAMERAWir können helfen, die Stifte halten die beiden Streifen von drei mit Schweißen Jumper, aber Wir müssen sicherstellen, dass sie mehr uns möglichst jederzeit angeordnet werden vor dem Löten Sie.

Wir können jetzt verbinden die PiS drei Zweige zu den Himbeere Ich habe zuvor bearbeitet die beiden Platten zu isolieren, Wozu Jordi Verwenden von Separatoren solche Kunststoffe.

Die Pi von drei Filialen und Kunststoff Index Teiler Stecker P3.

set05_08_v02_P2P3P4

Schema der P3-Verschraubung aus durch @JordiBinefa.

Führen Sie die Verbindung mit der Relais-Adapterplatte, Wir müssen die Pins des Relais Board beugen. Ich will zum Herstellen einer Verbindung mit der Pi drei Zweige, helfen uns mit einigen Zangen; im nächsten Bild sehen Sie das Endergebnis.

Abhängig von der Position der pins VCC und GND Unsere Staffel, Wir werden diesen Ort Jumper Relais in einem Modul, oder eine andere Position, sie investieren; stets berücksichtigen, dass Relais-Platte muss durch USB mit Strom versorgt werden.

IN1 IN2 IN3 IN4 VCC GND

IN1 IN2 IN3 IN4 GND VCC

Jetzt wir verbinden unser Staffel mit acht Ausgängen auf die Adapterplatte von Relais, und ist in der PiS drei Zweige; ist darauf hinzuweisen, dass Dieses Modul ist kompatibel mit vier und acht Ausgänge Relais.

Dann wir die Tabelle der Verbindungen zwischen sehen den Relaismodul, die PiS drei Zweige, und Himbeer-PI.

Modul-Relais optoacoplados Connector-P3 Himbeer-PI-Modell B
VCC + 5V + 5V
IN 7 Bisschen 0 GPIO 29
IN 6 Bisschen 1 GPIO 28
IN 5 Bisschen 2 GPIO 18
IN 4 Bisschen 3 GPIO 7
IN 3 Bisschen 4 GPIO 8
IN 2 Bisschen 5 GPIO 10
IN 1 Bisschen 6 GPIO 9
IN 0 Bisschen 7 GPIO 11
GND GND GND

Nun fort, schließen die Relais Optoacoplados Platte direkt zu den GPIO des anderen Himbeere, im Bild unten sehen Sie das Endergebnis.

Die Verbindungen zwischen den GPIO von unserer Himbeere Sie werden die gleichen wie in im vorhergehenden Artikel, Jedoch haben in diesem Fall ich alle Verbindungen-Tabelle hinzugefügt.

Modul-Relais optoacoplados Himbeer-PI-Modell B
VCC + 5V
IN 1 GPIO 3
IN 2 GPIO 2
IN 3 GPIO 24
IN 4 GPIO 25
IN 5 GPIO 23
IN 6 GPIO 27
IN 7 GPIO 22
IN 8 GPIO 4
GND GND

Zum Ausführen der Skripts in python der im Web, dem wir weiter unten sehen werden, Zuerst müssen wir dem Benutzer Berechtigungen erteilen Www-Daten Es ist der Benutzer des Web-Servers; Wozu Zunächst installieren den Apache-Webserver wir wie wir, in diesem vorherigen Artikel gesehen haben und wir schreiben Sudo visudo im Terminal und am Ende der Datei Wir werden zu Www-Data als Sudoer hinzufügen., wird das Endergebnis wie folgt.

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

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

Für jedes der sechzehn GPIO-pins Mitarbeiter in dieser Praxis, Wir brauchen ein Unterverzeichnis erstellen, und zwei Skripte in Python; ein zu schalten, und die andere um das Relais zu aktivieren, Hier ist ein Beispiel mit der POLIG 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)

In jedem der Himbeer-PI Legen wir Ihre Sechzehn Skripts Aktivieren der angeschlossenen Relais oder zu den Stifte Mitarbeiter in jedem, dass Sie in den vorherigen Tabellen einsehen können; die Skripte entsprechend der Himbeere angeschlossen ist, direkt von der GPIO Relais, dass Teller werden sie in das Verzeichnis zu platzieren /Startseite/Pi/Relais/gpio.

Die Hierarchie von Verzeichnissen und Unterverzeichnissen erstellen, und kopieren Sie die programmierten Dateien in Python Wir verwenden diese beiden anderen Skripte in Bash; das erste wird sein, ausgeführt der PI verbunden mit der PiS drei Zweige.

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

Die anderen Sechzehn Skripts entspricht die Kontrolle über die Himbeere verbunden mit der PiS drei Zweige Wir halten sie in das Verzeichnis /Var/Www/Relais/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/*

Zu diesem Zeitpunkt müssen wir erstellen eine Schlüsselpaar so dass die Himbeer-PI Es ist die Seite zum Ausführen der Skripte des angeschlossenen zu den PiS drei Zweige aus der Ferne, wie der Benutzer, der es tun ist Www-Daten müssen ein Kennwort zuweisen. um einzuloggen und das Schlüsselpaar zu schaffen, in Ihrem Namen.

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

Nach der Erstellung der öffentliche und private Schlüsselpaar, Wir überprüfen, dass wir können zugreifen, indem Sie SSH ohne Eingabe eines Kennworts; für aus dem gleichen Web von verschiedenen Betrieben Relais Himbeere im gleichen lokalen Netzwerk, in diesem Fall Ich habe sie dank der kleinen freien Router WRTNode angeschlossen..

WRTNode_ETHDann wir unsere Homepage erstellt wird, die enthalten, wird die Eingabetyp Schaltflächen Sie müssen drücken zum Ausführen der Skripte in Python über das Webinterface mit der Post-Methode; in diesem Beispiel werde ich im Web mit nur vier Starts zeigen, so dass der Artikel nicht zu lang ist.

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

Wenn ich ihm alles aus einem einzigen Steckdose ernähren wollen, müssen Umgehungsstraße alles negative Ausgänge 220V Staffel.

Die Anschlüsse an das Stromnetz Wir stellen ihnen genauso wie der letzte Eintrag, eingeschlossen zwischen Stecker und Schalter Schema Leitungsschutzschalter Das Tracking der Praxis zu erleichtern.

Stecker-differential-Relais

In der nächsten Ausgabe auf erschwingliche home-automation Wir erfahren, wie die zwei Busse nutzen I2C Dank an die PiS drei Zweige, und wir machen eine Nachweis über das Konzept zu überprüfen 128 austauschbare LEDs von Elektrogeräten.

Wenn Sie mir folgen können, auf Twitter, Facebook, Google +, LinkedIn, oder Teilen Sie sie mit den Schaltflächen unter dieser Publikation, Wenn Sie Fragen oder Anregungen Sie bitte nicht zögern kommentieren.

Helfen Sie uns, um mehr Leser zu erreichen Share on LinkedInShare on FacebookTweet about this on TwitterShare on Google+Email this to someone

4 Thoughts on"Himbeer-PI - Implementierung eines erschwinglichen home-Automation-Systems [Teil II]

  1. Sehr gute Beiträge, weiter!!
    Eine Frage, Ich will auch eine Hausautomation mit leicht Himbeer-System installieren, aber ist nicht wie zum Beispiel zu kennen den Status eines Lichts,Blind oder einem Gerät, Wenn es manuell aktiviert wurde.
    Ich sage dies zum Beispiel, Will ich ein Licht aus dem Telefon schalten aber nicht in diesem Zustand zu diesem Zeitpunkt ist.

    Salu2

    • Hallo Igor, Gracias Por Tu comentario.

      Es fällt mir ein, die Sie irgendeine Art von Sensor verwenden könnte, die die Spannung überprüft, die die Beleuchtung erreicht wird, die Sie steuern möchten, und teilt, ist es Ihrem Web-Server in Echtzeit jederzeit zu wissen, ob es auf oder nicht ist.

Hinterlasse eine Antwort