Raspberry PI - mise en œuvre d'un système domotique abordable [Partie II]

Dans le post précédent sur Affordable domotique basé sur Raspberry PI, Nous avons appris à contrôler les connexions de réseau maison d'un panel de huit relais connectés au notre Raspberry PI.

Capture d'écran 2015-02-01 20:20:47Aujourd'hui, nous allons voir comment contrôler un total de seize appareils électriques Grâce au circuit que nous avons implémenté au-dessus, et permettre aux planches, m'a donné Jordi de @electronics.cat et vous déjà vous voyait dans le résumé de la Journée de la liberté matérielle; conçu par le même, et cent pour cent matériel libre.

Cette pratique, je vais utiliser le Trois branches de la PI, qui est chargée d'adapter toutes les quilles GPIO de Raspberry PI de 3.3V À 5V bidirectionnelle et nous permettra de travail avec le deuxième réservé pour le bus PiCam I2C; Je vais également utiliser plaque relais optoacoplados j'ai utilisé dans l'article précédent sur la domotique.

Pi3Ramas

Propriété intellectuelle dans trois gammes conçues par @JordiBinefa.

Tout cela met à notre disposition un total de seize douilles domotique divisé entre deux Framboise, et avec évolutive, jusqu'à 128 dans le cas de la De PI 3 branches, Puisqu'il nous permet de profiter des deux bus I2C sacrifier la possibilité d'utiliser le connecteur de la PiCam.

Pour relier les trois branches de la pi, Nous devons souder les six correspondant aux broches deuxième autobus I2C [object Window], pour le moment Jordi Il travaille activement sur une nouvelle version de son plat pour Raspberry PI B + et modèles Raspberry PI 2.

APPAREIL PHOTO NUMÉRIQUE OLYMPUSNous pouvons aider à souder les broches tenant les deux bandes de trois avec cavaliers, mais Nous devons nous assurer qu'ils sont plus en adéquation nous que possible en tout temps avant de souder les.

Nous pouvons maintenant connecter le Trois branches de la PI à la Framboise J'ai édité précédemment isoler les deux plaques, [object Window] Jordi Utiliser des séparateurs ces plastiques.

Le pi de trois branches et index en plastique diviseur connecteur P3.

set05_08_v02_P2P3P4

Schéma du connecteur P3 fait par @JordiBinefa.

Effectuer la connexion avec le Plaque d'adaptation relais, Nous devons tordre les broches du relais Conseil Je veux me connecter à trois branches de la pi, nous aider avec des pinces; dans l'image suivante vous pouvez voir le résultat final.

Selon la position des broches SCR et GND nos relais, Nous placera cette cavalier Relais dans un seul module, ou un autre poste d'investir leur; toujours en gardant à l'esprit que Plaque de relais doit être alimenté par USB.

IN1 IN2 IN3 IN4 VCC GND

IN1 IN2 IN3 IN4 GND VCC

Maintenant nous connecter notre Relais de huit sorties à la plaque adaptatrice de relais, et se trouve dans le Trois branches de la PI; est à noter que Ce module est compatible avec quatre et huit sorties relais.

Alors nous pouvons voir le tableau de connexions entre les Module de relais, le Trois branches de la PI, et Raspberry PI.

Module relais optoacoplados Connecteur P3 [object Window]
SCR + 5V + 5V
EN 7 [object Window] 0 GPIO 29
EN 6 [object Window] 1 GPIO 28
EN 5 [object Window] 2 GPIO 18
EN 4 [object Window] 3 GPIO 7
EN 3 [object Window] 4 GPIO 8
EN 2 [object Window] 5 GPIO 10
EN 1 [object Window] 6 GPIO 9
EN 0 [object Window] 7 GPIO 11
GND GND GND

Maintenant aller de l'avant pour connecter les plaque de relais optoacoplados directement à la GPIO de l'autre Framboise, dans l'image ci-dessous vous pouvez voir le résultat final.

Les connexions entre les GPIO de notre Framboise ils seront les mêmes que dans l'article précédent, Cependant dans ce cas j'ai ajouté tout le tableau de connexions.

Module relais optoacoplados [object Window]
SCR + 5V
EN 1 GPIO 3
EN 2 GPIO 2
EN 3 GPIO 24
EN 4 GPIO 25
EN 5 GPIO 23
EN 6 GPIO 27
EN 7 GPIO 22
EN 8 GPIO 4
GND GND

Pour exécuter la scripts en python [object Window], [object Window] www-data C'est l'utilisateur affecté au serveur web; Pour quoi Tout d'abord, nous allons installer le serveur web apache comme nous l'avons vu dans cet article précédent [object Window] sudo visudo dans le terminal et à la fin du fichier Nous ajouterons à www-data comme sudoer, le résultat final comme ci-dessous.

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

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

Pour chacune des seize broches GPIO employés dans cette pratique, Nous devons créer un sous-répertoire, et [object Window]; l'un pour allumer, et l'autre pour activer le relais, Voici un exemple avec la BROCHE 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)

Dans chacun de la Raspberry PI Nous allons placer votre Scripts de seize pour activer les relais connectés ou à la broches travailleurs dans chacun, que vous pouvez consulter dans les tableaux précédents; le scripts correspondant à la Framboise connecté directement à partir de la GPIO pour relayer la plaque sera placer dans le répertoire /Accueil/pi/relais/gpio.

Pour créer la hiérarchie des répertoires et sous-répertoires, Copiez les fichiers programmés dans Python Nous utiliserons ces deux autres scripts dans Bash; le premier sera qui exécutent dans le PI connecté à la Trois branches de la PI.

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

Les autres Scripts de seize correspondant au contrôle de la Framboise connecté à la Trois branches de la PI Nous les garderons dans le répertoire /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/*

En ce moment, nous devons créer un paire de clés afin que le Raspberry PI C'est la page pour exécuter la scripts de la connecté à la Trois branches de la PI à distance, comme c'est l'utilisateur qui va le faire www-data doit assigner un mot de passe afin de vous connecter et de créer la paire de clés en votre nom.

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

Une fois créé le paire de clés publique et privée, Nous allons vérifier que nous pouvons accès par SSH sans entrer le mot de passe; pour exploité depuis la même page web de différents relais de framboise sur le même réseau local, dans ce cas J'ai relié leur grâce à la petit routeur gratuit WRTNode.

WRTNode_ETHPuis nous allons créer notre page d'accueil qui contiendra les type d'entrée de boutons vous devrez cliquer sur exécuter la scripts dans Python depuis l'interface web à l'aide de la méthode post; [object Window].

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

Si je veux lui donner à manger tout d'une seule prise, doit déviation tous négatif sorties 220V Relais.

Les raccordements au réseau électrique Nous ferons la même manière que la dernière entrée, enfermé entre les systèmes de prise et interrupteur disjoncteur miniature pour faciliter le suivi de la pratique.

Relais différentiel prise

Dans le prochain épisode sur domotique abordable Nous allons apprendre à tirer parti des deux bus I2C Grâce à la Trois branches de la PI, et nous allons faire une preuve de concept de vérification 128 LEDs interchangeables par les appareils électriques.

Si vous le souhaitez vous pouvez me suivre sur Twitter, Facebook, Google +, LinkedIn, ou partagez-les avec les boutons situés sous cette publication, Si vous avez des questions ou suggestions n'hésitent pas à commenter.

Aidez-nous à atteindre plus de lecteurs Share on LinkedInShare on FacebookTweet about this on TwitterShare on Google+Email this to someone

4 Thoughts on"Raspberry PI - mise en œuvre d'un système domotique abordable [Partie II]

  1. [object Window], [object Window]!!
    Une question, [object Window], [object Window],[object Window], [object Window].
    [object Window], [object Window].

    [object Window]

Laisser une réponse