Raspberry PI - thực hiện một hệ thống tự động hóa nhà giá cả phải chăng [Phần II]

Trong bài trước về tự động hóa nhà giá cả phải chăng dựa trên Raspberry PI, Chúng tôi đã học được để kiểm tra các kết nối nguồn điện nhà từ một bảng điều khiển của tám chuyển tiếp kết nối với chúng tôi Raspberry PI.

Captura de pantalla de 2015-02-01 20:20:47Hôm nay chúng tôi sẽ xem làm thế nào để kiểm soát tổng cộng mười sáu các thiết bị điện Nhờ mạch mà chúng tôi thực hiện ở trên, và tạo điều kiện cho hội đồng đã cho tôi Jordi của @electronics.cat và bạn đã có thể bạn nhìn thấy trong phần tóm tắt của các Phần cứng tự do ngày; thiết kế bởi cùng một, và một trăm phần trăm miễn phí phần cứng.

Thực hành này, tôi sẽ sử dụng Các PI của ba nhánh, đó là trách nhiệm điều chỉnh tất cả các chân GPIO của Raspberry PI của 3.3V để 5V bi-directionally và sẽ cho phép chúng tôi để làm việc với thứ hai dành riêng cho xe buýt PiCam I2C; Tôi cũng sẽ sử dụng tấm rơ le optoacoplados tôi đã sử dụng trong bài trước về tự động hóa nhà.

Pi3Ramas

IP trong ba dãy được thiết kế bởi @JordiBinefa.

Tất cả điều này đặt tại xử lý của chúng tôi Tổng cộng mười sáu ổ cắm domotic phân chia giữa hai Quả mâm xôi, và với expandability của lên đến 128 trong trường hợp của các Của PI 3 chi nhánh, Kể từ khi nó cho phép chúng tôi để tận dụng lợi thế của xe buýt hai I2C mất khả năng sử dụng các kết nối đến PiCam.

Để kết nối các pi ba nhánh, Chúng ta phải Hàn 6 tương ứng với các chân xe buýt thứ hai I2C đó là không quân lính của nhà máy sản xuất, Tại thời điểm này Jordi Nó tích cực làm việc trên một phiên bản mới của mảng cho Raspberry PI B + và các mô hình Raspberry PI 2.

MÁY ẢNH KỸ THUẬT SỐ OLYMPUSChúng tôi có thể giúp đỡ để hàn các chân giữ hai dải ba với jumper, Nhưng Chúng ta phải đảm bảo rằng họ có nhiều liên kết chúng tôi càng tốt ở tất cả các lần trước khi hàn chúng.

Bây giờ chúng ta có thể kết nối các PI của ba nhánh để các Quả mâm xôi Tôi đã từng chỉnh sửa cô lập hai mảng, Để làm gì Jordi Sử dụng thiết bị tách từ nhựa như vậy.

Pi của ba nhánh và nhựa chỉ mục chia kết nối P3.

set05_08_v02_P2P3P4

Đề án của các kết nối P3 được thực hiện bởi @JordiBinefa.

Thực hiện kết nối với các Relay adapter plate, Chúng ta phải uốn cong các chân tiếp sức Hội đồng quản trị Tôi muốn kết nối tới các pi ba nhánh, giúp chúng tôi với một số kìm; trong bức tranh tiếp theo, bạn có thể xem kết quả cuối cùng.

Tùy thuộc vào vị trí của các chân VCCGND trong của chúng tôi chuyển tiếp, Chúng tôi sẽ đặt này jumper Rơ le trong một mô-đun, hoặc các vị trí khác để đầu tư cho họ; luôn mang trong tâm trí mà Relay mảng phải được hỗ trợ bởi USB.

IN1 IN2 IN3 IN4 VCC GND

IN1 IN2 IN3 IN4 GND VCC

Bây giờ chúng ta sẽ kết nối chúng tôi Relay tám kết quả đầu ra cho các tấm vỉ của rơ le, và trong các PI của ba nhánh; cần lưu ý rằng Mô-đun này tương thích với bốn và tám kết quả đầu ra rơ le.

Sau đó chúng tôi có thể nhìn thấy bảng của các kết nối giữa các Relay module, Các PI của ba nhánh, và Raspberry PI.

Mô-đun rơ le optoacoplados Đầu nối P3 Raspberry PI mô hình 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

Bây giờ tiến hành để kết nối các Rơ le optoacoplados tấm trực tiếp các GPIO khác Quả mâm xôi, trong hình dưới đây, bạn có thể xem kết quả cuối cùng.

Các kết nối giữa các GPIO của chúng tôi Quả mâm xôi họ sẽ là giống như trong trước bài viết, Tuy nhiên trong trường hợp này tôi đã thêm tất cả các kết nối bảng.

Mô-đun rơ le optoacoplados Raspberry PI mô hình 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

Để chạy các kịch bản python Các trang web mà chúng tôi sẽ xem dưới đây, Lần đầu tiên chúng ta phải cung cấp quyền truy cập cho người dùng www-data Nó là người dùng được gán cho các máy chủ web; Để làm gì Lần đầu tiên chúng ta sẽ cài đặt apache web server như chúng ta đã thấy trong bài viết trước đó và chúng ta sẽ viết sudo visudo tại nhà ga và ở phần cuối của tập tin Chúng tôi sẽ thêm vào www-data như sudoer, là kết quả cuối cùng như dưới đây.

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

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

Đối với mỗi người trong số các chân GPIO mười sáu nhân viên này thực hành, Chúng ta cần phải tạo một thư mục con, và hai kịch bản Python; để bật, và khác để chuyển tiếp, Dưới đây là một ví dụ với các MÃ 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)

Trong mỗi của các Raspberry PI Chúng tôi sẽ đặt của bạn Mười sáu kịch bản để bật chuyển tiếp được kết nối hoặc đến các Pins Các nhân viên trong mỗi, bạn có thể tham khảo ở bảng trước đó; Các kịch bản tương ứng với các Quả mâm xôi kết nối trực tiếp từ các GPIO tiếp nhận tấm sẽ đặt chúng trong thư mục /Trang chủ/pi/rơ le/gpio.

Để tạo ra các hệ thống phân cấp thư mục và thư mục con, và sao chép các tập tin được lập trình trong Python Chúng tôi sẽ sử dụng những khác hai kịch bản Bash; lần đầu tiên sẽ là rằng thực hiện trong các PI kết nối với các PI của ba nhánh.

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

Những người khác Mười sáu kịch bản tương ứng với sự kiểm soát của các Quả mâm xôi kết nối với các PI của ba nhánh Chúng tôi sẽ giữ chúng trong thư mục /var/www/chuyển tiếp/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/*

Tại thời điểm này, chúng ta phải tạo một chính đôi Vì vậy mà các Raspberry PI Đó là trang để chạy các kịch bản của các kết nối đến các PI của ba nhánh điều khiển từ xa, là người sẽ làm điều đó dùng www-data phải chỉ định một mật khẩu để đăng nhập và tạo cặp khóa của bạn thay mặt cho.

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

Một khi tạo ra các đôi chính khu vực chung và riêng, Chúng tôi sẽ kiểm tra xem chúng ta có thể truy cập bằng SSH mà không cần nhập mật khẩu; cho hoạt động từ các trang web tương tự khác nhau mâm xôi rơ le trên cùng một mạng cục bộ, trong trường hợp này Tôi đã kết nối với họ nhờ nhỏ miễn phí router WRTNode.

WRTNode_ETHSau đó chúng tôi sẽ tạo ra các trang nhà của chúng tôi mà sẽ chứa các loại đầu vào nút bạn sẽ phải nhấn để thực thi các kịch bảnPython từ giao diện web bằng cách sử dụng phương pháp bài; Ví dụ này, tôi sẽ hiển thị các trang web với chỉ bốn bắt đầu do đó bài viết không phải là quá dài.

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

Nếu tôi muốn có để nuôi anh ta tất cả mọi thứ từ một cửa hàng duy nhất, phải bỏ qua tất cả tiêu cực ra 220V Chuyển tiếp.

Kết nối đến các đường ống Chúng tôi sẽ làm cho họ theo cùng một cách như trong các mục nhập cuối, bao bọc giữa các chương trình cắm và chuyển đổi thu nhỏ circuit breaker để tạo thuận lợi cho việc theo dõi hành nghề.

Cắm relay vi phân

Trong phần tiếp theo ngày tự động hóa nhà giá cả phải chăng Chúng ta sẽ tìm hiểu để tận dụng lợi thế của xe buýt hai I2C Nhờ các PI của ba nhánh, và chúng tôi sẽ làm cho một bằng chứng của khái niệm kiểm tra 128 các đèn LED hoán đổi cho nhau của các thiết bị điện.

Nếu bạn muốn bạn có thể theo tôi trên Twitter, Facebook, Google +, LinkedIn, hoặc chia sẻ nó với các nút trong ấn phẩm này, Nếu bạn có bất kỳ câu hỏi hoặc góp ý xin vui lòng đừng ngần ngại để bình luận.

Giúp chúng tôi để tiếp cận với nhiều người đọc Share on LinkedInShare on FacebookTweet about this on TwitterShare on Google+Email this to someone

4 suy nghĩ về"Raspberry PI - thực hiện một hệ thống tự động hóa nhà giá cả phải chăng [Phần II]

  1. Bài viết rất tốt, tiếp tục!!
    Một câu hỏi, Tôi muốn cũng cài đặt tự động hóa nhà với hệ thống mâm xôi dễ dàng, nhưng không phải là làm thế nào ví dụ để biết tình trạng của một ánh sáng,người mù hoặc một số thiết bị, Nếu nó đã được kích hoạt theo cách thủ công.
    Tôi nói điều này ví dụ:, Nếu tôi muốn bật một ánh sáng từ điện thoại, nhưng không phải trong tiểu bang đó là vào thời gian đó.

    Salu2

    • Xin chào Igor, Cảm ơn bạn đã bình luận của bạn.

      Nó xảy ra với tôi rằng bạn có thể sử dụng một số loại cảm biến để kiểm chứng những căng thẳng là đạt đến ánh sáng mà bạn muốn kiểm soát, và thông báo đó là máy chủ web của bạn trong thời gian thực để biết bất cứ lúc nào nếu nó là trên hay không.

Gửi phản hồi