ラズベリー PI - 手頃な価格のホーム オートメーション システムを実装します。 [パート II]

について以前の記事で ラズベリーパイに基づいて現実的なホーム ・ オートメーション, 接続されている 8 つのリレーのパネルから家の電源接続を確認することを学んだ私たち私たち ラズベリー PI.

Captura デ pantalla デ 2015-02-01 20:20:47今日 16 電気器具の合計を制御する方法が表示されます。 当社は上記回路のおかげで, そして私を与えているボードを有効にします。 Jordi@electronics.cat 既にの概要を見ることができた、 ハードウェアの自由の日; 同じによって設計されました。, 百パーセント 無料のハードウェア.

この演習では、私は使用するつもり PI の 3 本の枝, すべてのピンを対応を担当 GPIOラズベリー PI3.3V 宛先 5V 双方向とすることができます 2 番目の PiCam I2C バスの予約の操作; 昔は板リレー optoacoplados を使用しても、 ホーム オートメーションについて前回の記事で.

Pi3Ramas

@JordiBinefa によって設計された 3 つの範囲で IP.

すべてこれは私達の処分に置く 合計 16 のソケット domotic 2 つに分かれています ラズベリー, と 最大の拡張性 128 場合、 PI 3 枝, 2 つのバスを活用することができますので I2C コネクタに、PiCam を使用しての可能性を犠牲にすること.

Pi の 3 つの支店を接続するには, 我々 は 2 番目のバス ピンに対応する 6 を溶接する必要があります。 I2C 工場の兵士ではないです。, 現時点では Jordi それは積極的にラズベリー PI B の板の新しいバージョンに取り組んで、+ とラズベリー PI モデル 2.

オリンパス デジタル カメラ我々 は 3 つの 2 つのストリップを固定するピンを溶接する助けることができます。 ジャンパー, しかし 我々 は彼らはよりすべての回で私たちできるだけ揃っていることを確認する必要があります。 それらをはんだ付けする前に.

接続できるようになりました、 PI の 3 本の枝 に、 ラズベリー 私は以前編集しています。 2 つのプレートを分離します。, 何のためですか Jordi 区切り記号を使用して、このようなプラスチック.

3 本の枝およびプラスチック インデックス分周器コネクタ P3 pi.

set05_08_v02_P2P3P4

@JordiBinefa 製 P3 コネクタのスキーム.

接続を行う、 中継アダプター プレート, リレー基板のピンを曲げる必要があります。 Pi の 3 つの枝に接続したいです。, いくつかのペンチで私たちを助ける; 次の図は、最終的な結果を見ることができます。.

ピンの位置によっては VCCGND 当社のリレーで, 我々 はこれを置くでしょう ジャンパー 1 つのモジュールにリレー, またはそれらを投資する別の位置; 心で常に軸受 リレー板は USB で供給する必要があります。.

IN1 IN2 IN3 IN4 VCC GND

IN1 IN2 IN3 IN4 GND VCC

今、我々 は、接続私たち リレーのアダプター プレートに 8 つの出力のリレー, とは、、 PI の 3 本の枝; 注意すべきこと このモジュールは 4 と互換性があり、8 つのリレー出力.

テーブル間の接続を見ることができ、 リレー モジュール, 、 PI の 3 本の枝, と ラズベリー PI.

モジュール リレー optoacoplados コネクタ P3 ラズベリー PI モデル 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 ラズベリー PI モデル 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

実行する、 python のスクリプト 以下が表示されます web の, まず我々 はユーザーにアクセス許可を与えることが www のデータ これは、web サーバーに割り当てられているユーザー; 何のためですか 我々 は以前の記事で見たので apache web サーバーをインストール、最初 書きますと 須藤 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 ピンごと この実習では従業員, 我々 は、サブディレクトリを作成する必要があります。, と Python で 2 つのスクリプト; 1 つをオンにする, その他、リレーを有効にするには, ここでは、例、 ピン 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 我々 は、配置、 16 スクリプト オン接続のリレーまたはに、 ピン それぞれの従業員, 上記の表で相談できます。; 、 スクリプト 対応する、 ラズベリー 直接接続している、 GPIO 中継板にディレクトリにそれらを配置するには /ホーム/pi/リレー/gpio.

ディレクトリとサブディレクトリの階層を作成するには, プログラムのファイルをコピー Python 我々 はこれらの他の 2 つを使用します。 スクリプト Bash; 最初にで実行になります、 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 それは実行するページ、 スクリプト 接続されているを 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 パスワードを入力せず; ため 別の同じ web から操作ラズベリー リレーします。 同じローカル ネットワーク上, この場合 小さな無料のルーター WRTNode のおかげでそれらを接続しています。.

WRTNode_ETH私たちが含まれるホームページを作成、 ボタン入力 実行するために押す必要が、 スクリプトPython post メソッドを使用して、web インターフェイスから; この例で、記事が長すぎるではない唯一の 4 つの開始 web が表示されます私.

<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 v リレー.

電源への接続 最後のエントリと同じ方法をしてくれる, プラグ ・ スイッチ方式で囲まれました。 ミニチュア サーキット ブレーカー 練習の追跡を容易にする.

プラグ差動リレー

次の割賦で 手頃な価格のホーム オートメーション 2 つのバスの利用方法を学習します I2C おかげで、 PI の 3 本の枝, させていただきますと、 コンセプトの確認証明書 128 電化製品による交換 Led.

私を従うことができますあなたのようなかどうか Twitter, Facebook, Google +, LinkedIn, この文書の下のボタンと共有したり, ご質問がある場合は提案がコメントすることを躊躇しないでください。.

多くの読者に到達するために役立つ Share on LinkedInShare on FacebookTweet about this on TwitterShare on Google+Email this to someone

4 上の考え"ラズベリー PI - 手頃な価格のホーム オートメーション システムを実装します。 [パート II]

  1. 非常に良い記事, 続けています。!!
    質問, 私も簡単なラズベリー システムとホーム オートメーションをインストールします。, しかし、例えばない、光の状態を知る,ブラインドまたはいくつかのデバイス, 手動でアクティブ化されている場合.
    たとえばこれを言う, その状態は当時オンに携帯電話から光がではないしたい場合.

    Salu2

    • こんにちは Igor, あなたのコメントのおかげで.

      それは制御照明に達している緊張を確認するセンサーのいくつかの種類を使用することが私に発生します, か上にある場合に、いつでも知っている実質の時間の web サーバーに通知.

メッセージを残してください