פאי פטל - יישום מערכת אוטומציה ביתית במחירים סבירים [חלק 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 כי הם לא חיילים של המפעל, כרגע Jordi זה פעיל עובד על גירסה חדשה של צלחת שלה עבור B פאי פטל + ומודלים פאי פטל 2.

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

אנחנו באפשרותך כעת לחבר שלושה סניפים של פי כדי את פטל בעבר ערכתם לבודד את שתי צלחות, בשביל מה 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 פאי פטל דגם B
VCC לחסכון אנרגיה + 5V + 5V
ב 7 סיבית 0 GPIO 29
ב 6 סיבית 1 GPIO 28
ב 5 סיבית 2 GPIO 18
ב 4 סיבית 3 GPIO 7
ב 3 סיבית 4 GPIO 8
ב 2 סיבית 5 GPIO 10
ב 1 סיבית 6 GPIO 9
ב 0 סיבית 7 GPIO 11
GND GND GND

עכשיו להמשיך לחבר ממסרי optoacoplados צלחת ישירות GPIO של האחר פטל, בתמונה למטה ניתן לראות את התוצאה הסופית.

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

מודול ממסרים optoacoplados פאי פטל דגם 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

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

<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 ממסר.

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

הכנס ממסר דיפרנציאלית

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

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

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

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

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

    Salu2

    • שלום איגור, תודה על ההערה שלך.

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

תשאיר הודעה