Малина PI - внедрение системы доступной домашней автоматизации [Часть II]

В предыдущем посте о доступной домашней автоматизации на основе Raspberry PI, Мы узнали проверить дом сетевого соединения из группы восьми реле подключены к нашей Малина PI.

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

Для этой практики я собираюсь использовать в PI на три отделения, Это ответственность за адаптацию все контакты GPIO из Малина PI из 3.3V Кому 5V двухнаправленно и позволит нам Работа с второй зарезервирован для шины PiCam I2C; Я также буду использовать плиты реле optoacoplados, я использовал в предыдущей статье о домашней автоматизации.

Pi3Ramas

ИС в трех диапазонах, разработанный @JordiBinefa.

Все это ставит в нашем распоряжении в общей сложности шестнадцать розетки домовой разделить между двумя Малина, и с Расширяемость до 128 в отношении П 3 филиалы, Так как это позволяет нам воспользоваться преимуществами двух автобусов I2C жертву возможность использования соединителя для PiCam.

Для подключения трех ветвей Пи, Мы должны сварить шесть соответствующий второй автобус контакты I2C [object Window], на данный момент Jordi Он активно работает над новой версией своей пластины для Малина PI B + и модели Raspberry PI 2.

ЦИФРОВОЙ ФОТОАППАРАТ OLYMPUSМы можем помочь сварить булавки, держа две полоски 3 с перемычки, но Мы должны убедиться, что они более выровнены нас как можно на все времена перед пайкой их.

Мы теперь можем подключить PI на три отделения для Малина Я ранее редактировал изоляция двух пластин, [object Window] Jordi Разделители используются такие пластмассы.

Пи трех ветвей и пластиковые индекс делителя разъем P3.

set05_08_v02_P2P3P4

Схема разъема P3, сделанные @JordiBinefa.

Осуществлять связь с Пластина переходник реле, Мы должны погнуть контакты реле Совет Я хочу подключиться к Пи три ветви, помогает нам с некоторыми плоскогубцы; на следующем рисунке вы можете увидеть окончательный результат.

В зависимости от положения булавки VCC и ЗАЗЕМЛЕНИЕ в нашем реле, Мы будем размещать это перемычка реле в одном модуле, или другое место для их инвестирования; всегда имея в виду, что Реле пластина должна быть питание от USB.

IN1 IN2 IN3 IN4 VCC GND

IN1 IN2 IN3 IN4 GND VCC

Теперь мы подключим наш восемь выходов для насадка реле Реле, и в PI на три отделения; следует отметить, что Этот модуль совместим с четыре и восемь выходов реле.

Затем мы видим в таблице связей между Релейный модуль, в PI на три отделения, и Малина PI.

Модуль реле optoacoplados Разъем P3 [object Window]
VCC + 5V + 5V
В 7 [object Window] 0 GPIO 29
В 6 [object Window] 1 GPIO 28
В 5 [object Window] 2 GPIO 18
В 4 [object Window] 3 GPIO 7
В 3 [object Window] 4 GPIO 8
В 2 [object Window] 5 GPIO 10
В 1 [object Window] 6 GPIO 9
В 0 [object Window] 7 GPIO 11
ЗАЗЕМЛЕНИЕ ЗАЗЕМЛЕНИЕ ЗАЗЕМЛЕНИЕ

Теперь приступим к подключить реле optoacoplados пластина непосредственно к GPIO другой Малина, на изображении ниже вы можете увидеть окончательный результат.

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

Модуль реле optoacoplados [object Window]
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
ЗАЗЕМЛЕНИЕ ЗАЗЕМЛЕНИЕ

Для запуска скрипты на языке python [object Window], [object Window] www данных Это пользователь, которому назначен на веб-сервере; Зачем Сначала мы установим веб-сервера apache, как мы видели в предыдущей статье [object Window] sudo visudo в терминале и в конце файла Мы будем добавлять в www-data как 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 работники в этой практике, Нам нужно создать подкаталог, и [object Window]; один для включения, и другие, чтобы превратить реле, Вот пример с 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)

В каждом из Малина PI Мы разместим ваши Скриптов шестнадцать чтобы включить подключенный реле или к Контакты Сотрудники в каждой, что вы можете обратиться в предыдущих таблицах; в скрипты соответствующий Малина подключен непосредственно из GPIO для ретрансляции, что плита будет поместить их в каталог /Главная/Пи/реле/gpio.

Для создания иерархии каталогов и подкаталогов, и копирования программных файлов в Python Мы будем использовать эти два других скрипты в Баш; Первый будет что выполняются в 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Тогда мы будем создавать нашу домашнюю страницу, которая будет содержать тип кнопки ввода Вам будет нужно нажать для выполнения скрипты в Python из веб-интерфейса с помощью метода 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
?>

Если я хочу, чтобы кормить его, все от одной розетки, необходимо обход всех отрицательных выводит 220V Реле.

Подключение к электросети Мы сделаем их так же, как последняя запись, заключенный между plug и переключения схем Миниатюрный выключатель для облегчения отслеживания практики.

Вилка дифференциальные реле

В следующем выпуске на доступной домашней автоматизации Мы будем учиться воспользоваться преимуществами двух автобусов I2C Благодаря PI на три отделения, и мы будем делать доказательство концепции проверки 128 взаимозаменяемые светодиоды, электроприборы.

Если вы хотите, вы можете следовать за мной Щебетать, Facebook, Google +, LinkedIn, или поделиться ею с помощью кнопок под этой публикации, Если у вас есть какие-либо вопросы или предложения, пожалуйста, не стесняйтесь комментировать.

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

4 мысли о»Малина PI - внедрение системы доступной домашней автоматизации [Часть II]

Оставь ответ