라즈베리 파이-저렴 한 홈 오토 메이 션 시스템 구현 [2 부]

에 대 한 이전 게시물에서 라즈베리 파이에 따라 저렴 한 홈 오토 메이 션, 우리 8 릴레이 연결 패널에서 집 전원 연결을 확인 하십시오 배웠다 우리의 라즈베리 파이.

스크린샷 2015-02-01 20:20:47오늘 우리는 총 16 개의 전기 제품을 제어 하는 방법을 볼 것 이다 덕분에 우리 위에 구현 회로, 그리고 내게 주신 보드 사용 Jordi@electronics.cat 당신은 이미의 요약에서 볼 수 있는 하드웨어 자유의 날; 동일에 의해 설계 된, 그리고 100% 무료 하드웨어.

이 연습을 위해 내가 사용 하려고 해요 PI의 3 가지, 그건 모든 핀을 적응에 대 한 책임 GPIO라즈베리 파이3.3V 받는 사람 5V 양방향으로 고를 수 있도록 두 번째 PiCam I2C 버스에 대 한 예약 된 작업; 나 또한 내가 사용 하는 접시 릴레이 optoacoplados를 사용 합니다. 홈 오토 메이 션에 대 한 이전 기사에서.

Pi3Ramas

@JordiBinefa에 의해 설계 된 3 개 범위에 IP.

이 모든 우리의 처분에 박 았 총 16 개의 소켓 domotic 2 사이 분했습니다 라즈베리, 그리고 최대의 확장성 128 경우에 PI의 3 분기, 그것은 우리가 두 개의 버스를 이용할 수 있기 때문 I2C는 PiCam에 커넥터를 사용 하 여 가능성을 희생.

Pi의 3 개 분 지를 연결 하, 우리는 두 번째 버스 핀에 해당 하는 6을 용접 해야 합니다. I2C 그는 공장의 군인, 순간에 Jordi 그것은 적극적으로 딸기 파이 B에 대 한 그것의 격판덮개의 새로운 버전에 노력 + 라즈베리 파이 모델 2.

올림푸스 디지털 카메라우리 세의 두 스트립을 잡고 핀을 용접 하는 데 도움이 수 있습니다. 점퍼, 하지만 우리는 그들은 더 가능한 항상 우리을 정렬 됩니다 있는지 확인 해야 합니다. 그들을 납땜 하기 전에.

우리를 연결할 수 있는 PI의 3 가지 하는 라즈베리 이전 편집 했습니다. 두 접시를 분리, 무엇을 위해 Jordi 구분 기호를 사용 하 여 이러한 플라스틱.

3 가지와 플라스틱 인덱스 분배기 커넥터 P3의 pi.

set05_08_v02_P2P3P4

@JordiBinefa에 의해 P3 커넥터의 계획.

연결을 수행 합니다 릴레이 어댑터 플레이트, 우리는 릴레이 보드의 핀 구 부 해야 합니다. Pi의 3 개 분 지에 연결 하 고 싶습니다., 몇 가지 펜 치와 우리를 돕고; 다음 그림에서는 최종 결과 볼 수 있습니다..

핀의 위치에 따라 VCC 그리고 GND 우리의 계, 우리는 이것을 넣을 것입니다. 점퍼 하나의 모듈에 릴레이, 또는 그들을 투자 하기 위하여 다른 위치; 마음에 항상 베어링 USB에 의해 릴레이 플레이트를 제공 해야 합니다..

IN1 IN2 IN3 IN4 VCC GND

IN1 IN2 IN3 IN4 GND VCC

우리가 연결 하는 것입니다 이제 우리의 릴레이의 어댑터 플레이트 8 개 출력의 릴레이, 에 PI의 3 가지; 주목 해야 한다 그 이 모듈은 4와 호환 및 8 개의 릴레이 출력.

그럼 사이 연결의 테이블을 볼 수 있습니다 우리는 릴레이 모듈, 는 PI의 3 가지, 그리고 라즈베리 파이.

모듈 릴레이 optoacoplados 커넥터 P3 라즈베리 파이 모델 B
VCC + 5V + 5V
IN 7 비트 0 GPIO 29
IN 6 비트 1 GPIO 28
IN 5 비트 2 GPIO 18
IN 4 비트 3 GPIO 7
IN 3 비트 4 GPIO 8
IN 2 비트 5 GPIO 10
IN 1 비트 6 GPIO 9
IN 0 비트 7 GPIO 11
GND GND GND

지금 연결을 진행 합니다 릴레이 optoacoplados 플레이트 직접 하는 GPIO 다른의 라즈베리, 아래 이미지에서 최종 결과 볼 수 있습니다..

사이 연결에 GPIO 우리의 라즈베리 그들은에서 마찬가지로 같은 것 이전 기사, 그러나이 경우에 내가 모든 연결 테이블을 추가 했습니다..

모듈 릴레이 optoacoplados 라즈베리 파이 모델 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

실행 하는 파이썬 스크립트 우리가 아래에 나타납니다 웹의, 먼저 우리는 사용자에 게 권한을 부여 해야 www-데이터 그것은 웹 서버에 할당 된 사용자; 무엇을 위해 우리가이 이전 기사에서 본 대로 먼저 우리 아파치 웹 서버를 설치 합니다. 우리가 쓸 것 이다 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

16 개의 GPIO 핀의 각 이 연습에서 직원, 우리는 하위 디렉토리를 만들 필요가, 그리고 파이썬에서 두 스크립트; 하나를 켜려면, 다른 릴레이 설정, 여기는 예는 핀 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 에 연결 된 PI의 3 가지.

#!/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 스크립트 해당 제어 하는 라즈베리 에 연결 된 PI의 3 가지 우리는 디렉토리에 그들을 지킬 것 이다 /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의 3 가지 원격으로, 사용자가 그것을 할 것으로 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 메서드를 사용 하 여 웹 인터페이스에서; 이 예제에 대 한 표시 됩니다만 4 개의 시작 웹 문서는 너무 오래 있도록.

<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 감사 하는 PI의 3 가지, 그리고 만들 것입니다 우리는 개념 확인의 증거 128 전기 제품으로 교환할 수 있는 Led.

당신 처럼 당신이 나를 따라 수 지 저 귀 다, 페이 스 북, 구글 +, 링크 드 인, 이 발행물에서 버튼으로 공유 또는, 만약 당신이 어떠한 질문이 나 제안 하시기 바랍니다 주저 하지 말고 의견.

더 많은 독자를 도달 하는 데 도움이 Share on LinkedInShare on FacebookTweet about this on TwitterShare on Google+Email this to someone

4 에 대 한 생각 "라즈베리 파이-저렴 한 홈 오토 메이 션 시스템 구현 [2 부]

  1. 아주 좋은 게시물, 계속!!
    질문, 또한 쉬운 라즈베리 시스템 홈 오토 메이 션을 설치., 하지만 어떻게 예 수는 빛의 상태를 알고,맹인 또는 일부 장치, 수동으로 활성화 된 경우.
    예를 들어 이런 말, 만약 내가 전화에서 빛 지 않을 그 상태는 그 당시.

    Salu2

    • 안녕하세요 Igor, 귀하의 의견 주셔서 감사.

      그것은 어떤 종류의 조명 제어를 도달 하는 긴장을 확인 하는 센서를 사용할 수 있는 나에 게 발생, 그것은 또는 아닙니다 그것에 있으면 언제 든 지 알아야 실시간으로 웹 서버에 통보.

응답을 남기다