Aviečių PI - prieinamą namų automatizavimo sistemos įgyvendinimo [II dalis]

Į ankstesnį postą apie prieinamą namų automatizavimo remiantis aviečių PI, Mes sužinojome, patikrinti House maitinimo jungtys iš kolegijos aštuonios relės prie mūsų Aviečių PI.

Ekrano 2015-02-01 20:20:47Šiandien mes matome, kaip kontroliuoti iš viso šešiolika prietaisai Ačiū kad mes įgyvendino virš grandinės, ir leidžianti lentos davė man Jordi@electronics.cat ir jūs jau gali pamatyti santraukos, Aparatūros laisvės diena; sukurta tos pačios, ir šimtas procentų Free aparatūra.

Sprendžiant šį, I 'm going to naudoti į PI's tris filialus, tai atsakomybės, siekiant prisitaikyti visi kaiščiai GPIOAviečių PI3.3V į 5V bi-kryptingos ir leis mums darbo su antra saugomos PiCam I2C magistralės; Aš taip pat naudoti plokštelės relės optoacoplados aš ankstesniame straipsnyje apie namų automatizavimo.

Pi3Ramas

IP tris intervalus sukurta @JordiBinefa.

Visa tai kelia mūsų žinioje iš viso šešiolika lizdai Domótic padalintas tarp dviejų Aviečių, ir su plėsti, iki 128 dėl to PI's 3 filialai, Nes ji leidžia mums pasinaudoti du autobusai I2C aukoti galimybę naudoti jungtis su į PiCam.

Prisijungti apie pi tris filialus, Mes turi suvirinti iš šešių atitinkanti antrą autobusų smeigtukai I2C kurios nėra karių gamyklos, Šiuo metu Jordi Jis aktyviai dirba su nauja versija savo plokštelės aviečių PI b + ir aviečių PI modeliai 2.

OLYMPUS SKAITMENINIS FOTOAPARATASMes galime padėti suvirinti ūkyje dviejų juostų trijų su smeigtukai džemperiai, bet Turime užtikrinti, jie yra labiau suderintos mums kuo visą laiką prieš litavimo juos.

Mes dabar galime prisijungti į PI's tris filialus į į Aviečių Ar anksčiau redagavo izoliuoti mikrotitravimo, kam Jordi Naudokite skyriklius toks plastikų.

Pi, tris filialus ir plastikinį indeksas daliklis jungtį P3.

set05_08_v02_P2P3P4

Schemos P3 jungties pagamintas iš @JordiBinefa.

Atlikti ryšys su į Relės adapterio plokštės, Mes turi sulenkti smeigtukai relės valdybos Aš noriu prisijungti prie priimančiosios šalies tris filialus, padėti mums su kai kurių replės; kito paveikslėlio galite pamatyti galutinį rezultatą.

Priklausomai nuo smeigtukai VCC ir GND mūsų Relay, Mes vietoje tai megztinis relės į vieną modulį, ar kitas pareigas juos investuoti; visada atsižvelgiant į tai, kad Relės plokštelės turi būti maitinamas USB.

IN1 IN2 IN3 IN4 VCC GND

IN1 IN2 IN3 IN4 GND VCC

Dabar mes bus prijungti mūsų relės aštuonių rezultatų relės adapterio plokštės, ir yra dėl PI's tris filialus; reikėtų pažymėti, kad Šis modulis yra suderinamas su keturių ir aštuonių išveda relės.

Tada mes galime matyti ryšius tarp lentelės, Relinis modulis, į PI's tris filialus, ir Aviečių PI.

Modulis relės optoacoplados Jungtis P3 Aviečių PI modelis B
VCC + 5V + 5V
IN 7 Šiek tiek 0 GPIO 29
IN 6 Šiek tiek 1 GPIO 28
IN 5 Šiek tiek 2 GPIO 18
IN 4 Šiek tiek 3 GPIO 7
IN 3 Šiek tiek 4 GPIO 8
IN 2 Šiek tiek 5 GPIO 10
IN 1 Šiek tiek 6 GPIO 9
IN 0 Šiek tiek 7 GPIO 11
GND GND GND

Dabar pereikite prie prisijungti į relės optoacoplados plokštė tiesiogiai į GPIO kitos Aviečių, paveikslėlyje galite pamatyti galutinį rezultatą.

Jų ryšius su GPIO iš mūsų Aviečių jie bus tokie patys kaip ankstesniame straipsnyje, Tačiau, šiuo atveju aš pridėjo visus lentelės ryšiai.

Modulis relės optoacoplados Aviečių PI modelis 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

Paleisti į scenarijus Python dėl interneto kad mes žr. toliau, Pirmiausia mes turime suteikti teises vartotojo www-data Jis yra priskirtas prie žiniatinklio serverio vartotojas; kam Pirmą kartą mes bus įdiegti apache web server kaip matėme šią ankstesniame straipsnyje ir mes parašyti sudo visudo į terminalą ir failo pabaigoje Mes pridėti www-data kaip sudoer, galutinis rezultatas kaip nurodyta toliau.

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

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

Kiekvienam iš šešiolikos GPIO smeigtukai darbuotojai šioje praktikoje, Mums reikia sukurti pakatalogį, ir du scenarijus Python; vienas įjungti, o kitas pasukite relės, Štai pavyzdys su į 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)

Kiekvienoje į Aviečių PI Mes vietoje jūsų Šešiolika scenarijus Norėdami įjungti prijungtas relės arba prie to smeigtukai darbuotojų kiekvienoje, kad galite susipažinti su ankstesniais lentelėse; į scenarijus atitinkantis į Aviečių prijungtas tiesiai iš to GPIO relė plokštė bus patalpinti kataloge /Pradžia/pi/relės/gpio.

Kurti katalogų ir pakatalogių hierarchija, ir kopijuoti užprogramuotas failai Python Mes panaudosime tai kiti du scenarijus į Bash; pirmasis bus kad veiktu su PI prie to PI's tris filialus.

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

Kiti Šešiolika scenarijus atitinkantis kontrolės ir Aviečių prie to PI's tris filialus Mes nuolat juos kataloge /var/www/relės/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/*

Šiuo metu turime sudaryti tam raktų porą taip, kad į Aviečių PI Tai, kad paleisti į scenarijus dėl sujungtų į į PI's tris filialus nuotoliniu būdu, kaip vartotojo, kuris darys jis yra www-data turi priskirti slaptažodį kad būtų galima prisijungti ir sukurti raktų porą savo vardu.

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

Sukūrę, viešojo ir privačiojo raktų porą, Mes patikrinsime, kad mes galime pasiekti SSH Neįvedę slaptažodžio; už iš to paties žiniatinklio skirtingų aviečių relės tame pačiame vietos tinkle, Šiuo atveju Turiu prijungti juos dėl mažų nemokamai maršrutizatorius WRTNode.

WRTNode_ETHTada mes sukursime mūsų pagrindinį puslapį, kuris yra į mygtukai įvesties tipo Jūs turite paspausti vykdyti, scenarijus į Python nuo web sąsają naudojant post metodu; Šiame pavyzdyje aš jums parodysiu naršymas naudojant tik keturis prasideda, kad straipsnyje nėra per ilgas.

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

Jei aš noriu, kad pašarų jam viskas iš vieno lizdo, turi apeiti visus neigiamus išveda 220V Relės.

Elektros tinklo jungtys Mes atliksime juos tokiu pat būdu kaip paskutinį įrašą, tarp lizdo ir perjungti programas miniatiūriniai jungtuvo siekiant palengvinti stebėjimo praktika.

Kištukas diferencialo relės

Į eilinį ant prieinamą namų automatizavimo Mes mokytis pasinaudoti du autobusai I2C Ačiū, kad į PI's tris filialus, ir mes su įrodinėjimo sąvoka tikrinimas 128 sukeisti LED elektros prietaisų.

Jei jums patinka galite follow me on Twitter, "Facebook", Google +, LinkedIn, arba pasidalinti ja su mygtukus pagal šio leidinio, Jei turite klausimų ar pasiūlymų prašome nedvejodami komentaras.

Padėti mums pasiekti daugiau skaitytojų Share on LinkedInShare on FacebookTweet about this on TwitterShare on Google+Email this to someone

4 mintys apie"Aviečių PI - prieinamą namų automatizavimo sistemos įgyvendinimo [II dalis]

  1. Labai geras pranešimų, toliau!!
    Klausimas, Aš noriu, kad taip pat įdiegti namų automatizavimo su lengvai aviečių sistema, bet ne tai kaip pvz žinoti statusas šviesa,aklas ar įtaisas, Jei rankiniu būdu suaktyvintas.
    Aš tai sakau pvz., Jei norite įjungti šviesą iš telefono, bet ne ta valstybė-tai tuo metu.

    Salu2

    • Sveiki Igoris, Ačiū už jūsų komentarą.

      Ji atsiranda man, kad tu gali naudoti tam tikros rūšies jutiklis, kuris patikrina įtampos, kuri yra pasiekti norite valdyti apšvietimo, ir pranešti apie tai savo tinklo serverio realiu laiku sužinoti bet kuriuo metu, jei jis yra ar ne.

palik atsakymą