Raspberry PI - izvajanje cenovno domača avtomatizacija sistema [Del II]

V prejšnjem delovnem mestu o cenovno domača avtomatizacija osnovi Raspberry PI, Smo se naučili preveriti House električnega povezave iz plošče osem releji, povezati naše Raspberry PI.

Screenshot od 2015-02-01 20:20:47Danes smo videli, kako obvladovati skupno šestnajst električnih aparatov Hvala za vezje, ki smo izvajali nad, in ki omogočajo plošče mi je dal Jordi od @electronics.cat in že lahko vidite v povzetku na Dan svobode strojne opreme; oblikoval enako, in stoodstotno prosta strojne opreme.

Za to prakso, bom uporabo na PI tri veje, ki je odgovoren za prilagoditev vseh nožic GPIO od Raspberry PI od 3.3V za 5V dvo-smerno in nam bo omogočilo delo z drugi rezerviran za avtobusne PiCam I2C; I uporabite tudi ploščo releji optoacoplados sem rabil v prejšnjem članku o domača avtomatizacija.

Pi3Ramas

IP v treh segmentih, ki ga @JordiBinefa.

Vse to daje na razpolago skupaj šestnajst vtičnice domotic razdeljeno med dva Malina, in z Razširljivost za do 128 pri na PI 3 veje, Saj nam omogoča, da izkoristijo dva avtobusa I2C žrtvovanja možnost uporabe priključka na je PiCam.

Povezati tri veje v pi, Varimo mora šest, ki ustreza drugi avtobus zatiči I2C to niso vojaki tovarne, v tem trenutku Jordi To je aktivno delajo na novo različico svoje plošče za Raspberry PI B + in Raspberry PI modeli 2.

OLYMPUS DIGITALNI FOTOAPARATLahko pomagamo variti zatiči, ki imajo dve trakovi treh z skakalci, toda Moramo izdelovanje varen oni so bolj usklajena nas mogoče ves čas pred njimi spajkanje.

Mi lahko zdaj vzpostavi povezavo z PI tri veje da je Malina Prej so uredili izolirati ploščama, za kaj Jordi Uporabite ločila take plastike.

Pi tri veje in plastične indeks delilno črto konektorja P3.

set05_08_v02_P2P3P4

Shema P3 konektorja, ki ga @JordiBinefa.

Izvajanje povezavo z na Rele priključna ploščica, Smo morajo biti zakrivljeni nožice rele odbor Hočem povezati tri veje v pi, nam pomagali z nekaj klešče; na naslednji sliki lahko vidite končni rezultat.

Glede na položaj nožice VCC in GND v naše rele, Bo to postavimo skakalec releji v enega modula, ali drugo mesto za vlaganje; vedno nosi v mislih, da Rele ploščo je sila z USB.

IN1 IN2 IN3 IN4 VCC GND

IN1 IN2 IN3 IN4 GND VCC

Zdaj bo povezujemo naše rele osem rezultatov adapter ploščo releji, in je v v PI tri veje; treba je opozoriti, da Ta modul je združljiv s štiri in osem izhodov releji.

Potem lahko vidimo v tabeli povezav med na Rele modul, na PI tri veje, in Raspberry PI.

Modul releji optoacoplados Priključek P3 Raspberry PI model B
VCC + 5V + 5V
V 7 Košček 0 GPIO 29
V 6 Košček 1 GPIO 28
V 5 Košček 2 GPIO 18
V 4 Košček 3 GPIO 7
V 3 Košček 4 GPIO 8
V 2 Košček 5 GPIO 10
V 1 Košček 6 GPIO 9
V 0 Košček 7 GPIO 11
GND GND GND

Sedaj nadaljujete povezati v releji optoacoplados ploščo neposredno na GPIO druge Malina, na sliki spodaj lahko vidite končni rezultat.

Povezave med na GPIO od naše Malina bodo enaki kot v prejšnjega člena, Vendar v tem primeru sem dodal vse povezave tabele.

Modul releji optoacoplados Raspberry PI model B
VCC + 5V
V 1 GPIO 3
V 2 GPIO 2
V 3 GPIO 24
V 4 GPIO 25
V 5 GPIO 23
V 6 GPIO 27
V 7 GPIO 22
V 8 GPIO 4
GND GND

Teči na skripte v python spleta, ki smo videli v nadaljevanju, Najprej smo morali dati dovoljenja uporabnika www-data Je uporabnik dodeljen v spletni strežnik; za kaj Najprej smo namestiti spletni strežnik apache, kot smo videli v prejšnjih članek in bomo napisali sudo visudo v terminal in konec datoteke Bomo dodali na www-data kot sudoer, pa je končni rezultat kot spodaj.

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

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

Vseh šestnajst GPIO nožic zaposleni v tej praksi, Moramo ustvariti podimenik, in dve skripte v Python; da vklopite, in drugi vrteti rele, Tukaj je primer z na 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 vseh je Raspberry PI Bomo svoje Šestnajst skripte vklop povezani releji in da je zatiči delavcev v, da se lahko posvetujete v prejšnjih tabelah; na skripte ustreza v Malina priključen neposredno na GPIO oprto ploščo bo mesto jih v imeniku /Domov/pi releji gpio.

Za ustvarjanje hierarhije imenikov in podimenikov, in programirana prekopirajte v Python To bomo uporabili druga dva skripte v Bash; prvi bo, da izvrši v na PI povezan je PI tri veje.

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

Drugi Šestnajst skripte ustreza nadzor na Malina povezan je PI tri veje Smo jih bo v imeniku /var/www rele 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 tem času mora ustvarjamo a par ključev tako da je Raspberry PI To je stran, če želite zagnati v skripte ere v na PI tri veje na daljavo, kot uporabnik, ki bo to naredil www-data morate dodeliti geslo za prijavo in v vašem imenu ustvari par ključev.

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

Enkrat ustvarjene za par ključev, javnih in zasebnih, Bomo preverili, da smo lahko dostop do SSH brez vstopa geslo; za upravljajo z isto mrežo različnih malina releji v istem lokalnem omrežju, v tem primeru Sem so povezani zaradi majhne prosta stružnica WRTNode.

WRTNode_ETHPotem smo ustvarili našo domačo stran, ki bo vsebovala je vhodne vrste gumbov boste morali pritisnite vršiti v skripte v Python iz spletnega vmesnika z metodo post; v tem primeru bo pokazal spleta s samo štirih se začne tako, da članek ni predolgo.

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

Če želim, da ga nahrani, vse iz ene vtičnice, mora bypass vsi negativni rezultati 220V Rele.

Povezave v omrežje Bomo se njih enako kot zadnji vnos, med plug in stikalo sheme miniaturni odklopnika za lažje sledenje prakse.

Diferencialna plug rele

V naslednji obrok na cenovno domača avtomatizacija Smo izvedeli, da izkoristijo dva avtobusa I2C Zahvaljujoč se PI tri veje, in mi bo a dokaz koncepta preverjanja 128 zamenljivi LED električni aparati.

Če želite lahko sledite mi na Cvrkutati, Facebook, Google +, LinkedIn, ali delite z gumbi pod to objavo, Če imate kakršnakoli vprašanja ali predloge prosim ne oklevajte in pripombe.

Pomagajte nam, da dosežejo več bralcev Share on LinkedInShare on FacebookTweet about this on TwitterShare on Google+Email this to someone

4 misli na"Raspberry PI - izvajanje cenovno domača avtomatizacija sistema [Del II]

  1. Zelo dobrih delovnih mest, še!!
    Vprašanje, Hočem namestiti tudi domača avtomatizacija sistema enostavno malina, ampak ne je kako na primer vedeti, status svetlobe,slepe ali napravo, Če je ročno vključen.
    Rečem, to je na primer, Če želim, da vklopite luč iz telefona, vendar ne v takem stanju je v tistem času.

    Salu2

    • Pozdravljeni Igor, Hvala za vaš komentar.

      Zdi se mi, da lahko uporabite nekakšen senzor, ki preveri napetosti, ki je dosegel razsvetljave, ki ga želite nadzirati, in o tem obvesti je spletni strežnik v realnem času vedeti kadarkoli, če je vklopljena ali ne.

pusti odgovor