Malina PI - zavádění cenově dostupné domácí automatizace systému [Část II]

V předchozí post o cenově dostupné domácí automatizace založený na Malina PI, Naučili jsme se zkontrolovat síťové připojení domu z panelu osmi relé připojené k naší Malina PI.

Snímek 2015-02-01 20:20:47Dnes budeme vidět jak ovládat celkem šestnácti elektrospotřebičů Díky na okruh, který jsme realizovali nad, a povolení desky mi dal Jordi z @electronics.cat a vy už jste viděl v souhrnu Den svobody hardwaru; navrhl totéž, a sto procent zdarma hardware.

Pro tuto praxi budu používat v PI tři pobočky, To je zodpovědný za přizpůsobení všechny kolíky GPIO z Malina PI z 3.3V na 5V směry a nám umožní práce s druhým vyhrazené pro sběrnici PiCam I2C; Já také použít desku relé optoacoplados, jsem použil v předchozím článku o domácí automatizace.

Pi3Ramas

IP ve třech oblastech navrhl @JordiBinefa.

To vše dává k dispozici Celkem šestnáct zásuvek domotic rozdělené mezi dvěma Malina, a s rozšířitelnost až do 128 u PI 3 pobočky, Vzhledem k tomu, že umožňuje nám využít dva autobusy I2C obětování možnosti použití konektoru do PiCam.

Chcete-li připojit pi tři pobočky, Svařujeme třeba šest odpovídající druhé autobus kolíky I2C To nejsou vojáci továrny, v současné době Jordi To aktivně pracuje na nové verzi jeho desky pro Malina PI B + a Malina PI modely 2.

DIGITÁLNÍ FOTOAPARÁT OLYMPUSMůžeme pomoci svařovat špendlíky, držící dva proužky ze tří s můstky, Ale Musíme si být jisti, že více zarovnání nás co nejdříve po celou dobu než je pájení.

My se nyní může připojit PI tři pobočky Chcete-li Malina Jsem dříve upravili izolace dvou desek, Na co Jordi Použít oddělovače ze tyto plasty.

Pi tří poboček a plastové index děliče konektor P3.

set05_08_v02_P2P3P4

Schéma P3 konektor od @JordiBinefa.

Provede připojení Přenosový adaptér deska, Jsme musí ohnout piny relé palubě Chci se připojit k pi tři pobočky, pomáhá nám nějaké kleště; na následujícím obrázku můžete vidět konečný výsledek.

V závislosti na poloze kolíky VCC a GND v naší relé, Bude to klademe svetr relé v jednom modulu, nebo jiné pozici je investovat; mít na paměti, že Reléové desce musí být poháněn USB.

IN1 IN2 IN3 IN4 VCC GND

IN1 IN2 IN3 IN4 GND VCC

Teď budeme připojovat naši relé osm výstupů na desce adaptéru relé, a je v PI tři pobočky; třeba poznamenat, že Tento modul je kompatibilní s čtyřmi a osmi výstupy relé.

Pak můžeme vidět v tabulce spojení mezi Přenosový modul, v PI tři pobočky, a Malina PI.

Modul relé optoacoplados Konektor P3 Malina PI model B
VCC + 5V + 5V
IN 7 Bit 0 GPIO 29
IN 6 Bit 1 GPIO 28
IN 5 Bit 2 GPIO 18
IN 4 Bit 3 GPIO 7
IN 3 Bit 4 GPIO 8
IN 2 Bit 5 GPIO 10
IN 1 Bit 6 GPIO 9
IN 0 Bit 7 GPIO 11
GND GND GND

Nyní přejděte k připojení relé optoacoplados deska přímo GPIO na straně druhé Malina, na obrázku níže můžete vidět konečný výsledek.

Propojení mezi GPIO z našeho Malina bude stejný jako v Předchozí článek, Nicméně v tomto případě jsem přidal všechny tabulky, připojení.

Modul relé optoacoplados Malina PI model 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

Chcete-li spustit skripty v jazyce python na webu, který budeme viz níže, Nejprve musíme udělit oprávnění uživateli www-data To je uživatel přiřazený k webovému serveru; Na co Nejprve jsme bude nainstalován webový server apache, jak jsme viděli v předchozím článku a budeme psát sudo visudo v terminálu a na konci souboru Přidáme na www-data jako sudoer, je konečný výsledek jako níže.

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

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

Pro každou z šestnácti GPIO pinů zaměstnanci v této praxi, Musíme vytvořit podadresář, a dva skripty v Pythonu; jedním pro zapnutí, a druhá pro zapnutí relé, Zde je příklad s KÓD 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)

V každém z Malina PI Umístíme vaše Šestnáct skripty k zapnutí připojeného relé nebo do špendlíky zaměstnanci v každém, že lze najít v předchozích tabulkách; v skripty odpovídá Malina přímo z připojené GPIO Chcete-li předat, že deska je umístit do adresáře /Domů pí relé gpio.

Chcete-li vytvořit hierarchii adresářů a podadresářů, a zkopírujte naprogramované v Python Používáme tyto další dva skripty v Bash; první bude to provést v připojeno k PI tři pobočky.

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

Ostatní Šestnáct skripty odpovídající kontrolu Malina připojeno k PI tři pobočky Skladujeme je v adresáři /var/www/relay/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/*

V této době musíme vytvořit dvojice klíčů tak, aby Malina PI Je to stránka spustit skripty z připojeného k PI tři pobočky vzdáleně, jako uživatel, který to udělá, je www-data musí přiřadit heslo pro přihlášení a vytvoření dvojice klíčů vaším jménem.

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

Po vytvoření dvojici klíčů veřejných a soukromých, Budeme kontrolovat, že můžeme přístup do SSH bez zadání hesla; pro provozováno na stejném webu různých Malina relé ve stejné místní síti, v tomto případě Mám připojen je díky malé zdarma router WRTNode.

WRTNode_ETHPak budeme vytvářet naši domovskou stránku, která bude obsahovat Typ tlačítka vstupu budete muset stisknout spustit skripty v Python z webového rozhraní pomocí metody post; v tomto příkladu se zobrazí web s pouze čtyři starty tak, že není příliš dlouhý článek.

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

Pokud chci nakrmit mu všechno jedním potrubím, musí obejít všechny negativní výstup 220V Relé.

Připojení k síti Donutíme je stejným způsobem jako v poslední položce, uzavřené mezi plug a přepínač režimů miniaturní jističe pro usnadnění sledování praxe.

Zástrčka diferenciální relé

V další splátky na cenově dostupné domácí automatizace Budeme učit využít dva autobusy I2C Díky PI tři pobočky, a my vám doklad o konceptu kontroly 128 Výměnné LED o elektrické spotřebiče.

Pokud jste jako vy se mnou na Twitter, Facebook, Google +, LinkedIn, nebo jej sdílet s tlačítky v této publikaci, Pokud máte jakékoliv dotazy nebo návrhy prosím neváhejte se vyjádřit.

Pomozte nám dostat více čtenářů Share on LinkedInShare on FacebookTweet about this on TwitterShare on Google+Email this to someone

4 myšlenky na"Malina PI - zavádění cenově dostupné domácí automatizace systému [Část II]

  1. Velmi dobré příspěvky, pokračuje!!
    Otázka, Chci nainstalovat také domácí automatizace s snadné Malinová systém, ale ne, je jak například znát stav světlo,slepá nebo zařízení, Je-li ručně byl aktivován..
    Říkám to například, Když chci zapnout světlo z telefonu, ale nemusí být v tomto státě je v té době.

    Salu2

    • Dobrý den Igor, Díky za váš komentář.

      Napadá mě, že mohl použít nějaký druh senzoru, který ověřuje napětí, které dosahuje osvětlení, které chcete ovládat, a oznámí, že je to váš webový server v reálném čase vědět kdykoliv, pokud je zapnutý nebo ne.

Napsat komentář