Raspberry PI - υλοποίηση ενός συστήματος προσιτή εγχώρια αυτοματοποίηση [Μέρος ΙΙ]

Στο προηγούμενο post σχετικά με προσιτή εγχώρια αυτοματοποίηση βάσει Raspberry PI, Μάθαμε να ελέγξτε τις συνδέσεις δικτύου σπίτι από ένα πάνελ οκτώ ηλεκτρονόμων συνδέεται με μας Raspberry PI.

Screenshot του 2015-02-01 20:20:47Σήμερα θα δούμε πώς να ελέγχουν συνολικά δεκαέξι ηλεκτρικών συσκευών οικιακής χρήσης Χάρη στο κύκλωμα που υλοποιήσαμε πάνω από, και επιτρέποντας τμημάτων μου έχει δώσει Jordi του @electronics.cat και εσείς ήδη θα μπορούσατε να δείτε στην περίληψη των το Ημέρα ελευθερίας υλικού; σχεδιάστηκε από το ίδιο, και εκατό τοις εκατό δωρεάν υλικού.

Για αυτήν την πρακτική, πάω να χρησιμοποιήσετε το Οι τρεις κλάδοι της PI, που είναι υπεύθυνη για όλες τις καρφίτσες για την προσαρμογή GPIO του Raspberry PI του 3.3V να 5V αμφίδρομα και θα μας επιτρέψει να εργασία με το δεύτερο προορίζεται για το δίαυλο PiCam I2C; Επίσης θα χρησιμοποιήσω χρησιμοποίησα το πιάτο ρελέ optoacoplados στο προηγούμενο άρθρο σχετικά με το οικιακού αυτοματισμού.

Pi3Ramas

IP σε τρεις σειρές που σχεδιάστηκε από @JordiBinefa.

Όλα αυτά που θέτει στη διάθεσή μας συνολικά δεκαέξι υποδοχές domotic διαιρείται μεταξύ δύο Βατόμουρο, και με επεκτασιμότητα του, μέχρι να 128 στην περίπτωση των το PI 3 υποκαταστήματα, Δεδομένου ότι μας επιτρέπει να επωφεληθούν από τα δύο λεωφορεία I2C θυσιάζοντας τη δυνατότητα χρήσης της σύνδεσης σε η PiCam.

Να συνδεθεί η pi τρεις κλάδους, Εμείς πρέπει να διασχίζουμε τα έξι που αντιστοιχεί με το δεύτερο λεωφορείο ακίδες I2C que no vienen soldados de fábrica, Αυτή τη στιγμή Jordi Είναι ενεργά εργάζεται για μια νέα έκδοση του την πλάκα για Raspberry PI Β + και μοντέλα Raspberry PI 2.

ΨΗΦΙΑΚΉΣ ΦΩΤΟΓΡΑΦΙΚΉΣ ΜΗΧΑΝΉΣ OLYMPUSΜπορούμε να βοηθήσουμε να ενώσει στενά τις ακίδες που κατέχουν τις δύο λωρίδες τριών με Πλεκτές ζακέτες, Αλλά Πρέπει να διασφαλίσουμε περισσότερο εναρμονίζονται μας όσο το δυνατόν ανά πάσα στιγμή πριν την συγκόλληση τους.

Τώρα μπορούμε να συνδέσουμε το Οι τρεις κλάδοι της PI να το Βατόμουρο Στο παρελθόν έχω επεξεργαστεί απομόνωση των δύο πλακών, para lo que Jordi Χρησιμοποιήσετε διαχωριστικά τέτοια πλαστικά.

Το pi των τριών κλάδων και ευρετήριο πλαστικό διαχωριστικό συνδετήρας P3.

set05_08_v02_P2P3P4

Καθεστώς της P3 σύνδεσης από @JordiBinefa.

Πραγματοποιήσει τη σύνδεση με το Πλάκα προσαρμογέα αναμετάδοσης, Εμείς πρέπει να λυγίσει τις ακίδες του ρελέ Διοικητικού Συμβουλίου Θέλω να συνδεθεί με τρεις κλάδους η pi, βοηθώντας μας με μερικές πένσες; στην επόμενη εικόνα μπορείτε να δείτε το τελικό αποτέλεσμα.

Ανάλογα με τη θέση των ακίδων VCC και GND στον ηλεκτρονόμο μας, Τοποθετούμε αυτό άλτης Ηλεκτρονόμοι σε μια λειτουργική μονάδα, ή μια άλλη θέση για να επενδύσουν τους; έχοντας πάντα κατά νου ότι Ρελέ πλάκα πρέπει να τροφοδοτείται από USB.

IN1 IN2 IN3 IN4 VCC GND

IN1 IN2 IN3 IN4 GND VCC

Τώρα θα συνδέσουμε μας ρελέ των οκτώ εξόδους στην πλάκα προσαρμογέα του ρελέ, και είναι σε το Οι τρεις κλάδοι της PI; πρέπει να σημειωθεί ότι Αυτή η ενότητα είναι συμβατό με τέσσερα και οκτώ εξόδους ρελέ.

Τότε μπορούμε να δούμε τον πίνακα των συνδέσεων μεταξύ του Δομοστοιχείο ρελέ, το Οι τρεις κλάδοι της PI, και Raspberry PI.

Λειτουργική μονάδα ρελέ optoacoplados Συνδετήρας 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
GND GND GND

Τώρα να προχωρήσει για να συνδέσετε το Ηλεκτρονόμοι optoacoplados πλάκα άμεσα με το GPIO του άλλου Βατόμουρο, στην παρακάτω εικόνα μπορείτε να δείτε το τελικό αποτέλεσμα.

Οι συνδέσεις μεταξύ του GPIO του μας Βατόμουρο θα είναι το ίδιο όπως και στην προηγούμενο άρθρο, Ωστόσο στην περίπτωση αυτή έχω προσθέσει όλες από τον πίνακα "συνδέσεις".

Λειτουργική μονάδα ρελέ 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
GND GND

Για να εκτελέσετε το σενάρια στην python de la web que veremos mas abajo, primero tenemos que dar permisos al usuario www-δεδομένα Είναι ο χρήστης που έχει αντιστοιχιστεί στο διακομιστή web; Για τι Πρώτα θα εγκαταστήσετε το διακομιστή web apache όπως είδαμε στο προηγούμενο άρθρο αυτό y escribiremos sudo visudo στον τερματικό αεροσταθμό και στο τέλος του αρχείου Μπορείτε να προσθέσετε www-δεδομένα ως sudoer, το τελικό αποτέλεσμα όπως παρακάτω.

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

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

Για κάθε μία από τις δεκαέξι GPIO καρφίτσες εργαζομένων στην πρακτική αυτή, Πρέπει να δημιουργήσουμε έναν υποκατάλογο, και dos scripts en Python; ένα για να ενεργοποιήσετε την, και το άλλο για να ενεργοποιήσετε το ρελέ, Εδώ είναι ένα παράδειγμα με το 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)

Σε κάθε ένα από τα Raspberry PI Τοποθετούμε σας Δεκαέξι δέσμες ενεργειών για την ενεργοποίηση τους ηλεκτρονόμους συνδεδεμένο ή να το καρφίτσες εργαζόμενοι σε κάθε, ότι μπορείτε να συμβουλευτείτε στους προηγούμενους πίνακες; το δέσμες ενεργειών αντιστοιχεί το Βατόμουρο συνδεδεμένοι απευθείας από το GPIO να αναμεταδίδει πλάκα, θα το τοποθετήσετε στον κατάλογο /Σπίτι/pi/ρελέ/gpio.

Για να δημιουργήσετε την ιεραρχία των καταλόγους και υποκαταλόγους, και να αντιγράψετε το προγραμματισμένο αρχεία σε Python Θα χρησιμοποιήσουμε αυτές τις άλλες δύο δέσμες ενεργειών σε Bash; η πρώτη θα είναι που εκτελούν στην το PI συνδέεται με την Οι τρεις κλάδοι της PI.

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

Οι άλλοι Δεκαέξι δέσμες ενεργειών αντιστοιχεί στον έλεγχο των το Βατόμουρο συνδέεται με την Οι τρεις κλάδοι της PI Εμείς θα τους κρατήσει στον κατάλογο /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/*

Αυτή τη στιγμή πρέπει να δημιουργήσουμε ένα ζεύγος κλειδιών έτσι ώστε το Raspberry PI Είναι η σελίδα για να εκτελέσετε το δέσμες ενεργειών των συνδεδεμένων με την Οι τρεις κλάδοι της PI εξ αποστάσεως, όπως είναι ο χρήστης που θα το κάνει www-δεδομένα πρέπει να εκχωρήσετε έναν κωδικό πρόσβασης για να συνδεθείτε και να δημιουργήσετε το ζεύγος κλειδιών για λογαριασμό σας.

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

Στιγμή που δημιουργήθηκε το κλειδί ζεύγος δημόσιου και ιδιωτικού, Θα ελέγξουμε ότι μπορούμε πρόσβαση από SSH χωρίς να πληκτρολογήσετε τον κωδικό πρόσβασης; για λειτουργεί από τον ίδιο ιστό των διαφορετικών σμέουρο ρελέ στο ίδιο τοπικό δίκτυο, στην περίπτωση αυτή Έχω συνδέσει τους χάρη στις μικρές δωρεάν router WRTNode.

WRTNode_ETHΤότε θα δημιουργήσουμε Αρχική σελίδα μας, η οποία θα περιέχει το κουμπιά τύπος εισόδου θα πρέπει να πατήσετε για να εκτελέσει το δέσμες ενεργειών σε Python από τη διεπαφή Ιστού χρησιμοποιώντας τη μέθοδο post; 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
?>

Αν θέλω να ταΐζετε τα πάντα, από ένα ενιαίο εξόδου, πρέπει να παράκαμψη όλα αρνητικά αποτελέσματα 220V Ρελέ.

Οι συνδέσεις με το ηλεκτρικό δίκτυο Θα τους κάνουμε να τον ίδιο τρόπο όπως και η τελευταία καταχώρηση, περικλείεται μεταξύ των καθεστώτων φις και διακόπτη διακόπτη κυκλώματος Μικροασφάλειες να διευκολύνει την παρακολούθηση της πρακτικής.

Relé enchufe diferencial

Με την επόμενη δόση για προσιτή εγχώρια αυτοματοποίηση Θα μάθουμε για να επωφεληθούν από τα δύο λεωφορεία I2C Χάρη στην το Οι τρεις κλάδοι της PI, και θα κάνουμε μια απόδειξη της έννοιας έλεγχος 128 εναλλάξιμα LEDs από ηλεκτρικές συσκευές.

Εάν θέλετε, μπορείτε να με ακολουθήσουν σε Πειραχτήρι, Facebook, Google +, LinkedIn, ή να μοιραστείτε με τα κουμπιά κάτω από την παρούσα δημοσίευση, Εάν έχετε οποιεσδήποτε ερωτήσεις ή προτάσεις μην διστάσετε να σχολιάσει.

Βοηθήστε μας να προσεγγίσουν περισσότερους αναγνώστες Share on LinkedInShare on FacebookTweet about this on TwitterShare on Google+Email this to someone

4 σκέψεις για"Raspberry PI - υλοποίηση ενός συστήματος προσιτή εγχώρια αυτοματοποίηση [Μέρος ΙΙ]

  1. Muy buenos posts, sigue así!!
    Μια ερώτηση, 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, Ευχαριστώ για το σχόλιό σας.

      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.

Αφήνω μια απάντηση