Малина PI - прилагането на система за достъпни домашна автоматизация [Част II]

В предишния пост за достъпни Начало автоматизация, въз основа на Raspberry PI, Ние научихме да проверите къща мрежови връзки от група от осем релета, свързан към нашите Малина PI.

Снимка на 2015-02-01 20:20:47Днес ние ще видим как да се контролира общо шестнадесет електрически уреди Благодарение на веригата, която реализирахме над, и позволяваща дъски ми е дал Jordi на @electronics.cat и вие вече може да видите в Резюме на Ден на свободата на хардуер; Проектиран от същото, и сто процента Свободен хардуер.

За тази практика аз отивам да се използва The PI на три клонове, Това е отговорен за адаптиране на всички осите GPIO на Малина PI на 3.3V за да 5V BI щампата и ще ни позволи да работа с втория, запазени за PiCam I2C шината; Също така ще използва плоча релета optoacoplados използвах в предишната статия за домашна автоматизация.

Pi3Ramas

IP в три диапазони, проектирана от @JordiBinefa.

Всичко това поставя на наше разположение общо шестнадесет контакти domotic разделени между две Малина, и с разширяемост на до 128 в случай на PI 3 клонове, Тъй като тя ни позволява да се възползвате от два автобуса I2C жертват възможността за използване на конектор към PiCam.

За да се свържете на три клона на ПИ, Ние трябва да заварка шестте съответства на втори автобус игли I2C Това не са войници на фабрика, в момента Jordi Тя е активно работи върху нова версия на неговата табела за Raspberry PI B + и Raspberry PI модели 2.

OLYMPUS ЦИФРОВ ФОТОАПАРАТНие можем да помогнем да заварка на игли, държи две ленти с три с джъмперите, Но Ние трябва да се уверите, те са по-изравнени ни колкото е възможно по всяко време преди да ги запояване.

Сега можете да свържете PI на три клонове за да Малина Преди това са редактирани изолиране на двете плочи, За какво Jordi Използвай разделители такива пластмаси.

Pi на три клонове и пластмасови индекс делител конектор P3.

set05_08_v02_P2P3P4

Схема на конектора на P3, направени от @JordiBinefa.

Извършва връзката с Реле Адапторна пластина, Ние трябва да се огъват изводите на релето съвет Искам да се свържете с три клона на ПИ, ни помага с някои клещи; в следващата снимка можете да видите крайния резултат.

В зависимост от позицията на щифтовете VCC and GND в нашите реле, Ние ще постави това скачач релета в един модул, или друга позиция да ги инвестират; винаги като се има предвид, че Реле табела трябва да се захранва от USB.

IN1 IN2 IN3 IN4 VCC GND

IN1 IN2 IN3 IN4 GND VCC

Сега ние ще се свърже наш реле от осем изхода на адаптера плоча на релета, и е в PI на три клонове; трябва да се отбележи, че Този модул е съвместим с четири и осем изходи релета.

Тогава можем да видим таблицата на връзките между Релеен модул, The PI на три клонове, and Малина PI.

Модул релета optoacoplados Съединител P3 Малина PI модел B
VCC + 5V + 5V
В 7 Малко 0 GPIO 29
В 6 Малко 1 GPIO 28
В 5 Малко 2 GPIO 18
В 4 Малко 3 GPIO 7
В 3 Малко 4 GPIO 8
В 2 Малко 5 GPIO 10
В 1 Малко 6 GPIO 9
В 0 Малко 7 GPIO 11
GND GND GND

Сега пристъпи към свързване релета optoacoplados табела директно към GPIO от друга страна Малина, в изображението по-долу можете да видите крайния резултат.

Връзките между GPIO на нашите Малина те ще бъдат същите като в Предишна статия, Обаче в този случай са добавени всички от таблицата връзки.

Модул релета optoacoplados Малина PI модел B
VCC + 5V
В 1 GPIO 3
В 2 GPIO 2
В 3 GPIO 24
В 4 GPIO 25
В 5 GPIO 23
В 6 GPIO 27
В 7 GPIO 22
В 8 GPIO 4
GND GND

За да стартирате в python скриптове на интернет, че ние ще видите по-долу, Първо ние трябва да дават разрешения на потребителя www-данни Това е потребител, присвоен на уеб сървъра; За какво Първо ние ще инсталирате apache уеб сървър, както сме виждали в тази предишна статия и ние ще пиша Sudo visudo в терминала и в края на файла Ние ще добавим към www-данни като sudoer, крайния резултат по-долу.

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

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

За всяка от шестнадесет GPIO щифтове служителите в тази практика, Ние трябва да се създаде поддиректория, and два скриптове в питон; един да включите, и другите да включите реле, Ето един пример с ПИН 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)

Във всяка от Малина PI Ние ще постави вашия Шестнадесет скриптове да включите свързаните релета или да щифтове служители във всяка, че можете да се обърнете в предишния таблици; The скриптове съответстващи на Малина свързан директно от GPIO да предам плоча ще ги поставите в директорията /Начало/ПИ/релета/gpio.

За да създадете йерархията на директории и поддиректории, Копиране и програмирани файлове в Питон Ние ще използваме тези другите две скриптове в Баш; Първият ще бъде, която изпълняват в PI свързан към 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/*

Другите Шестнадесет скриптове съответстващи на контрола на Малина свързан към PI на три клонове Ние ще ги задържим в директорията /var/www/реле/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/*

В този момент ние трябва да създадете двойка ключове така че Малина PI Това е страницата, за да тичам скриптове свързан към PI на три клонове дистанционно, като потребител, който ще го направи е www-данни трябва да присвоите парола за да влезете и да се създаде двойка ключове от ваше име.

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

Веднъж създаден двойка ключове обществени и частни, Ние ще се провери, че можем да достъп от SSH без въвеждане на парола; за управлявана от една и съща web от различни Малина релета на една и съща локална мрежа, в този случай Имам ги свързани благодарение на малки безплатен рутер WRTNode.

WRTNode_ETHТогава ние ще създадем нашата начална страница, която ще съдържа вход тип бутони Вие ще трябва да натиснете, за да изпълни скриптове в Питон от web интерфейс с помощта на метода post; за този пример ще покаже в интернет със само четири започва така че статията не е прекалено дълго.

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

Ако искам да го нахраниш всичко от един контакт, трябва да байпас всички отрицателни изходи 220V Реле.

Връзките към електрическата мрежа Ние ще ги направи по същия начин като последния запис, затворени между щепсела и шибалка схеми миниатюрни прекъсвач за да се улесни проследяването на практика.

Включете диференциално реле

През следващата вноска на достъпни Начало автоматизация Ние ще се научат да се възползват от два автобуса I2C Благодарение на PI на три клонове, и ние ще направим доказателство за концепция проверка 128 взаимозаменяеми светодиоди от електрически уреди.

Ако ви харесва можете да следвате ме на Twitter, Facebook, Google +, LinkedIn, или я споделете с бутоните под тази публикация, Ако имате някакви въпроси или предложения, моля не се колебайте да коментират.

Помогнете ни да достигнат до повече читатели Share on LinkedInShare on FacebookTweet about this on TwitterShare on Google+Email this to someone

4 мисли за"Малина PI - прилагането на система за достъпни домашна автоматизация [Част II]

  1. Много добри мнения, все пак досега!!
    Един въпрос, Искам да инсталирате домашна автоматизация с лесен Малинов система, но не е как например да се знае състоянието на светлина,слепи или устройство, Ако то е активирано ръчно.
    Казвам това за пример, Ако искате да включите светлина от мобилни устройства, но не е в тази държава се намира в това време.

    Salu2

    • Здравейте Игор, Gracias por ТУ comentario.

      Той се среща с мен, че бихте могли да използвате някакъв вид сензор, който проверява напрежението което достига осветление, искате да контролирате, и уведомява за това е вашият уеб сървър в реално време да се знае по всяко време, ако е на или не.

Вашият коментар