توت العليق PI-تنفيذ نظام أتمتة منزل بأسعار معقولة [الجزء الثاني]

في الوظيفة السابقة حول أتمتة المنزل بأسعار معقولة استناداً إلى PI التوت, تعلمنا لفحص توصيلات أنابيب البيت من لوحة من التبديلات ثمانية متصلة بموقعنا توت العليق PI.

لقطة للشاشة 2015-02-01 20:20:47اليوم سوف نرى كيفية التحكم بمجموعة أجهزة الكهربائية لستة عشر وبفضل الدارة التي قمنا بتنفيذ أعلاه, وتمكين المجالس أعطتني Jordi من @electronics.cat وكنت فعلا يمكن أن تشاهد في الموجز اليوم حرية الأجهزة; صمم بنفسه, ومائة في المائة الأجهزة مجاناً.

لهذه الممارسة، وأنا ذاهب إلى استخدام على الفروع الثلاثة في PI, هذا المسؤول عن تكييف جميع المسامير جبيو من توت العليق PI من 3.3V إلى 5V توجه ثنائية وستتيح لنا العمل مع الثاني محفوظة للناقل I2C بيكم; كما سوف تستخدم لوحة مرحلات أوبتواكوبلادوس أنا استخدم في المادة السابقة حول أتمتة المنزل.

Pi3Ramas

الملكية الفكرية في ثلاثة نطاقات صممه @JordiBinefa.

كل هذا يضع في متناول أيدينا ما مجموعة ستة عشر مأخذ دوموتيك مقسمة بين اثنين توت العليق, ومع القابلية للتوسعة لتصل إلى 128 بالنسبة في PI 3 الفروع, أنه يسمح لنا بالاستفادة من الحافلتين I2C التضحية بإمكانية استخدام الموصل إلى بيكم.

للاتصال ثلاثة فروع بي, ونحن يجب أن اللحام الستة المقابلة لدبابيس الحافلة الثانية I2C لا جنود مصنع, في هذه اللحظة Jordi أنه يعمل بنشاط على إصدار جديد لوحة للتوت ب PI + ونماذج PI التوت 2.

أوليمبوس كاميرا رقميةونحن يمكن أن تساعد لحام دبابيس عقد الشريطين ثلاثة مع لاعبا, ولكن يجب أن نتأكد من أنها أكثر تواؤماً لنا قدر الإمكان في جميع الأوقات قبل لحام لهم.

ونحن الآن الاتصال الفروع الثلاثة في PI لأن توت العليق وقد تم تحريرها مسبقاً عزل لوحات اثنين, لماذا Jordi استخدام فواصل مثل البلاستيك.

بي من ثلاثة فروع ومؤشر بلاستيك مقسم موصل P3.

set05_08_v02_P2P3P4

مخطط الموصل P3 أدلى به @JordiBinefa.

القيام بالاتصال مع لوحة محول ترحيل, ونحن يجب أن ينحني دبابيس التتابع المجلس أريد الاتصال ثلاثة فروع بي, مساعدتنا مع بعض كماشة; في الصورة التالية، يمكنك أن ترى النتيجة النهائية.

اعتماداً على موضع دبابيس VCC و GND في أن تتابع, وسوف نضع هذا الطائر التبديلات في وحدة نمطية واحدة, أو موقف آخر استثمارها; وإذ تضع دائماً في الاعتبار أن لوحة التتابع يجب أن يتم تشغيلها بواسطة USB.

IN1 مدخل 2 IN3 IN4 VCC GND

IN1 مدخل 2 IN3 IN4 GND VCC

والآن سوف نقوم بأعمالنا ترحيل ثمانية نواتج إلى لوحة محول من التبديلات, وهو في الفروع الثلاثة في PI; وينبغي الإشارة إلى أن هذه الوحدة النمطية متوافقة مع أربعة وثمانية نواتج مرحلات.

ثم يمكننا أن نرى جدول اتصالات بين الوحدة النمطية للتقوية, على الفروع الثلاثة في PI, و توت العليق PI.

الوحدة النمطية التبديلات أوبتواكوبلادوس رابط P3 توت العليق PI نموذج ب
VCC + 5V + 5V
في 7 بت 0 جبيو 29
في 6 بت 1 جبيو 28
في 5 بت 2 جبيو 18
في 4 بت 3 جبيو 7
في 3 بت 4 جبيو 8
في 2 بت 5 جبيو 10
في 1 بت 6 جبيو 9
في 0 بت 7 جبيو 11
GND GND GND

نشرع الآن في الاتصال لوحة أوبتواكوبلادوس مرحلات مباشرة إلى جبيو الآخر توت العليق, في الصورة أدناه، يمكنك أن ترى النتيجة النهائية.

الصلات القائمة بين جبيو من نحن توت العليق أنها سوف تكون هي نفسها كما في المادة السابقة, ولكن في هذه الحالة قد أضفت كل جدول اتصالات.

الوحدة النمطية التبديلات أوبتواكوبلادوس توت العليق PI نموذج ب
VCC + 5V
في 1 جبيو 3
في 2 جبيو 2
في 3 جبيو 24
في 4 جبيو 25
في 5 جبيو 23
في 6 جبيو 27
في 7 جبيو 22
في 8 جبيو 4
GND GND

لتشغيل البرامج النصية في بايثون من موقع ويب الذي سوف نرى أدناه, أولاً لدينا لإعطاء أذونات للمستخدم www-البيانات هو المستخدم المعينة إلى ملقم ويب; لماذا أولاً نحن سوف تثبيت خادم الويب أباتشي كما رأينا في هذه المقالة السابقة وسوف نكتب فيسودو سودو في المحطة الطرفية، وفي نهاية الملف وسوف نضيف إلى 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

لكل من دبابيس جبيو ستة عشر العاملين في هذه الممارسة, ونحن بحاجة إلى إنشاء دليل فرعي, و اثنين النصية في بايثون; واحد لتشغيل, والآخر لتشغيل الترحيل, إليك مثال رقم التعريف الشخصي 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)

في كل من توت العليق PI وسوف نضع الخاص بك البرامج النصية لستة عشر لتشغيل المرحﻻت متصل أو إلى دبابيس العاملين في كل, ويمكن استشارة في الجداول السابقة; على البرامج النصية المقابلة توت العليق متصلة مباشرة من جبيو لنقل لوحة سيتم وضعها في الدليل /الصفحة الرئيسية/pi/التبديلات/جبيو.

لإنشاء التسلسل الهرمي للدلائل والدلائل الفرعية, ونسخ الملفات المبرمجة في بايثون وسوف نستخدم هذه اثنين آخرين البرامج النصية في باش; ستكون الأولى التي تنفيذ في 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/ترحيل/جبيو/.

#!/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 فمن الصفحة لتشغيل البرامج النصية من متصل الفروع الثلاثة في 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.

مرة واحدة تم إنشاؤها زوج المفاتيح العامة والخاصة, ونحن سوف تحقق أن في وسعنا الوصول عن طريق سة دون إدخال كلمة المرور; من أجل تعمل انطلاقا من نفس صفحة ويب مختلفة التبديلات التوت على نفس الشبكة المحلية, وفي هذه الحالة لقد قمت بتوصيل لهم بفضل التوجيه الحرة الصغيرة ورتنودي.

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
?>

إذا كنت تريد أن تطعمه كل شيء من منفذ واحد, ويجب أن النواتج الجانبية السلبية كلها 220 فولت ترحيل.

الاتصالات بالتيار الكهربائي ونحن سوف تجعل منهم بنفس الطريقة كما هو الحال في الإدخال الأخير, المغلقة بين مخططات التوصيل والتبديل قواطع مصغرة لتيسير تتبع الممارسة.

ترحيل التفاضلية التوصيل

في الدفعة القادمة على أتمتة المنزل بأسعار معقولة وسوف نتعلم الاستفادة من الحافلتين I2C وبفضل الفروع الثلاثة في PI, وسوف نجعل دليل للتحقق من مفهوم 128 مصابيح Led للتبادل بالأجهزة الكهربائية.

إذا كنت مثلك اتبع لي على تويتر, فيسبوك, جوجل +, LinkedIn, أو تقاسمها مع الأزرار الموجودة تحت هذا المنشور, إذا كان لديك أي أسئلة أو اقتراحات لا تترددوا في التعليق.

تساعدنا للوصول إلى أكبر عدد من القراء Share on LinkedInShare on FacebookTweet about this on TwitterShare on Google+Email this to someone

4 أفكار بشأن "توت العليق PI-تنفيذ نظام أتمتة منزل بأسعار معقولة [الجزء الثاني]

  1. وظيفة جيدة جداً, وما زالت!!
    سؤال, أريد تثبيت أيضا أتمتة منزل مع نظام التوت سهل, ولكن ليس هو كيف على سبيل المثال لمعرفة حالة خفيفة,أعمى أو بعض الأجهزة, إذا كان قد تم تنشيط يدوياً.
    وأقول هذا على سبيل المثال, إذا كنت ترغب في تشغيل ضوء من الهاتف ولكن لا يكون في ذلك الدولة في ذلك الوقت.

    Salu2

    • مرحبا Igor, شكرا لتعليقك.

      يحدث لي أن يمكن استخدام نوع من أجهزة الاستشعار التي تتحقق من التوتر الذي يصل إلى الإضاءة التي تريد التحكم, وإخطار هو خادم الويب الخاص بك في الوقت الحقيقي معرفة في أي وقت إذا كان في أو لا.

اترك ردًا