Aveņu PI - pieejamu mājas automatizācijas sistēmas ieviešanas [II daļa]

Ar iepriekšējā amatā par pieejamu mājas automatizācijas pamatā aveņu PI, Mēs uzzinājām, lai pārbaudītu mājas elektrotīkla savienojumus no paneļa astoņas releji, kas savienots ar mūsu Aveņu PI.

Screenshot 2015-02-01 20:20:47Šodien mēs redzam, kā kontrolēt kopējo sešpadsmit elektroierīces Pateicoties ķēde, kas mums jāīsteno virs, un nodrošinot dēļi ir devis man Jordi no @electronics.cat un jūs jau tu varēji redzēt kopsavilkums Aparatūras brīvības diena; tas pats projektējis, un simts procenti bezmaksas aparatūra.

Šajā praktiskajā nodarbībā, esmu gatavojas izmantot uz PI ir trīs filiāles, kas ir atbildīgs par pielāgotu visus kontaktus GPIO no Aveņu PI no 3.3V lai 5V bi-virzīti un ļaus mums strādājot ar otro rezervētas PiCam I2C kopnē; Es arī izmantot plate releji optoacoplados lietoju iepriekšējā rakstā par mājas automatizācijas.

Pi3Ramas

IP @JordiBinefa izstrādājusi trīs diapazoni.

Tas viss liek mūsu rīcībā pavisam no sešpadsmit Sockets domotic dalīta starp diviem Avenes, un ar paplašināmība, līdz 128 gadījumā, ja PI ir 3 filiāles, Jo tas ļauj mums, lai izmantotu divi autobusi I2C jāziedo iespējamību, izmantojot savienotāju, lai PiCam.

Lai savienotu pī trīs zari, Mums jābūt šuves atbilst otrais autobuss adatas sešus I2C kas nenāk karavīru Factory, tajā brīdī Jordi Tā aktīvi strādā pie jaunu versiju tās plāksnes aveņu PI b + un aveņu PI modeļi 2.

OLYMPUS DIGITĀLĀS KAMERASMēs varam palīdzēt metināms saimniecībā divas sloksnes no trim ar tapām džemperi, bet Mums ir jāpārliecinās, viņi ir vairāk jāsaskaņo mums iespējami visu laiku pirms tos lodēšanas.

Mēs tagad var izveidot savienojumu PI ir trīs filiāles lai Avenes Ir iepriekš veikta rediģēšana izolējot divas plates, kāpēc Jordi Lietot šādu plastmasu atdalītājus.

Pi trīs filiāles un plastmasas indekss dalītāju savienotājs P3.

set05_08_v02_P2P3P4

Shēma, ko @JordiBinefa P3 savienotāja.

Veikt savienojumu ar Releja adaptera plate, Mēs nedrīkst liekties adatas relay Board Vēlos izveidot savienojumu ar pī trīs zari, palīdz mums ar dažiem knaibles; nākamajā attēlā redzams gala rezultātu.

Atkarībā no atrašanās vietas pins VCC un GND jo mūsu relejs, Mēs šo vietu džemperis viena moduļa releji, vai citu pozīciju, lai ieguldītu tos; vienmēr paturot prātā, ka Releju plate ir darbina USB.

IN1 IN2 IN3 4 VCC GND

IN1 IN2 IN3 4 GND VCC

Tagad mēs savienos mūsu releja astoņas izejas adaptera plate, releji, un ir PI ir trīs filiāles; jāņem vērā, ka Šajā modulī ir saderīgs ar četrām un astoņi izejas releji.

Tad mēs varam redzēt savienojumi starp tabulu Releja modulis, uz PI ir trīs filiāles, un Aveņu PI.

Moduļa releji, optoacoplados Savienotāja P3 Aveņu PĪ modelis 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

Tagad turpināt savienot relejus optoacoplados plate tieši uz GPIO no otras puses Avenes, attēlā zemāk jūs varat redzēt gala rezultātu.

Savienojumus starp GPIO no mūsu Avenes tie būs tāda pati kā Iepriekšējais raksts, Tomēr šajā gadījumā man ir pievienoti visi savienojumi tabulas.

Moduļa releji, optoacoplados Aveņu PĪ 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

Lai palaistu Python skriptu no interneta, ka mēs redzēsim vēl tālāk, Vispirms mums ir dot atļaujas lietotājam www-data Tas ir lietotājam piešķirts uz web serveri; kāpēc Vispirms mēs uzstādīsim apache web serveri, kā mēs redzējām šajā iepriekšējā pantā un mēs rakstīt sudo visudo termināla un faila beigās Mēs pievienosim www-data, sudoer, tiek gala rezultātu, kā parādīts tālāk.

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

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

Katram no sešpadsmit GPIO pins Šajā praktiskajā nodarbībā nodarbināto, Mums ir jāizveido apakšdirektorijā, un divi Python skriptu; viens, lai ieslēgtu, un otrs savukārt relay, Šeit ir piemērs ar PIN KODU 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)

Katrā no Aveņu PI Mums uzliks savu Sešpadsmit skripti lai ieslēgtu pievienoto releji vai adatas darbinieki no katras, varat konsultēties ar iepriekšējās tabulās; uz skripti atbilst Avenes savienota tieši no GPIO ar releju plate uzliks tos direktorijā /Sākums/pi/releji/gpio.

Lai izveidotu hierarhijas direktoriju un apakšdirektoriju, un kopēt programmētu failus Python Mēs izmantosim šiem abiem pārējiem skripti programmā Bash; būs pirmais, kas izpilda PI izveidots savienojums ar PI ir trīs filiāles.

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

Pārējie Sešpadsmit skripti atbilst kontroles Avenes izveidots savienojums ar PI ir trīs filiāles Mēs tos paturēt direktorijā /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/*

Šajā laikā mums ir jāizveido atslēgu pāri tāpēc, ka Aveņu PI Tā ir lapa, lai palaistu skripti no pievienotās uz PI ir trīs filiāles attāli, kā lietotājs, kurš to darīs www-data ir jāpiešķir parole lai pieteiktos un izveidot atslēgu pāri jūsu vārdā.

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

Reiz izveidotas publiskās un privātās atslēgas pāra, Mēs pārbaudīsim, ka mēs varam piekļūt SSH neievadot paroli; par darbināt no vienu un to pašu web dažādu aveņu releji tajā pašā lokālajā tīklā, Šajā gadījumā Esmu pievienojis tiem pateicoties mazo bez router WRTNode.

WRTNode_ETHTad mēs izveidosim mūsu mājas lapu, kas satur pogas ievades tips jums ir jānospiež, lai izpildītu skripti programmā Python no web interfeisu, izmantojot post metodi; šim piemēram esmu gatavojas parādīt web, izmantojot tikai četras izslēdzēji, tāpēc rakstu nav pārāk plaša.

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

Ja vēlaties, lai pabarotu viņu visu, sākot ar vienu sazarojumu, misa apiet visas negatīvās izvada 220V Relejs.

Strāvas savienojumi Mēs radīsim tos tādā pašā veidā, kā pēdējais ieraksts, slēgtās shēmas aizbāzni un pārslēdzieties starp Miniature circuit breaker lai atvieglotu prakses uzskaites.

Kontaktdakšu diferenciāļa relejs

Nākamā iemaksa par pieejamu mājas automatizācijas Mēs iemācīties izmantot priekšrocības, ko divi autobusi I2C Pateicoties PI ir trīs filiāles, un mēs veiksim pierādījumu jēdziens pārbaude 128 maināmi gaismas diodes elektroierīču.

Ja jums patīk jūs varat sekot mani uz Čivināt, Facebook, Google +, LinkedIn, vai dalīties tajā ar pogām zem šīs publikācijas, Ja jums ir kādi jautājumi vai ierosinājumi, lūdzu, nekautrējieties komentēt.

Palīdz mums sasniegt vairāk lasītāju Share on LinkedInShare on FacebookTweet about this on TwitterShare on Google+Email this to someone

4 domas par"Aveņu PI - pieejamu mājas automatizācijas sistēmas ieviešanas [II daļa]

  1. Ļoti labas ziņas, vēl tik!!
    Jautājums, Es gribu instalēt arī mājas automatizācijas ar viegli aveņu sistēmu, bet ne kā, piemēram, uzzināt gaismas statusu,neredzīgo vai citu ierīci, Ja ir aktivizēta manuāli.
    Es saku, piemēram, Ja vēlaties ieslēgt gaismu no automašīnas, bet nav ar to, ka valsts atrodas šajā laikā.

    Salu2

    • Labdien, Igor, Paldies par jūsu komentārs.

      Tas notiek ar mani, kas varētu izmantot kaut kādu sensors, kas pārbauda spriedzi, kas drīz sasniegs jūs vēlaties, lai kontrolētu apgaismojumu, un paziņot, ka tā ir jūsu tīmekļa servera reālajā laikā zināt jebkurā brīdī, ja tas ir vai nav.

atstāt atbildi