İlan
Akşam karanlığı-şafak anahtarları ve zamanlayıcı anahtarları, ışıklarınızı otomatikleştirmenin kullanışlı yollarından biridir. Gerçekten akıllı bir aydınlatma sistemi için ikisini birleştirebilmeniz, hatta internete bağlayabilmeniz harika olmaz mıydı?
Bir ahududu Pi, bir röle, bir ışık sensörü ve bir kod satırı, bu otomatik aydınlatma nirvana'yı parayla yapmak için ihtiyacınız olan tek şey.
İhtiyacınız Olanlar
Işığa duyarlı akıllı anahtarınızın bileşenlerinin kaynağı kolaydır. İhtiyacın olacak:
- Raspbian çalıştıran herhangi bir model Raspberry Pi.
- bir röle kartı, kolayca Amazon'da bulunur.
- bir Adafruit TSL2561 parlaklık sensörü.
- Bağlantı telleri.
- Otomatikleştirmek için bazı ışıklar!
Işığa Duyarlı Akıllı Anahtar Nasıl Çalışır
Bir röleyi aynı şekilde otomatik garaj kapısı açacağı projesi Garaj Kapınızı IFTTT ve Raspberry Pi ile OtomatikleştirmeBu eğitimde, bir Raspberry Pi ve IFTTT'den başka bir şey kullanmadan garaj kapınızı nasıl otomatikleştireceğinizi göstereceğiz. Daha fazla oku , bir Ahududu Pi'yi bir aydınlatma devresini belirli zamanlarda açıp kapatmak için programlayabilirsiniz. Karışıma bir parlaklık sensörü eklemek, Pi'nin ortam ışık seviyesini algılayabileceği ve ışıkları yalnızca gerçekten ihtiyaç duyulduğunda açmayı seçebileceği anlamına gelir.
Pi, bir ağa bağlanabilen küçük bir bilgisayar olduğundan, internet üzerinden de kontrol edilecek şekilde ayarlayabilirsiniz. Akıllı ışıklarınızın ne zaman yanacaklarını belirlemek için üç girişi olacaktır:
- Programlanmış bir program.
- Ortam ışığı seviyesi.
- Ağ üzerinden gönderilen bir geçersiz kılma sinyali.
Adım 1: Raspberry Pi'yi Röleye bağlayın
GPIO'yu kullanmaya yeniyseniz, okumaya başlayın Raspberry Pi GPIO Pimleri Hakkında Bilmeniz Gereken Her Şey.
İlk olarak, röle kartınızda VCC ve JD-VCC pimlerini birbirine bağlayan bir jumper olup olmadığını kontrol edin. Varsa, çıkarın.
Her şey kapalıyken röle kartını Pi'nize aşağıdaki gibi bağlayın:
- Pi Pin 2 (5v) röle kartındaki JD-VCC'ye.
- Pi Pin 6 (GND) - röle kartındaki GND.
- Röle kartında Pi Pin 15 (GPIO 22) - IN1
- Röle kartındaki VCC'ye Pi Pin 17 (3,3 v).
Adım 2: Parlaklık Sensörünü Bağlayın
TSL2561, kızılötesi, tam spektrum ve insan tarafından görülebilir ışığı 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ş) ölçeğinde bildirir.
TSL2561 yönetim kurulu İ2c protokolünü kullanarak Raspberry Pi. I2C sadece iki bağlantıya ihtiyaç duyar, biri iki cihazı senkronize tutmak için bir saat, diğeri aktarılan veriler için. Elbette, lüks sensörün de bir miktar güce ihtiyacı vardır, bu nedenle tamamen yapmak için dört bağlantı vardır:
- Pi Pin 1'i (3,3 v) lüks sensördeki Vin'e (veya VCC) bağlayın
- Lüks sensördeki Pi Pin 3'ü (SDA) SDA'ya bağlayın
- Pi Pin 5'i (SCL) lüks sensördeki SCL'ye bağlayın
- Lüks sensördeki Pi Pin 9'u (GND) GND'ye bağlayın
Adım 3: Bağımlılıkları Yapılandırma ve Yükleme
Daha ileri gitmeden önce, Raspberry Pi'nizde I2C'nin etkin olup olmadığını kontrol etmeniz gerekir (varsayılan olarak devre dışıdır). Terminale aşağıdakileri yazın:
sudo raspi-yapılandırma
seçmek Arayüz Seçenekleri> P5 I2C, sonra seç Evet.
hit Giriş sonra seçin Bitiş yapılandırma ekranından çıkmak için. Değişikliğin etkili olması için Pi'nizi yeniden başlatın:
sudo yeniden başlatma
Pi'nin sensör kartı ile iletişim kurabilmesi için bazı bağımlılıklar gereklidir. Aşağıdaki komutları yazın:
sudo uygun-güncelleştirme. sudo uygun-get install -y python-smbus. sudo apt-get install -y i2c-araçları
Yazarak her şeyin çalışıp çalışmadığını kontrol edebilirsiniz:
sudo i2cdetect -y 1
Bağımlılıklarınız yüklüyse ve lüks sensörünüz doğru bağlanmışsa, aşağıdaki gibi bir yanıt görürsünüz:
Burada yardımcı program, I2C adres 39'da bir I2C cihazı (lux sensörü) bulduğunu bildiriyor.
Henüz bağımlılıkları tam olarak bitirmediniz. Birkaç kütüphaneye de ihtiyacınız olacak. İlk olarak, bu projeyle ilgili her şeyi şu şekilde saklamak için bir klasör oluşturun:
mkdir ~ / aydınlatma. cd ~ / aydınlatma
Sonra, indir şişePi'nizde basit bir web sunucusu oluşturacak hafif bir çerçeve. Işıklarınızı web'den kontrol etmek için kullanacaksınız.
wget https://bottlepy.org/bottle.py
İhtiyacınız olacak diğer kütüphaneler Github'da, bu yüzden Raspberry Pi'nizde Git yüklü değilse, şimdi ekleyin:
sudo apt-get install git git
Şimdi şu iki kütüphaneyi kopyalayın:
git klonu https://github.com/adafruit/Adafruit_Python_GPIO.git. git klonu 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 kodu yapıştırın ( Adafruit):
#! / usr / bin / env python. # - * - kodlama: utf-8 - * - __future__'den import absolute_import, bölüm, print_function, unicode_literals. TSL2561 ithalat TSL2561'den. __name__ == "__main__" ise: tsl = TSL2561 (hata ayıklama = Doğru) yazdır (tsl.lux ())
Basın Ctrl + X kaydetmek için ekrandaki yönergeleri izleyin.
İşiniz bittiğinde test komut dosyasını çalıştırın:
python test.py
Her şey kuruluysa ve çalışıyorsa, bir numara geri alırsınız. Bu sayı sensörden lüks bir değerdir. Sensörü engellemeyi veya az ya da çok ışık alacak şekilde hareket ettirmeyi deneyin. 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şturma
Raspberry Pi karanlık olduğunda ışıkları açacak, aynı zamanda belirli zamanlarda kapatacak. Örneğin, akşamları hava karardığında ışıklarınızın yanmasını, ardından elektrik tasarrufu için gece yarısına doğru sönmeyi isteyebilirsiniz. Sabah erkenden tekrar gelebilirler, sonra ışık aldığında kendilerini kapatabilirler.
Bunun gibi birden fazla zamanlama bölgesi içeren bir zamanlamayı yönetmek için iki farklı komut dosyası vardır. Bir (onzone.py) karanlıkta ışıklarınızın yanmasını istediğiniz zamanlarda her dakika çalışır. Diğer (offzone.py) ışık seviyesinden bağımsız olarak ışıkların sönmesini istediğiniz zamanlarda her dakika çalışır.
Komut dosyalarının çalışması için zamanlanacak cron işlerini kullanma Cron ve Crontab ile Linux'ta Görevleri ZamanlamaGörevleri otomatikleştirme yeteneği, zaten burada bulunan fütüristik teknolojilerden biridir. Her Linux kullanıcısı, kullanımı kolay bir arka plan hizmeti olan cron sayesinde zamanlama sistemi ve kullanıcı görevlerinden yararlanabilir. Daha fazla oku . Her komut dosyasının gece ve gündüz hangi saatlerinde çalıştırılacağını seçerek, ışıklarınızın otomatik olarak açılacağı saatleri ayarlamak kolay olacaktır. İstediğiniz kadar açma ve kapatma süresi ayarlayabilirsiniz.
Işıkları otomatik olarak kontrol etmek için komut dosyalarının yanı sıra, geçersiz kılma durumlarını yönetmek için üçüncü bir komut dosyası vardır. Bu, ortam ışığı seviyesinden bağımsız olarak ışıkları uzaktan açmanızı sağlar.
Komut Dosyası 1: ON Bölgesi
Bu Python betiği, karanlıksa ışıkların yanmasını istediğiniz günün her dakikasında çalıştırılacaktır. Bu komutu kopyalayıp terminale yapıştırarak komut dosyasını indirin:
wget https://gist.githubusercontent.com/hamishdownell/ea151d2ff7c888ac09f8a850afaab4ee/raw/10b0e9d8ec42f8577750941da46a93d16b597c05/onzone.py
Onzone.py her çalıştırıldığında, karanlık olup olmadığını görmek için sensörden bir lüks değeri alır. Eğer yanıyorsa, ışıkların açık veya kapalı olduğunu kontrol eder. Kapalıysa, onları açar. Karanlık değilse, komut dosyası ışıkların açık olup olmadığını görecektir. Eğer öyleyse, geçersiz kılınmadığı sürece onları kapatır.
Komut dosyası adlı bir değişken kullanır. lowlux hangi noktada ışıkları açacak kadar karanlık olduğuna karar vermek. Onzone.py'nin üst kısmına yakın olan bu satırdaki değeri değiştirerek kendi kurulumunuz için uygun bir şeyle değiştirebilirsiniz:
düşük lüks = 50
Komut Dosyası 2: KAPALI Bölge
Bu komut dosyası, geçersiz kılınmadıkça, ışıkların sönmesini istediğiniz günün her dakikasında çalıştırılır. Komut dosyasını indirin:
wget https://gist.githubusercontent.com/hamishdownell/fb8970909145bbfefbbef8dba5f5a00f/raw/eae5a6057a51ca4727907c7d061f0a48b07da944/offzone.py
Bu komut dosyası ne kadar açık veya koyu olduğu umurumda değil. Görevi, eğer yanıyorsa ışıkları kapatmaktır (geçersiz kılınmadıkları sürece).
Komut Dosyası 3: Geçersiz Kılma Sunucusu
Bu komut dosyası, aşağıdaki eylemleri gerçekleştirmek için komutları kabul edebilen basit bir web hizmeti oluşturur:
- Ortam ışığı seviyesinden bağımsız olarak ışıkları birkaç dakika boyunca açın.
- Işıkları kapatın.
- Işıkların açık mı yoksa kapalı mı olduğunu öğrenin.
- Işıkların geçersiz kılındıklarında 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 komut dosyasını ş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şturur.
5. Adım: Komut Dosyalarını Zamanlama
Raspberry Pi'niz otomasyon komut dosyalarını cron ile çalıştırabilir. Programı şu şekilde 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> BOŞ
Not: Raspberry Pi'nize giriş yaptığınız kullanıcı adı varsayılan değilse pi sayısı, yolu uygun şekilde değiştirin.
İlk satırda karanlık olduğunda ışıkların yanmasını istediğiniz tüm saatleri listeleyin. Işıkları söndürmek istediğiniz tüm saatler ikinci satıra gider.
Şimdi Pi başlatıldığında geçersiz kılma komut dosyasını otomatik olarak çalışacak şekilde 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 ve
Son olarak, Raspberry Pi'yi yeniden başlatın, böylece sunucu betiğinin yüklenip yüklenmediğini kontrol edebilirsiniz
sudo yeniden başlatma
Adım 6: Röleyi Test Edin
Işıklarınızı bağlamadan önce, geçersiz kılma işlevini kullanarak her şeyin çalışıp çalışmadığını test edin. IP adresini kendi Raspberry Pi'nizin adresiyle değiştirerek Pi'nizle aynı ağdaki bir web tarayıcısına aşağıdakileri yazın:
11.22.33.44:1234/overrideon/3
Her şey yolundaysa, röle tıkladığını duyacaksınız ve tarayıcı ışıkların üç dakika boyunca açıldığını yanıtlayacaktır.
Röle kapalıyken, diğer geçersiz kılma işlevlerini test edebilirsiniz. Bu, geçersiz kılma nedeniyle ışıkların kaç dakika daha açık 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, bunları aşağıdakilerle tekrar kapatabilirsiniz:
11.22.33.44:1234/overrideoff
Röle açıldığında tıklayacaktır.
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) konektörleri aşağıdaki gibi normal bir anahtar yerine kullanın:
Son olarak, lux sensörünüzü ortam ışık seviyesini yakalayacağı bir yere monte edebilirsiniz. TSL2561'in doğrudan parlak güneş ışığına maruz kalması durumunda doymuş olarak rapor edeceğini unutmayın, bu nedenle mümkünse gölgede tutmak en iyisidir.
Denemeniz İçin Daha Fazla Raspberry Pi Projesi
Bir web tarayıcısına komutlar yazarak yeni akıllı aydınlatma kurulumunuzu uzaktan geçersiz kılmak oldukça zahmetlidir. Daha iyi bir yol, işleri kolaylaştırmak için Amazon Yankı gibi bir şeyi bağlamaktır. Alexa hizmetini ve Webhooks hizmetini birleştirme IFTTT ses kontrolü eklemenin basit bir yoludur.
Bkz. kullanma kılavuzu başlamanıza yardımcı olmak için.
Başka bir seçenek Siri Kısayollarını kullanmaktır. Menülere sahip tek bir kısayol, ışıkların durumunu sorgulayabilir ve bunları açmak ve kapatmak için geçersiz kılma işlevlerini kullanabilir.
Bu projeden hoşlanıyorsanız, bunları kontrol ettiğinizden emin olun. garip Raspberry Pi projeleri En Garip Ahududu Pi ProjeleriHer birimizin içinde çılgın bir bilim adamı var ve Raspberry Pi iç loonunuzun dışarı çıkıp oynamasına izin veriyor. Bazen işler garipleşir. Gerçekten garip. Daha fazla oku daha fazla fikir için.
Hamish serbest yazar, teknolojinin yaşam boyu sevgilisi ve onaylanmış inek. Sonunda patronunu kovmadan ve yalnız bırakmadan önce çok uluslu şirketlerin BT departmanlarında çalıştı.