Малини Пі - запровадження доступним домашньої автоматизації системи [Частина II]

У попередньому пості про доступним домашньої автоматизації основі Малина Пі, Ми дізналися, перевірка будинок електромережі з'єднань з панелі вісім реле, підключених до наших Малини Пі.

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

Ця практика я збираюся використовувати на Три відділення, Пі, що несе відповідальність за адаптацію всі контакти GPIO з Малини Пі з 3.3V щоб 5V Бі спрямованої і дозволить нам Робота з другим зарезервовані для шини PiCam I2C; Я також використовую пластини реле optoacoplados я використав у попередній статті про домашньої автоматизації.

Pi3Ramas

IP в трьох діапазонах, розроблений @JordiBinefa.

Усе це ставить в нашому розпорядженні в цілому шістнадцять розетки domotic розділена між двома Малини, і з розширюваність з аж до 128 у випадку з на Пі в 3 Відділення і банкомати, Так як він дозволяє скористатися перевагами двох автобусів I2C жертвуючи можливість використання роз'єм на PiCam.

Щоб підключитися до Пі три відділення, Ми повинні зварити шість відповідає другий автобус шпильки I2C що не є солдати заводу, на даний момент Jordi Він активно працює над нову версію свого пластини для Малина Пі B + і моделей Малина Пі 2.

OLYMPUS ЦИФРОВИХ КАМЕРМи можемо допомогти зварити шпильками проведення дві смуги з трьох з перемички, Але Ми повинні переконатися, що вони більш вирівнюються нас наскільки це можливо в усі часи перед паянням їх.

Ми тепер можна підключитися в Три відділення, Пі щоб на Малини Раніше я відредагував ізоляція дві пластини, Для чого Jordi Використовувати сепаратори таких пластмаси.

Пі три відділення і пластикові індекс дільник роз'єм P3.

set05_08_v02_P2P3P4

Схема P3 з'єднувача зроблені @JordiBinefa.

Здійснювати зв'язок з з Реле адаптер плита, Ми повинні погнутих реле Ради Мені потрібно підключитися до Пі три відділення, допомагає нам у деяких плоскогубці; на наступному зображенні можна побачити кінцевий результат.

В залежності від положення шпильки VCC і GND в наших естафета Олімпійського вогню, Ми розміщуємо це перемичку реле в один модуль, або іншому положенні, щоб інвестувати їх; завжди маючи на увазі, що Реле пластина має живлення від USB.

IN1 IN2 IN3 IN4 VCC GND

IN1 IN2 IN3 IN4 GND VCC

Тепер ми Підключаємо наших реле вісім виходів на адаптер пластину з реле, і в на Три відділення, Пі; слід зазначити, що Цей модуль є сумісним з чотирма і вісім виводить реле.

Потім ми можемо бачити таблиці з'єднань між на Реле модуль, на Три відділення, Пі, і Малини Пі.

Модуль реле optoacoplados P3 сполучна лінія Малини Пі модель 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 Малини Пі модель 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-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 шпильки співробітників в цю практику, Нам потрібно створити підкаталозі, і двох сценаріїв на Python; один щоб увімкнути, та інших, щоб перетворити реле, Ось приклад з на 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)

У кожному з на Малини Пі Ми розміщуємо ваш Шістнадцять скрипти Щоб увімкнути підключеного реле або до на PIN-коди працівників у кожній, вам може звернутися в попередній таблиці; на скрипти відповідає за Малини підключений безпосередньо з на GPIO реле пластина буде розмістити їх в каталозі /Головна/Пі/реле/gpio.

Для створення ієрархії каталогів і підкаталогів, і скопіювати файли запрограмований в Python Ми використовуємо ці два інших скрипти у Bash; Перший буде, що виконання у в ПІ підключений до на Три відділення, Пі.

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

Інші Шістнадцять скрипти відповідні контролем до Малини підключений до на Три відділення, Пі Ми будемо тримати їх в каталозі /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/*

На даний момент ми повинні створити на пари ключів так що в Малини Пі Це сторінка для запуску на скрипти підключаються до на Три відділення, Пі віддалено, як користувач, який буде робити це 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 без введення пароля; для експлуатується з одного веб-різні Малина реле на тому ж локальної мережі, у цьому випадку Я зв'язав їх завдяки невеликий безкоштовний маршрутизатор WRTNode.

WRTNode_ETHПотім ми створимо нашу домашню сторінку, яка буде містити в кнопки типу входу у вас буде натиснути для виконання на скрипти у Python від веб-інтерфейс, за допомогою методу; для цього прикладу я покажу в Інтернеті за допомогою всього лише чотири починається так що стаття не надто довге.

<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 і перемикач схеми мініатюрні автоматичний вимикач для полегшення відстеження практики.

Plug диференціальне реле

У наступному випуску на доступним домашньої автоматизації Ми дізнаємося, щоб скористатися перевагами двох автобусів I2C Подяка за Три відділення, Пі, і ми зробимо це доказ концепції перевірки 128 змінний світлодіодів, електричні прилади.

Якщо ви любите ви можете слідкувати за мене на Twitter, Facebook, Google +, LinkedIn, або поділитися ним з кнопок під цієї публікації, Якщо у вас виникли питання або пропозиції будь ласка, не соромтеся коментувати.

Допомогти нам досягти більше читачів Share on LinkedInShare on FacebookTweet about this on TwitterShare on Google+Email this to someone

4 думки про"Малини Пі - запровадження доступним домашньої автоматизації системи [Частина II]

  1. Дуже гарне посади, триває!!
    Питання, Я хочу також встановити домашньої автоматизації з зручна система малини, але не, як наприклад, щоб дізнатися про стан світло,сліпі або деякі пристрої, Якщо це вручну активовано.
    Я говорю про це для прикладу, si quiero encender una luz desde el movil pero no se en que estado se encuentra en ese momento.

    Salu2

    • Hola Igor, Спасибо за ваш коментар.

      Se me ocurre que podrías utilizar algún tipo de sensor que compruebe la tensión que le está llegando a la iluminación que desees controlar, y se lo notifique a tu servidor web en tiempo real para saber en todo momento si está encendida o no.

Напишіть відгук