פאי פטל - יישום מערכת אוטומציה ביתית במחירים סבירים [חלק II]

בפוסט הקודם על סבירים אוטומציה ביתית המבוססת על פאי פטל, למדנו לבדוק את החיבורים עיקריות של הבית, החלונית של 8 ממסרים מחובר שלנו פאי פטל.

Captura דה pantalla דה 2015-02-01 20:20:47היום אנחנו נלמד כיצד לשלוט סך של 16 מכשירי חשמל הודות המעגל אנחנו שנקטו מעל, הפעלת לוחות נתן לי Jordi של @electronics.cat ואתה כבר יכול לראות בתקציר של יום חופש חומרה; תוכנן על ידי אותו, מאה אחוז חומרה חינם.

עבור התרגול הזה, אני הולך להשתמש את שלושה סניפים של פי, . זה אחראי התאמת כל הפינים GPIO של פאי פטל של 3.3V כדי 5V דו-directionally, יאפשר לנו עבודה עם השני שמורות לאוטובוס PiCam I2C; אני אשתמש גם צלחת ממסרי optoacoplados פעם במאמר הקודם על בית חכם.

Pi3Ramas

IP בשלושה טווחי עוצב על ידי @JordiBinefa.

כל זה מעמיד לרשותנו סכום כולל של 16 שקעים domotic לחלק בין שני פטל, ועם הרחבה של עד 128 במקרה של של PI 3 סניפים, שכן הוא מאפשר לנו לנצל שני אוטובוסים I2C להקריב את האפשרות של שימוש על המחבר PiCam.

לחבר שלושה סניפים של החוקר, אנחנו חייבים לרתך ששת התואם הסיכות האוטובוס השני I2C que no vienen soldados de fábrica, כרגע Jordi זה פעיל עובד על גירסה חדשה של צלחת שלה עבור B פאי פטל + ומודלים פאי פטל 2.

מצלמה דיגיטלית אולימפוסאנחנו יכולים לעזור כדי לרתך את הסיכות מחזיק את שתי רצועות של שלושה עם המגשרים, אבל אנחנו חייבים לוודא שיותר יישורן אותנו ככל האפשר בכל עת לפני הלחמה אותם.

אנחנו באפשרותך כעת לחבר שלושה סניפים של פי כדי את פטל בעבר ערכתם לבודד את שתי צלחות, para lo que Jordi השתמש במפרידי פלסטיק כזה.

החוקר של שלושה סניפים, אינדקס פלסטיק קו מפריד מחבר P3.

set05_08_v02_P2P3P4

ערכה של המחבר P3 שנעשו על ידי @JordiBinefa.

לבצע את החיבור עם ממסר מתאם צלחת, . אנחנו חייב לכופף את הפינים של השליחים לוח אני רוצה להתחבר עם שלושה סניפים של החוקר, עוזר לנו עם איזה צבת; בתמונה הבאה אפשר לראות את התוצאה הסופית.

תלוי המיקום של הפינים VCC לחסכון אנרגיה ו GND ב הממסר שלנו, נמקם את זה מגשר ממסרי במודול אחד, או מיקום אחר להשקיע אותן; תמיד נושאת את, באמת ממסר צלחת חייב להיות מופעל על ידי ה-USB.

IN1 IN2 בישראלב-3 IN4 GND VCC לחסכון אנרגיה

IN1 IN2 בישראלב-3 IN4 GND VCC לחסכון אנרגיה

עכשיו אנחנו נחבר שלנו ממסר של שמונה יציאות לצלחת מתאם של ממסרים, נמצא שלושה סניפים של פי; יש לציין את זה מודול זה הוא תואם עם ארבעה והתפוקות 8 ממסרים.

אז אנחנו יכולים לראות את הטבלה של חיבורים בין מודול ממסר, את שלושה סניפים של פי, ו פאי פטל.

מודול ממסרים optoacoplados מחבר P3 Raspberry PI Modelo B
VCC לחסכון אנרגיה + 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
VCC לחסכון אנרגיה + 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 בטרמינל ובסופו של דבר של הקובץ אנו נוסיף 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 16 העובדים בתחום זה, אנחנו צריכים ליצור ספריית משנה, ו 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)

בכל אחד פאי פטל אנו נשתיל שלך סקריפטים 16 כדי להפעיל את ממסרי מחובר או ל סיכות העובדים בכל אחת, אתה יכול להתייעץ עם הטבלאות הקודם; את סקריפטים המייצגים פטל מחובר ישירות GPIO להעביר לצלחת אמקם אותם בספריה /דף הבית/פאי/ממסרים/gpio.

כדי ליצור את ההיררכיה של ספריות ולספריות משנה, ולהעתיק את הקבצים מתוכנת פיתון אנו נשתמש אלה שני האחרים סקריפטים ב בש; . הראשון יהיה זה ביצוע על 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/*

האחרים סקריפטים 16 התואם השליטה פטל קשור שלושה סניפים של פי אנו נשמור אותם בספריה /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/*

בשלב זה עלינו ליצור זוג מפתחות כך פאי פטל זה העמוד כדי להפעיל סקריפטים מחוברים אל שלושה סניפים של פי מרחוק, כמו המשתמש יעשה את זה 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
?>

אם אני רוצה להאכיל אותו הכל שקע יחיד, עליך מעקף. שלילי פלטי 220V ממסר.

החיבורים לרשת החשמל ואנחנו נגרום להם באותו האופן כמו הרישום האחרון, כשהיא תחומה בין הערכות הכנס -מתג מפסק אוטומטי זעיר כדי להקל על המעקב של תרגול.

Relé enchufe diferencial

בהפרק הבא- אוטומציה ביתית במחירים סבירים נלמד לנצל שני אוטובוסים I2C תודה שלושה סניפים של פי, כדי שנוכל לעשות הוכחה של בדיקת קונספט 128 נוריות להחלפה על ידי מכשירי חשמל.

אם אתה רוצה אתה יכול סע אחריי טוויטר, פייסבוק, גוגל +, LinkedIn, או לשתף אותו עם הלחצנים תחת פרסום זה, אם יש לך שאלות או הצעות אנא אל תהססו להגיב.

לעזור לנו להגיע יותר לקוראים Share on LinkedInShare on FacebookTweet about this on TwitterShare on Google+Email this to someone

4 מחשבות על"פאי פטל - יישום מערכת אוטומציה ביתית במחירים סבירים [חלק II]

  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.

תשאיר הודעה