रास्पबेरी पीआई - एक वहन योग्य गृह स्वचालन प्रणाली को लागू करने [भाग द्वितीय]

के बारे में पिछले पोस्ट में रास्पबेरी PI पर आधारित सस्ती गृह स्वचालन, हम से जुड़े आठ रिले का एक पैनल से घर साधन कनेक्शन की जाँच करें करने के लिए सीखा हमारे रास्पबेरी पीआई.

Captura de pantalla डे 2015-02-01 20:20:47आज हम देखेंगे की कुल सोलह बिजली के उपकरणों के नियंत्रित करने के लिए कैसे सर्किट है कि हम इसके बाद के संस्करण लागू करने के लिए धन्यवाद, और बोर्डों को सक्षम करने के मुझे दिया है Jordi के @electronics.cat और आप पहले से ही आप के सारांश में देख सकता था हार्डवेयर स्वतंत्रता दिवस; द्वारा एक ही डिज़ाइन किया गया, और एक सौ प्रतिशत मुक्त हार्डवेयर.

इस अभ्यास के लिए, मैं का उपयोग करने के लिए जा रहा हूँ को PI की तीन शाखाओं, कि सभी पिन ज्यादा अनुकूल ढालने के लिए जिम्मेदार है GPIO के रास्पबेरी पीआई के 3.3V करने के लिए 5V द्वि-directionally और हमें करने के लिए अनुमति देगा दूसरा PiCam I2C बस के लिए आरक्षित के साथ कार्य करना; मैं भी प्लेट रिले optoacoplados मैं प्रयोग किया जाता का उपयोग करेगा घर स्वचालन के बारे में पिछले लेख में.

Pi3Ramas

तीन श्रेणियों द्वारा @JordiBinefa डिजाइन में आईपी.

यह सब हमारे निपटान पर डालता है कुल सोलह कुर्सियां domotic दो के बीच विभाजित रास्पबेरी, और के साथ के expandability अप करने के लिए 128 इस मामले में PI के 3 शाखाओं, क्योंकि यह हमें दो बसों का लाभ लेने के लिए अनुमति देता है I2C त्याग के PiCam करने के लिए कनेक्टर का उपयोग कर की संभावना.

Pi की तीन शाखाओं से कनेक्ट करने के लिए, हम दूसरी बस पिन करने के लिए इसी छह वेल्ड करना होगा I2C que no vienen soldados de fábrica, पल में Jordi यह सक्रिय रूप से के लिए रास्पबेरी PI B अपनी थाली के एक नए संस्करण पर काम कर रहा है + और रास्पबेरी PI मॉडल 2.

ओलिंप डिजिटल कैमराहम दो स्ट्रिप्स के साथ तीन पकड़े पिन वेल्ड करने के लिए मदद कर सकते हैं जंपर्स, लेकिन हम वे और अधिक हमें संभव के रूप में सभी समय पर गठबंधन कर रहे हैं सुनिश्चित करना होगा उन्हें टाँके लगाने से पहले.

हम अब से कनेक्ट कर सकते हैं PI की तीन शाखाओं करने के लिए रास्पबेरी मैं पहले संपादित है दो प्लेटें अलग-थलग करने, para lo que Jordi ऐसे प्लास्टिक विभाजकों का उपयोग करें.

Pi की तीन शाखाएं और प्लास्टिक सूचकांक विभक्त कनेक्टर P3.

set05_08_v02_P2P3P4

द्वारा @JordiBinefa किए गए P3 कनेक्टर की योजना.

कनेक्शन के साथ बाहर ले रिले एडाप्टर प्लेट, हम पिंस रिले बोर्ड के आगे झुकना चाहिए मैं pi की तीन शाखाओं को कनेक्ट करना चाहते हैं, हमें मदद करने के साथ कुछ सरौता; अगली तस्वीर में आप अंतिम परिणाम देख सकते हैं.

पिन की स्थिति पर निर्भर करता है वीसीसी और GND हमारे रिले में, हम इस जगह होगी जम्पर एक मॉड्यूल में रिले, या उन्हें निवेश करने के लिए एक और स्थिति; कि मन हमेशा में असर रिले प्लेट USB द्वारा संचालित होना चाहिए.

IN1 IN2 IN3 IN4 VCC GND

IN1 IN2 IN3 IN4 GND वीसीसी

अब हम कनेक्ट होगा हमारे अडैप्टर प्लेट रिले के लिए आठ outputs के रिले, और में है PI की तीन शाखाओं; ध्यान दिया जाना चाहिए कि इस मॉड्यूल चार के साथ संगत है और आठ रिले outputs.

तो हम देख सकते हैं के बीच कनेक्शन की तालिका रिले मॉड्यूल, को PI की तीन शाखाओं, और रास्पबेरी पीआई.

मॉड्यूल optoacoplados रिले कनेक्टर P3 Raspberry PI Modelo B
वीसीसी + 5V + 5V
में 7 Bit 0 GPIO 29
में 6 Bit 1 GPIO 28
में 5 Bit 2 GPIO 18
में 4 Bit 3 GPIO 7
में 3 Bit 4 GPIO 8
में 2 Bit 5 GPIO 10
में 1 Bit 6 GPIO 9
में 0 Bit 7 GPIO 11
GND GND GND

कनेक्ट करने के लिए अब आगे बढ़ें। रिले optoacoplados प्लेट सीधे करने के लिए GPIO के अन्य रास्पबेरी, नीचे की छवि में आप अंतिम परिणाम देख सकते हैं.

के बीच कनेक्शन GPIO की हमारे रास्पबेरी वे के रूप में एक ही हो जाएगा पिछले लेख, हालांकि इस मामले में मैं सभी कनेक्शन तालिका को जोड़ लिया है.

मॉड्यूल optoacoplados रिले Raspberry PI Modelo B
वीसीसी + 5V
में 1 GPIO 3
में 2 GPIO 2
में 3 GPIO 24
में 4 GPIO 25
में 5 GPIO 23
में 6 GPIO 27
में 7 GPIO 22
में 8 GPIO 4
GND GND

चलाने के लिए पायथन में पटकथा de la web que veremos mas abajo, primero tenemos que dar permisos al usuario www-डेटा यह उपयोगकर्ता के वेब सर्वर करने के लिए असाइन किया गया है; किसके लिए सबसे पहले हम apache वेब सर्वर स्थापित करेगा जैसा कि हम इस पिछले लेख में देखा है y escribiremos sudo visudo टर्मिनल में और फ़ाइल के अंत में हम sudoer के रूप में www-डेटा करने के लिए जोड़ देगा, अंतिम परिणाम के रूप में नीचे जा रहा.

# 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 पिन के लिए इस अभ्यास में कर्मचारियों, हम की जरूरत है एक subdirectory बनाएँ करने के लिए, और dos scripts en Python; चालू करने के लिए एक, और दूसरे रिले बारी करने के लिए, यहाँ एक उदाहरण के साथ है पिन 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)

में से प्रत्येक में रास्पबेरी पीआई हम जगह होगी आपके सोलह लिपियों कनेक्ट किए गए रिले पर या करने के लिए बारी करने के लिए पिन कर्मचारियों में से प्रत्येक में, कि आप जो पिछली टेबल में से परामर्श कर सकते हैं; को लिपियों को इसी रास्पबेरी से सीधे कनेक्ट किया गया GPIO थाली उन्हें निर्देशिका में जगह होगी relay करने के लिए /होम/pi/रिले/gpio.

निर्देशिका और subdirectories के पदानुक्रम बनाने के लिए, और में क्रमादेशित फ़ाइलों की प्रतिलिपि बनाएँ अजगर हम इन दो अन्य का उपयोग करेगा लिपियों में पार्टी की योजना बनाई; पहले कि निष्पादित में हो जाएगा 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/रिले/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/*

इस समय हम बनाना होगा एक कुंजी जोड़ी इतना है कि रास्पबेरी पीआई यह पृष्ठ को चलाने के लिए है लिपियों कनेक्ट किए गए के लिए 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 पासवर्ड दर्ज किए बिना; के लिए एक ही वेब के अलग से संचालित रास्पबेरी रिले करता है एक ही स्थानीय नेटवर्क पर, इस मामले में मैं उन छोटे मुक्त रूटर करने के लिए धन्यवाद WRTNode जुड़ा है.

WRTNode_ETHतो हम हमारे घर पृष्ठ, जो हो जाएगा पैदा करेगा बटन इनपुट प्रकार निष्पादित करने के लिए दबाएँ करने के लिए आपके पास होगी लिपियों में अजगर 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
?>

अगर मैं उसे सब कुछ एक ही दुकान से फ़ीड करने के लिए चाहते हैं, करना होगा सभी नकारात्मक बाईपास outputs के 220V रिले.

साधन करने के लिए कनेक्शन हम उन्हें में अंतिम प्रविष्टि के रूप में उसी तरह बनायेंगे, प्लग और स्विच योजनाओं के बीच संलग्न लघु सर्किट ब्रेकर अभ्यास की ट्रैकिंग की सुविधा के लिए.

Relé enchufe diferencial

पर अगली किस्त में सस्ती होम ऑटोमेशन हम दो बसों का लाभ लेने के लिए सीखना होगा I2C धन्यवाद के लिए PI की तीन शाखाओं, और हम कर देगा एक सबूत की अवधारणा जाँच 128 बिजली के उपकरणों द्वारा विनिमेय एल ई डी.

यदि आप आप की तरह मुझे अनुसरण कर सकते हैं चहचहाना, Facebook, Google +, LinkedIn, या यह इस प्रकाशन के अंतर्गत इस बटन के साथ साझा करें, यदि आप कोई प्रश्न या सुझाव टिप्पणी करने के लिए कृपया संकोच नहीं करते.

Artículos relacionados

हमें और अधिक पाठकों तक पहुँचने के लिए मदद Share on LinkedInShare on FacebookTweet about this on TwitterShare on Google+Email this to someone

4 पर विचार'रास्पबेरी पीआई - एक वहन योग्य गृह स्वचालन प्रणाली को लागू करने [भाग द्वितीय]

  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

कोई जवाब दो