Raspberry Pi ve IFTTT ile Işık Algılamalı Akıllı Bir Anahtar Nasıl Yapılır


84

Akıllı bir aydınlatma sistemini internete bağlayabilirseniz harika olmaz mıydı?

Bir Raspberry Pi, bir röle, bir ışık sensörü ve bir kod ile, bu otomatik aydınlatma nirvanasına bir şimşekle ulaşmak için ihtiyacınız olan her şeydir.

İhtiyacınız Olanlar

Işığa duyarlı akıllı anahtarınızın bileşenleri kolayca kaynaklanır. İhtiyacınız olacak:

  • Raspbian Pi çalıştıran herhangi bir model Raspberry Pi.
  • Amazon’da kolayca bulunan bir röle kartı.
  • Bir Adafruit TSL2561 parlaklık sensörü.
  • Jumper telleri.
  • Bazı ışıklar otomatikleşecek!

SunFounder 2 Kanal DC 5 V Röle Modülü Arduino için Optocoupler Düşük Seviye Tetik Genişleme Kurulu ile UNO R3 MEGA 2560 1280 DSP ARM PIC AVR STM32 Ahududu Pi

SunFounder 2 Kanal DC 5 V Röle Modülü Optocoupler Düşük Seviye Tetik Arduino için Genişleme Kartı UNO R3 MEGA 2560 1280 DSP ARM PIC AVR STM32 Ahududu Pi

Şimdi Satın Al Amazon’da
$ 6.79

Hafif Algılanan Akıllı Anahtar Nasıl Çalışır?

Otomatik garaj kapısı açıcı projemiz ile aynı şekilde bir röle kullanarak, bir Raspberry Pi’yi sabit bir zamanda bir aydınlatma devresini açıp kapatacak şekilde programlayabilirsiniz. Karışıma bir parlaklık sensörü eklenmesi, Pi’nin ortam ışığı seviyesini algılayabileceği anlamına gelir ve ışıkları sadece gerçekten ihtiyaç duyduklarında açmayı seçer.

Bir Pi, bir ağa bağlanabilen küçük bir bilgisayar olduğundan, internet üzerinden de kontrol edilmek üzere ayarlayabilirsiniz. Akıllı ışıklarınızın ne zaman geldiklerini belirlemek için üç girişi olacaktır:

  1. Programlı bir program.
  2. Ortam ışığı seviyesi.
  3. Ağ üzerinden gönderilen bir geçersiz kılma sinyali.

Adım 1: Raspberry Pi’yi Röleye Bağlayın

GPIO’yu kullanmaya yeni başlıyorsanız, Raspberry Pi GPIO Pimleri Hakkında Bilmeniz Gereken Her şeyi okuyarak başlayın.

Öncelikle, röle kartınızın VCC ve JD-VCC pinlerini birbirine bağlayan bir jumper olup olmadığını kontrol edin. Varsa, kaldırın.

JD-VCC - VCC röle kartı atlama teli "genişlik =" 600 "yükseklik =" 510

Her şey kapalıyken röle kartını Pi’nize aşağıdaki şekilde bağlayın:

  • Pi Pin 2 (5v), röle kartındaki JD-VCC’ye.
  • Röle kartındaki Pi Pin 6 (GND), GND’ye.
  • Röle panosunda IN1’e Pi Pin 15 (GPIO 22)
  • Röle kartındaki VCC’ye Pi Pin 17 (3.3v).

Ahududu Pi Zero W röle panosuna bağlandı "width =" 670 "height =" 362

Adım 2: Parlaklık Sensörünü Bağlayın

TSL2561 kızılötesi, tam spektrumlu ve insan gözle görünür ışığı algılayabilen bir ışık sensörüdür. Raspberry Pi’ye çok hassas bir dijital okuma gönderebilir. Sensör, ışık seviyesini 0,1 (ışıksız) ila 40.000 (parlak güneş) arasında bildirir.

TSL2561 panosu, i2c protokolünü kullanarak Raspberry Pi’ye konuşuyor. I2C sadece iki bağlantıya ihtiyaç duyar, bunlardan biri iki cihazı senkronize halde tutmak için bir saat ve bir tanesi aktarılan veri için. Tabii ki, lüks sensörün de biraz güce ihtiyacı var, bu yüzden tamamen bir arada olmak için dört bağlantı var:

  • Pi Pin 1’i (3.3v) lüks sensördeki Vin’a (veya VCC’ye) bağlayın
  • Pi pim 3’ü (SDA) lüks sensördeki SDA’ya bağlayın
  • Pi pin 5’i (SCL) lüks sensöre SCL’ye bağlayın
  • Pi pim 9’u (GND) lüks sensördeki GND’ye bağlayın

Raspberry Pi Zero W, TSL2561 lüks sensörüne bağlandı "width =" 670 "height =" 537

Adım 3: Bağımlılıkları Yapılandırma ve Yükleme

Daha fazla ilerlemeden önce, Raspberry Pi’nizde I2C’nin etkin olduğunu kontrol etmeniz gerekir (varsayılan olarak devre dışıdır). Terminale aşağıdakileri yazın:

 sudo raspi-config 

[19459113] Arabirim Seçenekleri> P5 I2C’yi, ‘yi seçin ve sonra Evet’i seçin .

Raspi yapılandırma yardımcı programında arabirim seçenekleri "width =" 670 "height =" 411

[19459853] ‘ye girin. ‘ ye girin ve sonra [Finale ‘i seçin ve yapılandırma ekranından çıkın. Değişikliğin etkili olması için Pi’nizi yeniden başlatın:

 sudo reboot 

Pi’nin sensör kartı ile iletişim kurabilmesi için bazı bağımlılıklar gereklidir. Aşağıdaki komutları yazın:

sudo apt-get update
sudo apt-get install -y python-smbus
sudo apt-get install -y i2c-tools

Her şeyin yazarak çalıştığını kontrol edebilirsiniz:

 sudo i2cdetect -y 1 

Bağlantılarınız kuruluysa ve lüks sensörünüz doğru bağlanmışsa, şöyle bir yanıt görürsünüz:

IC-Detect yardımcı raporlama lüks sensör adresi "width =" 581 "height =" 201

Buradaki yarar, I2C adresi 39’da bir I2C cihazı (lüks sensör) bulduğunu bildiriyor.

Henüz bağımlılıklar ile ilgili değilsiniz. Sen de birkaç kütüphaneye ihtiyacın olacak. Öncelikle, bu projeyle ilgili her şeyi saklamak için bir klasör oluşturun:

mkdir ~/lighting
cd ~/lighting

Ardından, şişenizi indirin, Pi’nizde basit bir web sunucusu yaratacak hafif bir çerçeve. Işıklarınızı web’den kontrol etmek için kullanacaksınız.

 wget https://bottlepy.org/bottle.py

İhtiyaç duyacağınız diğer kütüphaneler Github’da, dolayısıyla Raspberry Pi’niz zaten Git’i yüklemediyse şimdi ekleyin:

 sudo apt-get install git 

Şimdi iki kütüphaneyi klonlayın:

 git klon https://github.com/adafruit/Adafruit_Python_GPIO.git
git klon https://github.com/adafruit/Adafruit_Python_PureIO.git

Son olarak, yeni bir dosya oluşturarak bir test komut dosyası oluşturun:

 nano test.py 

Bu koda yapıştırın (Adafruit):

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import absolute_import, division, print_function, unicode_literals
from tsl2561 import TSL2561
if __name__ == "__main__": 
   tsl = TSL2561(debug=True)
   print(tsl.lux())

Çıkmak için ekrandaki talimatları izleyerek kaydetmek için Ctrl + X tuşlarına basın.

İşiniz bittiğinde, test komut dosyasını çalıştırın:

 python test.py 

Her şey yüklü ve çalışıyorsa, bir numaraya geri dönersiniz. Bu sayı sensörden lüks bir okumadır. Sensörü engellemeyi veya hareket ettirmeyi deneyin, böylece daha fazla veya daha az ışık alır. Ardından test komut dosyasını tekrar çalıştırın ve sayının nasıl değiştiğini görün.

4. Adım: Otomasyon Komut Dosyalarını Oluşturun

Raspberry Pi ışıkları karanlık olduğunda yanar, ancak belirli zamanlarda da kapatır. Örneğin, ışıkların akşam saatlerinde karanlığa geldiğinde yanmasını isteyebilir, daha sonra elektrik tasarrufu için gece yarısına kadar çıkabilirsiniz. Sabah erkenden tekrar gelebilirler, sonra ışık aldıklarında kendilerini kapatabilirler.

Böyle bir zamanlama bölgeleri ile bir zamanlamayı yönetmek için, iki farklı komut vardır. Bir ( onzone.py ), ışığınızın açık olmasını istediğiniz saatlerde her dakika çalışır. Diğer ( offzone.py ), ışık seviyesinden bağımsız olarak ışıkların kapalı olmasını istediğiniz zamanlarda her dakika çalışacaktır.

Akıllı aydınlatma senaryosu programı "width =" 670 "height =" 52

Komut dosyaları, cron işlerini kullanarak çalışacak şekilde programlanacak. Her bir komut dosyasının gün ve gece saatlerini seçerek, ışıkların otomatik olarak açılacağı saatleri ayarlamak kolay olacaktır. İstediğiniz kadar açma ve kapama süresi kurabilirsiniz.

Işıkları otomatik olarak kontrol etmek için kullanılan komut dosyalarının yanı sıra, geçersiz kılma durumlarını yönetmek için üçüncü bir betik var. Bu, ortam ışığının seviyesine bakılmaksızın ışıkları uzaktan açmanıza izin verecektir.

Komut 1: The ON Zone

Bu Python betiği, karanlık olduğunda ışıkların gelmesini istediğiniz günün her dakikasında çalışır. Komutu şu komutu kopyalayıp bu komutu terminale aktararak indirin:

 wget https://gist.githubusercontent.com/hamishdownell/ea151d2ff7c888ac09f8a850afaab4ee/raw/10b0e9d8ec42f8577750941da46a93d16b597c05/onzone.py

onzone.py her çalıştığında, karanlık olup olmadığını görmek için sensörden lüks bir değer elde edecek. Öyleyse, ışıklar açık veya kapalı olup olmadığını kontrol edecektir. Eğer kapalıysa, onları açacaktır. Karanlık değilse, ışıklar açık olup olmadığını görecektir. Eğer öyleyse, geçersiz kılınmadıkça onları kapatırlar.

Komut, ışıkları açmak için yeterince karanlıkta karar vermek için lowlux adında bir değişken kullanır. Onzone.py:

‘un üst kısmındaki bu satırdaki değeri değiştirerek, kendi kurulumunuz için uygun bir şeye değiştirebilirsiniz.

 lowlux = 50 

Komut 2: Kapalı Bölge

Bu senaryo, günün her dakikasında, geçersiz kılınmadıkları sürece ışıkların kapalı kalmasını istediğinizde çalıştırılacak. Komut dosyasını indirin:

 wget https://gist.githubusercontent.com/hamishdownell/fb8970909145bbfefbbef8dba5f5a00f/raw/eae5a6057a51ca4727907c7d061f0a48b07da944/offzone.py

Bu betik, ne kadar açık ya da karanlık olduğuyla ilgilenmez. İşi, eğer varsa, ışıkları söndürmektir (geçersiz kılınmadıkça).

Komut 3: Geçersiz Kılma Sunucusu

Bu komut dosyası, aşağıdaki eylemleri gerçekleştirecek komutları kabul edebilen basit bir web hizmeti oluşturur:

  1. Işıkları ortam ışığı seviyesine bakılmaksızın birkaç dakika için açın.
  2. Işıkları söndürün.
  3. Işıkların açık mı yoksa kapalı mı olduğunu öğrenin.
  4. Aşıldıklarında ışıkların ne kadar süre açık kalacağını öğrenin.

Komut dosyasını indirin:

 wget https://gist.githubusercontent.com/hamishdownell/2303bfd9fb30d42e79923bdb7e69ed4e/raw/7dcb456b81b8ae58ae48efa225adb41ba7d7f69c/lightserver.py

Bir sonraki adıma geçmeden önce offzone.py betiğini şu şekilde çalıştırın:

 python offzone.py 

Bu, komut dosyalarının her şeyi takip etmek için kullandığı kontrol dosyalarını oluşturacaktır.

Adım 5: Komut Dosyalarını Programlayın

Raspberry Pi’niz otomasyon scriptlerini cron ile çalıştırabilir. Bu zamanlamayı şöyle ayarlayın:

 sudo crontab -e 

Bu iki satırı metin düzenleyicisine yapıştırın:

 * 7,8,9,17,18,19,20,21,22,23 * * * python /home/pi/lighting/onzone.py> NULL
* 0,1,2,3,4,5,6,10,11,12,13,14,15,16 * * * python /home/pi/lighting/offzone.py> NULL 

Not: Raspberry Pi’nize giriş yaptığınız kullanıcı adı varsayılan değilse pi yolu buna göre değiştirin.

İlk satırda karanlık olduğunda ışıkların gelmesini istediğiniz tüm saatleri listeleyin. Işıkların kapalı olmasını istediğin tüm saatler ikinci sıraya girer.

Şimdi Pi başlatıldığında otomatik olarak çalıştırmak için geçersiz kılma komut dosyasını ayarlayın:

 sudo nano /etc/rc.local

Bu satırı dosyanın altına yapıştırın, ardından kaydedin ve çıkın:

 nohup python /home/pi/lighting/lightserver.py & 

Son olarak, Raspberry Pi’yi yeniden başlatın, böylece sunucu betiğinin gerektiği gibi yüklenip yüklenmediğini kontrol edebilirsiniz

 sudo reboot 

Adım 6: Röleyi Test Et

Işıklarınızı bağlamadan önce, her şeyin geçersiz kılma işlevini kullanarak çalıştığını test edin. Aşağıdakileri Pi’nizle aynı ağ üzerinde bir web tarayıcısına yazın ve IP adresini kendi Raspberry Pi’nizin adresiyle değiştirin:

 11.22.33.44:1234/overrideon/3 

Her şey yolundaysa, rölenin klik sesini duyacaksınız ve tarayıcı, ışıkların üç dakika boyunca açıldığını söyleyecektir.

Röle kapalıyken, diğer geçersiz kılma fonksiyonlarını test edebilirsiniz. Bu, geçersiz kılma nedeniyle ışıkların kaç dakika kalacağını size söyleyecektir:

 11.22.33.44:1234/getoverrideremaining 

Bu, ışıkların açık olduğunu söylemelidir:

 11.22.33.44:1234/lightstatus 

Son olarak, onları şu şekilde tekrar kapatabilirsiniz:

 11.22.33.44:1234/overrideoff 

Röle açıldığında tıklayacak.

Adım 7: Işıklarınızı Bağlayın

Işıklarınızı röleye bağlamadan önce Raspberry Pi’nizi kapatın ve fişini çekin. Röle kartındaki normalde açık (NO) konnektörleri normal bir anahtarın yerine şu şekilde kullanın:

Röleyi ışıklandırma devresine takma "genişlik =" 670 "yükseklik =" 453

Son olarak, lüks sensörünüzü ortam ışığı seviyesini yakalayacağı bir yere kurabilirsiniz. TSL2561’in, doğrudan parlak güneş ışığıyla karşılaşırsa doymuş olarak rapor edeceğini unutmayın, bu nedenle mümkünse gölgede tutmak en iyisidir.

Denemek İçin Daha Fazla Raspberry Pi Projesi

Yeni akıllı aydınlatma ayarlarınızı, bir web tarayıcısına komut yazarak uzaktan geçersiz kılmak oldukça zahmetli. Daha iyi bir yol, işleri kolaylaştırmak için Amazon Echo gibi bir şeyleri birbirine bağlamaktır. Alexa hizmetini ve Webhooks hizmetini IFTTT’de birleştirmek, ses denetimini eklemenin basit bir yoludur.

Başlamanıza yardımcı olmak için IFTTT’yi kullanma kılavuzumuza göz atın.

 

Başka bir seçenek Siri Kısayollarını kullanmaktır. Menüler içeren tek bir kısayol, ışıkların durumunu sorgulayabilir ve bunları açmak ve kapatmak için geçersiz kılma işlevlerini kullanabilir.

Bu projeyi beğendiyseniz, daha fazla fikir için bu tuhaf Raspberry Pi projelerini kontrol ettiğinizden emin olun.


Beğendin mi? Arkadaşlarınla paylaş!

84
Test Kafe

Kendi halinde bir insan. Uğraşlarımı web ortamına taşımak isteyerek bu siteyi kurdum

0 Yorum


Ne Paylaşmak İstersin?
Kişilik Testi
Kişilik testi oluştur
Doğru Yanlış
Doğru Yanlış testi oluştur
Anket
Bir Anket oluştur
Makale
Makale oluştur
Liste
Klasik bir liste oluştur
Caps
Özel Caps'lar yapmak için kendi resmini yükle