Ahududu PI - bir uygun fiyatlı ev otomasyon sisteminin uygulanması [Bölüm II]

Hakkında önceki sonrası Ahududu PI üzerinde dayalı uygun fiyatlı ev otomasyon, Sekiz röleleri bağlı bir Masası'ndan ev elektrik bağlantılarını kontrol etmeyi öğrendik bizim Ahududu PI.

Ekran görüntüsü 2015-02-01 20:20:47Bugün toplam on altı elektrikli ev aletleri kontrol altına almayı göreceksiniz Biz yukarıda hayata devre sayesinde, ve panoları etkinleştirme bana verdi Jordi in @electronics.cat ve sen zaten Özetle görebiliyordu Donanım özgürlük gün; aynı tarafından tasarlanmıştır, ve yüzde yüz Ücretsiz donanım.

Bu uygulama için kullanacağım , PI's üç şube, Bu tüm pins uyarlamak için sorumludur GPIO in Ahududu PI in 3.3V Hedef 5V BI-directionally ve bize sağlayacak PiCam I2C veri yolu için saklıdır ikinci ile çalışma; Ayrıca plaka röle optoacoplados kullandığım kullanır bir önceki yazımda Ev Otomasyonu hakkında.

Pi3Ramas

@JordiBinefa tarafından tasarlanmış üç aralıklardaki IP.

Bu bizim emrinde koyar 16 yuva domotic toplam iki arasında bölünmüş Ahududu, ve ile kadar genişletilebilirlik 128 durumunda, PI's 3 dalları, Beri iki otobüs yararlanmak için bize izin verir I2C ödün PiCam konektöre kullanma imkanı.

PI's üç şube bağlanmak için, İkinci otobüs pimleri karşılık gelen altı kaynak gerekir I2C Bu fabrika asker değiliz, Şu anda Jordi Aktif ahududu PI B için onun plaka yeni bir sürümü üzerinde çalışıyor + ve ahududu PI modelleri 2.

OLYMPUS DİJİTAL FOTOĞRAF MAKİNESİÜç iki şeritler tutan çiviler kaynak için yardımcı olabilir Kazaklar, Ama Onlar daha bize mümkün olduğunca her zaman hizalandığından emin olmanız gerekir Onları daha önce lehimleme.

Biz şimdi bağlayabilirsiniz PI's üç şube için Ahududu Daha önce düzenlenmiş İki tabak yalıtma, Ne için Jordi Böyle plastik ayırıcılar kullanın.

Pi üç şube ve plastik dizin bölücü bağlayıcı P3.

set05_08_v02_P2P3P4

@JordiBinefa tarafından yapılan P3 bağlayıcı düzeninin.

Bağlantı ile yürütmek Röle adaptör plaka, Geçiş panosu pimleri eğmek gerekir PI's üç şube için bağlanmak istediğiniz, bize bazı pense ile yardım; Sonraki resimde nihai sonucu görebilirsiniz.

Pimleri konumuna bağlı olarak VCC ve GND bizim bayrak yarışında, Biz bu yerleştirir Jumper bir modülde röleleri, veya başka bir konuma onları yatırım yapmaya; her zaman içinde taşıyan aklınızda Röle plaka USB tarafından desteklenmektedir.

IN1 IN2 IN3 IN4 VCC GND

IN1 IN2 IN3 IN4 GND VCC

Biz-ecek bağlamak şimdi bizim adaptör plaka geçişlerinin sekiz çıkış rölesi, ve erişimi mevcuttur PI's üç şube; unutulmamalıdır ki Bu modül dört ile uyumlu ve sekiz röle çıkışları.

Sonra tablo arasında bağlantı görebilirsiniz Röle modülü, , PI's üç şube, ve Ahududu PI.

Modül optoacoplados röleleri Bağlayıcı P3 Ahududu PI modeli B
VCC + 5V + 5V
İNÇ 7 Bit 0 GPIO 29
İNÇ 6 Bit 1 GPIO 28
İNÇ 5 Bit 2 GPIO 18
İNÇ 4 Bit 3 GPIO 7
İNÇ 3 Bit 4 GPIO 8
İNÇ 2 Bit 5 GPIO 10
İNÇ 1 Bit 6 GPIO 9
İNÇ 0 Bit 7 GPIO 11
GND GND GND

Şimdi bağlanmak için devam Röle optoacoplados plaka doğrudan GPIO diğer Ahududu, Sonuç aşağıda resimde gördüğünüz.

Arasındaki bağlantıları GPIO ve bizim Ahududu onlar-ecek var olmak aynı derecede içinde Önceki madde, Ancak bu durumda tüm bağlantıları tablo ekledik.

Modül optoacoplados röleleri Ahududu PI modeli B
VCC + 5V
İNÇ 1 GPIO 3
İNÇ 2 GPIO 2
İNÇ 3 GPIO 24
İNÇ 4 GPIO 25
İNÇ 5 GPIO 23
İNÇ 6 GPIO 27
İNÇ 7 GPIO 22
İNÇ 8 GPIO 4
GND GND

Çalıştırmak için Python komut dosyaları aşağıda göreceksiniz web, İlk kullanıcı için izinleri vermek zorunda www-data Web sunucusuna atanan kullanıcı olduğunu; Ne için İlk biz-ecek install apache web sunucusu bu önceki makalede gördüğümüz gibi ve biz yazacağım sudo visudo Terminal ve dosyanın sonunda Biz sudoer www-data için katacak, Sonuç aşağıdaki gibi olmak.

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

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

Her on altı GPIO iğneler için Bu uygulamada çalışanlar, Biz bir alt dizin oluşturmak gerekir, ve Python ile iki komut dosyaları; bir etkinleştirmek için, ve diğer röle açmak için, İşte bir örnek ile 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)

Her birinde Ahududu PI Biz yerleştirir, On altı komut dosyaları bağlı röleleri veya için için iğne Çalışanlar her, önceki tabloda başvurabilir; , komut dosyaları karşılık gelen Ahududu doğrudan bağlı GPIO plaka bunları dizine yerleştirmeniz geçiş için /Ana sayfa/PI/röleler/GPIO.

Dizin ve alt dizinleri hiyerarşisini oluşturmak için, ve programlanmış dosyaları kopyalayın Python Bunlar diğer iki kullanacağız komut dosyaları içinde Bash; ilk çalıştırma içinde olacak PI bağlı PI's üç şube.

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

Diğerleri On altı komut dosyaları kontrolü için karşılık gelen Ahududu bağlı PI's üç şube Biz onları dizinde tutacak /var/www/geçiş/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/*

Şu anda biz oluşturmanız gerekir bir anahtar çifti Böylece Ahududu PI Çalıştırmak için sayfasıdır komut dosyaları bağlı için PI's üç şube Uzaktan, işe yarar kullanıcı www-data bir parola atamanız gerekir oturum açmanız ve sizin adınıza anahtar çifti oluşturmak için.

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

Bir kez oluşturulan ortak ve özel anahtar çifti, Biz biz olabilir kontrol eder giriş SSH ezelî hulul parola; için farklı aynı Web'den işletilen ahududu aktaran aynı yerel ağ üzerinde, Bu durumda Onları küçük ücretsiz yönlendirici WRTNode sayesinde bağlandıktan.

WRTNode_ETHO zaman biz içerir bizim ana sayfası oluşturmak düğmeleri giriş türü yürütmek için tuşuna basın zorunda kalacak komut dosyaları içinde Python post yöntemini kullanarak web arayüzünden; makale çok uzun değil böylece bu örnek için ben sadece dört başlar ile Web'de gösterecektir.

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

Ona her şeyi tek bir çıkış yemek istiyorsanız, gerekir yan yol tüm negatif 220V çıktılar Röle.

Şebeke bağlantıları Onlara en son giriş olduğu gibi yapacağız, Tak ve anahtarı düzenleri arasında kapalı minyatür devre kesici Uygulama izleme kolaylaştırmak için.

Tak fark geçiş

İçinde bir sonraki taksit uygun fiyatlı ev otomasyon Biz iki otobüs yararlanmak öğreneceksiniz I2C Teşekkürler PI's üç şube, ve biz yapacak bir kavram kontrol kanıtı 128 elektrikli ev aletleri tarafından değiştirilebilir LED.

Senin gibi beni takip edebilirsiniz Eğer Twitter, Facebook, Google +, LinkedIn, ya da bu yayın altında düğmeleri ile paylaşın, Eğer herhangi bir sorunuz veya öneriniz lütfen yorum çekinmeyin..

Bize daha fazla okuyucu ulaşmak için yardım Share on LinkedInShare on FacebookTweet about this on TwitterShare on Google+Email this to someone

4 üzerine düşünceler"Ahududu PI - bir uygun fiyatlı ev otomasyon sisteminin uygulanması [Bölüm II]

  1. Çok iyi posta, devam ediyor!!
    Bir soru, Ayrıca bir ev otomasyon ile kolay ahududu sistemini yüklemek istediğiniz, Ama nasıl örneğin için değil bir ışık durumunu,kör veya bazı aygıt, El ile etkinleştirilmişse.
    Örneğin diyorum, Bir ışık telefon açmak ama kullanılmadığı istiyorsanız, o zaman bu durumdur.

    Salu2

    • Merhaba Igor, Yorumunuz için teşekkür ederiz.

      Bana bir çeşit denetlemek istediğiniz aydınlatma ulaşıyor gerginlik doğrular sensör kullanabilirsiniz oluşur, ve herhangi bir zamanda bu üzerinde olup olmadığını bilmek web sunucunuzun gerçek zamanlı olduğunu bildir.

Cevap bırak