Malina PI - implementacija pristupačne home automatizacija sistem [II dio]

U prethodnom postu o pristupačne kućne automatizacije na Raspberry PI, Naučili smo da provjerite kuću priključke iz panel od osam releja povezan s našim Malina PI.

Snimka ekrana od 2015-02-01 20:20:47Danas ćemo vidjeti kako kontrolirati Ukupno šesnaest električnih uređaja Hvala strujni krug koji smo implementirali iznad, i omogućavanje zajednice mi je dao Jordi od @electronics.cat a ti već mogli vidjeti u sažetku na Dan slobode hardvera; dizajniran od strane istog, i sto posto slobodan hardver.

Za tu praksu, ja ću koristiti na PI je tri grane, koji je odgovoran za prilagodbu sve igle GPIO od Malina PI od 3.3V da 5V dvosmjerno i omogućit će nam da rad s drugom za PiCam I2C sabirnici; Također će koristiti ploča releji optoacoplados sam se u prethodnom članku o kućne automatizacije.

Pi3Ramas

IP u tri raspona dizajnirao @JordiBinefa.

Sve to stavlja na raspolaganju Ukupno šesnaest utičnice Domotična podijeljena između dva Malina, i s proširivost se za 128 u u PI je 3 grane, Jer omogućuje nam uzeti prednost od dva autobusa I2C žrtvovanja mogućnost korištenja priključka na PiCam.

Povezivanje pi je tri grane, Mora variti šest odgovara drugi autobus igle I2C To nisu vojnici tvornice, u ovom trenutku Jordi Aktivno radi na novu verziju pločici za maline PI B + i Raspberry PI modela 2.

OLYMPUS DIGITALNI FOTOAPARATMožemo pomoći da vara igle drži dvije trake s tri Skakači, Ali Moramo osigurati oni su više usklađeni nas moguće u svakom trenutku prije lemljenja ih.

Mi se sada može povezati s PI je tri grane da je Malina Prethodno bili odvajanje dvije ploče, Zašto Jordi Koristi razdjelnike takve plastike.

Pi tri grane i plastične indeks razdjelnik konektor P3.

set05_08_v02_P2P3P4

Shema P3 priključka od strane @JordiBinefa.

Izvršiti povezivanje s na Relej adapterom, Mora savijati igle relej odbora Želim povezati s pi je tri grane, nam pomaže sa kliješta; u sljedeću sliku možete vidjeti konačni rezultat.

Ovisno o položaju igle VCC i GND u našim relej, Postavit ćemo ovo skakač releji u jedan modul, ili neki drugi položaj u njih ulagati; uvijek imajući u vidu da Relej ploča mora biti Power PC mimo USB.

IN1 IN2 IN3 IN4 VCC GND

IN1 IN2 IN3 IN4 GND VCC

Sada smo će povezati naše relej od osam izlaza za adapter ploča releji, i u u PI je tri grane; treba napomenuti da Ovaj modul je kompatibilan sa četiri a osam izlazni releji.

Onda možemo vidjeti tablicu veze između s Relej modul, na PI je tri grane, i Malina PI.

Modul prenosi optoacoplados Priključak P3 Malina PI model B
VCC + 5V + 5V
U 7 Bitni 0 GPIO 29
U 6 Bitni 1 GPIO 28
U 5 Bitni 2 GPIO 18
U 4 Bitni 3 GPIO 7
U 3 Bitni 4 GPIO 8
U 2 Bitni 5 GPIO 10
U 1 Bitni 6 GPIO 9
U 0 Bitni 7 GPIO 11
GND GND GND

Se upute za spajanje na releji optoacoplados ploča izravno na GPIO od drugih Malina, na slici ispod možete vidjeti konačni rezultat.

Veze između s GPIO od naše Malina Oni će biti isti kao u Prethodni članak, Međutim u ovom slučaju sam dodao sve veze stol.

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

Za pokretanje i skripte u python web koji ćemo vidjeti u nastavku, Prvo moramo dati dozvole korisnika www-data Je korisnik dodijeljen web-poslužitelj; Zašto Prvo ćemo instalirati apache web server kao što smo vidjeli u prethodnom članku i pisati sudo visudo u terminal i na kraj datoteke Mi ćemo dodati na www-podataka kao sudoer, što je konačni rezultat kao ispod.

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

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

Za svaki od šesnaest GPIO igle zaposlenih u ovoj praksi, Potrebno kreirati poddirektorij, i dva pisma u Python; jedan za uključivanje, i druge da relej, Ovdje je primjer s 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)

U svakoj je Malina PI Postavit ćemo vaš Šesnaest skripte na povezivanje releja i da je igle zaposlenika u svakom, da se može konzultirati u prethodnim tablicama; na skripte odgovara na Malina povezivanje izravno from u GPIO da relej ploča će ih staviti u direktorij /Dom/pi/releji/gpio.

Za stvaranje hijerarhije direktorije i poddirektorije, i programirane, kopirajte u Python Upotrijebit ćemo ove druge dvije skripte u Paša; prvi će biti to izvršiti u u PI povezani na PI je tri grane.

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

Ostali Šesnaest skripte odgovara za kontrolu u Malina povezani na PI je tri grane Ćemo ih uvijek držati u direktorij /var/www/prijenos/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/*

U ovom trenutku moramo stvoriti na par ključeva tako da je Malina PI To je stranica pokrenuti na skripte korištenjem da na PI je tri grane daljinski, kao korisnik koji će to učiniti je www-data dodijeliti lozinku Kako se prijaviti i stvoriti par ključeva u vaše ime.

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

Jednom stvorena je par ključeva javnih i privatnih, Provjeravamo da možemo pristup SSH bez unosa lozinke; za napajati iz iste web različitih malina releji na istoj lokalnoj mreži, u ovom slučaju Sam ih povezao zahvaljujući malom besplatno usmjerivač WRTNode.

WRTNode_ETHOnda ćemo napraviti našu početnu stranicu koja će se sastojati u gumbi unos vrsta Morat ćete pritisnuti izvršiti u skripte u Python from web sučelje pomoću post metode; za ovaj primjer Pokazat ću web sa samo četiri počinje tako da članak nije predugo.

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

Ako želim da nahrani sve iz jedne utičnice, mora zaobići sve negativno izlazi 220V Relej.

Povezivanje na mrežu Mi ćemo ih napraviti na isti način kao u posljednje, uokviren utikač i prekidač sheme minijaturni prekidač da bi se olakšalo praćenje prakse.

Priključak diferencijalnog releja

U sljedeći obrok na pristupačne kućne automatizacije Naučit ćete uzeti prednost od dva autobusa I2C Zahvaljujući na PI je tri grane, i mi ćemo se dokaz koncepta provjere 128 može zamijeniti led od električnih uređaja.

Ako želite možete slijedite me na Twitter, Facebook, Google +, LinkedIn, ili podijeliti s gumbima ispod ove publikacije, Ako imate bilo kakvih pitanja ili sugestija slobodno komentirati.

Pomažu nam do više čitatelja Share on LinkedInShare on FacebookTweet about this on TwitterShare on Google+Email this to someone

4 misli na"Malina PI - implementacija pristupačne home automatizacija sistem [II dio]

  1. Vrlo dobrih postova, i dalje!!
    Pitanje, Želim instalirati home automatizacija sustava lako malina, Ali ne i kako na primjer da se o stanju svjetlom,slijepi ili neki uređaj, Ako je ručno aktivirati.
    To kažem na primjer, Ako želim da upali svjetlo na telefonu, ali ne biti u tom stanju je u to vrijeme.

    Salu2

    • Pozdrav Igor, Hvala za tvoj komentirajte.

      To se događa mi se da ti treba nekakav senzor koji provjerava napetosti koja dostiže osvjetljenje nadzora, i o tome obavijestiti da je vaš web-poslužitelj u realnom vremenu u bilo kojem trenutku da li je ili ne.

ostavi odgovor