Malina PI - implementaciji sistem za pristupačne kućne automatike [Deo II]

U prethodnom postu o pristupačne kućne automatike na osnovu maline PI, Smo saznali da proverite kuću veze pogon iz panel od osam releji povezan sa nam Malina PI.

Snimak od 2015-02-01 20:20:47Danas ćemo videti kako da kontrolišu ukupno 16 električne uređaje Hvala ti za krug koji smo sprovodili iznad, i omogućavanje daske mi je dao Jordi od @electronics.cat a ti već mogao da vidiš u rezime na Dan slobode hardvera; dizajnirao ju je isto, i 100% slobodan hardver.

Za ovu praksu, idem da koristite na PI je tri grane, To je odgovoran za adaptacija sve iglice GPIO od Malina PI od 3.3V da 5V bi-directionally i da će nam omogućiti da rad sa drugom rezervisana za PiCam I2C magistrali; I ja koristim tanjir releji optoacoplados sam koristio u prethodnom članku o kućne automatike.

Pi3Ramas

IP u tri opsega dizajniran od strane @JordiBinefa.

Sve ovo stavlja na raspolaganje ukupno 16 Sockets domotic podeljen između dva Malina, i sa expandability od gore da 128 Prekini sa PI je 3 grane, Otkad to nam dozvoljava da iskoristite prednosti dva autobusa I2C ћrtvujuжi se mogućnost spajanja da se PiCam.

Da biste se povezali sa pi tri grane, Morate zavarimo šesticu koja odgovara drugi autobus iglice I2C que no vienen soldados de fábrica, u ovom trenutku Jordi Aktivno radi na novu verziju svoj tanjir za maline PI B + i maline PI modeli 2.

DIGITALNI FOTOAPARAT OLYMPUSDa pomognemo zavariti iglice drži dve trake od tri s prespojnici, Ali Moramo biti sigurni da oni više poravnati nas što je moguće u svakom trenutku pre nego što ih lemljenje.

Sada možemo da povežemo na PI je tri grane da je Malina Sam prethodno uredili Izolovao matrice, para lo que Jordi Koristi znakove za razdvajanje takva plastika.

Pi od tri grane i plastične indeksa razdvojne linije spajanja P3.

set05_08_v02_P2P3P4

Šema od P3 konektor koji je napravljen od strane @JordiBinefa.

Izvrši veza sa na Relej adaptera tanjir, Moramo promeniti iglice od relej odbora Da biste se povezali sa tri grane na pi, Pomagao nam je sa klještima; u sledeće slike možete da vidite konačni rezultat.

U zavisnosti od položaja igle VCC i ANDJELA u nam relej, Izložićemo ovo Skakaи releji u jedan modul, ili drugi položaj da investiraju ih; Uvek imajući na to smeta Relej tablice moraju biti pokretana USB.

IN1 IN2 IN3 IN4 VCC ANDJELA

IN1 IN2 IN3 IN4 ANDJELA VCC

Sada smo povezivaće nam relej osam izlaza do table adaptor od releja, i u u PI je tri grane; Treba napomenuti da Ovaj modul je kompatibilan sa 4 i 8 pravi releji.

A onda vidimo sto veza između na Relej modul, na PI je tri grane, i Malina PI.

Modulo relés optoacoplados Spajanja P3 Raspberry PI Modelo 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
ANDJELA ANDJELA ANDJELA

Sada nastavite da biste se povezali sa releji optoacoplados tablice direktno za u GPIO od drugog Malina, u dole navedenoj slici možete da vidite konačni rezultat.

Veze između na GPIO od nam Malina Oni će biti ista kao u u prethodnom članku, Međutim u ovom slučaju ne dodate sve sto veze.

Modulo relés optoacoplados Raspberry PI Modelo 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
ANDJELA ANDJELA

Pokretanje sa skripte na pitona de la web que veremos mas abajo, primero tenemos que dar permisos al usuario www-data To je korisnik dodeljen web server; za šta Prvo će instalirati apache web server kao što smo videli u ovom prethodnom članku y escribiremos Sudo visudo na terminalu i na kraju datoteka Uvrstićemo www-data kao sudoer, biti 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 zaposleni u ovoj praksi, Treba nam da biste kreirali poddirektorijum, i dos scripts en Python; da se vratim, a drugi da se pretvori u relej, Evo primera sa na PIN KÔD 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 svakom od na Malina PI Izložićemo tvoj Šesnaest skripte Uključivanje povezani releji, ili da se igle zaposleni u svakoj, možete da pogledate u prethodnim tabelama; na skripte koja odgovara na Malina povezani direktno iz na GPIO da prenesem tanjir će ih staviti u katalogu /Dom/pi/releji/gpio.

Da biste kreirali hijerarhiju direktorijumima i poddirektorijumima, i kopirajte programiranim datoteke u Piton Preko ovih druga dva skripte u Bash; prvi će biti da se to izvrši u na PI povezan sa 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/*

I ostale Šesnaest skripte odgovaraju za kontrolu u Malina povezan sa PI je tri grane Иuvaжemo ih u katalogu /Var/www/relej/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 neki par ključeva Tako da je Malina PI To je stranica za pokretanje na skripte od su povezani da su PI je tri grane daljinski, kao što je korisnik koji će to uraditi www-podataka morate da dodelite lozinku da bi se prijavi 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 javnih i privatnih ključeva, Proverite da budemo mogli. pristupiti ako SSH bez unošenja lozinke; za delovali su iz iste web od različitih prenosi je malina na istoj lokalnoj mreži, u ovom slučaju Povezao sam ih zahvaljujući malim mrežnu skretnicu za besplatno WRTNode.

WRTNode_ETHA onda ćemo stvoriti našu stranicu dom koji će sadržati na dugmad za unos tip Moraćete da pritisnete da izvrši na skripte u Piton iz web interfejsa pomoću post metode; para este ejemplo voy a mostrar la web con solo cuatro salidas para que el artículo no sea demasiado extenso.

<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 ga hraniti sve od jednom utičnicu, Mora bajpas sve negativne pravi 220V Relej.

Koje veze da struju I da na isti način kao i u poslednje stavke, koji se nalazi između na plug i prekidač šeme minijaturni osigurač da biste olakšali praćenje prakse.

Relé enchufe diferencial

U novom nastavku na pristupačne kućne automatike Moramo nauciti da iskoristi dva autobusa I2C Zahvaljujemo na PI je tri grane, i vodili na dokaz da je koncept provera 128 zamenljiva led diode od strane električne uređaje.

Kao ti da pratite me Twitter-a, Facebook, Google +, LinkedIn, niti je deliti sa dugmadi ispod ove publikacije, Ako imate bilo kakvih pitanja ili sugestije ne oklevajte da komentariše.

Pomozi nam da dosegnemo više čitalaca Share on LinkedInShare on FacebookTweet about this on TwitterShare on Google+Email this to someone

4 misli na"Malina PI - implementaciji sistem za pristupačne kućne automatike [Deo II]

  1. Muy buenos posts, sigue así!!
    Una pregunta, yo quiero montar también un sistema domotico casero con raspberry muy sencillo, pero no se como hacer por ejemplo para saber el estado de una luz,persiana o algún dispositivo, si ha sido activado manualmente.
    Lo digo por ejemplo, si quiero encender una luz desde el movil pero no se en que estado se encuentra en ese momento.

    Salu2

    • Hola Igor, Hvala za tvoj komentar.

      Se me ocurre que podrías utilizar algún tipo de sensor que compruebe la tensión que le está llegando a la iluminación que desees controlar, y se lo notifique a tu servidor web en tiempo real para saber en todo momento si está encendida o no.

Оставите одговор