İçindekiler:

Parlak Kontrol Edilebilir Gündoğumu Lambası: 6 Adım
Parlak Kontrol Edilebilir Gündoğumu Lambası: 6 Adım

Video: Parlak Kontrol Edilebilir Gündoğumu Lambası: 6 Adım

Video: Parlak Kontrol Edilebilir Gündoğumu Lambası: 6 Adım
Video: CELLAT36 DAMARLARI SAHTEYMİŞ İŞTE KANITI HERŞEY KURGU 2024, Temmuz
Anonim
Parlak Kontrol Edilebilir Gündoğumu Lambası
Parlak Kontrol Edilebilir Gündoğumu Lambası
Parlak Kontrol Edilebilir Gündoğumu Lambası
Parlak Kontrol Edilebilir Gündoğumu Lambası

Her zamanki işe gitmek için uyanmanız gereken saat olan 7'de uyandınız ve kendinizi karanlıkta buldunuz mu? Kış korkunç bir zamandır, değil mi? Gecenin bir yarısı uyanmanız (aksi halde hava neden bu kadar karanlık?), kendinizi yataktan kaldırmanız ve yarı bilinçli bedeninizi duşa göndermeniz gerekiyor.

Bu proje sorunlardan birini çözmeyi hedefliyor - sabah karanlığı.

Etrafta bir sürü ucuz gün doğumu lambası var ama hepsi düşük güçlü ve soluk. Daha çok, daha iyi uyumanızı sağlayacak bir gece lambası gibidirler. Hiç istediğim şey değil.

Aynı zamanda, sadece parlak ışığı açmak sizi hemen uyandıracaktır, ancak yeterince nazikçe değil. İstediğim şey her iki yaklaşımın bir kombinasyonu - düşük bir parlaklıkla aydınlan, yavaşça tam hıza ulaş, sonra gerçek bir alarm çalıyor ve artık o kadar uykun yok. Biraz da kuş cıvıltısı ekleyelim ve her sabah bir cennette uyanırsınız!

Adım 1: Lamba Dizisi

Lamba Dizisi
Lamba Dizisi
Lamba Dizisi
Lamba Dizisi

Her şeyden önce, lambanın kendisine ihtiyacımız var. Beyaz duvarları ve tavanı olan oldukça büyük bir odam var, bu yüzden her biri 6W gibi bir şey, 40W'tan fazla saf güç olan 7 GU10 LED lambaya gittim! Zaten gündüz gibi hissetmeniz için bu yeterli. Ayrıca gündüz normal oda aydınlatması olarak da kullanılabilir.

Nasıl monte ettiğiniz, hangi lambaları hangi prizlerle kullandığınız çok da önemli değil. Önemli olan her şey - bunlar kısılabilir lambalar olmalı!

Benim durumumda, hepsi birbirine bağlı 7 GU10 soketli bir ahşap tahtam var. Daha sonra plastik bir kutuya koyacağım.

2. Adım: Karartma Teorisi

Karartma Teorisi
Karartma Teorisi

Teoride teori ile pratik arasında fark yoktur. Pratikte var.

ESP32/Arduino'dan bir dimmer'ı kontrol etmek, hayal ettiğim kadar basit değildi. RobotDyn AC Işık Dimmer modüllerinden birini aldım. Üretici bunun için bir kütüphane önerir. ESP32'de çalışmıyor (ve çok sayıda düşük seviyeli ATMega'ya özgü kayıt defteri erişimi kullandığı için uyarlaması gerçekten zor), Arduino Nano'da çalışıyor ve düşük-orta parlaklıkta korkunç bir titreme veriyor. Bu yüzden her şeyin nasıl çalıştığını araştırmak ve kendi yolumu çizmek için biraz zaman harcadım.

Biraz teori

Seçilen dimmer modülü çok popüler bir TRIAC kullanır: BTA16. Bununla ilgili birçok makale var. Burada özetlemeye çalışacağım.

TRIAC, giriş pozitif veya negatif voltajını çıkışa iletebilen veya bloke edebilen bir modüldür. Varsayılan olarak her şeyi engeller. Açılabilmesi için kapı girişinde 100 us için yüksek sinyal vermeliyiz. Daha sonra akım sıfıra düşene kadar açık kalacaktır; bu, bir giriş voltajı işareti değiştirip sıfır voltajı geçtiğinde gerçekleşir. Sonra bir sonraki döngüde 100 us'luk bir nabız daha yapmalıyız. Nabızın ne zaman verileceğini seçerek parlaklığı kontrol ediyoruz: en baştan yapın ve %100 güç aktarımına yakın olacaktır. Daha sonra yapın, kararacaktır. Bunu açıklayan yukarıdaki şemaya bakın.

Döngünün aynı noktasında darbeler üretebilmek için tam olarak ne zaman başladığını bilmemiz gerekir. Bu nedenle dimmer modülünde yerleşik bir Zero-Cross dedektörü bulunur. Voltaj sıfırı her geçtiğinde sadece bir sinyal yükseltir (Arduino'da bir donanım kesintisi olarak yakalayacağız).

Adım 3: Karartma Uygulaması

Karartma Uygulaması
Karartma Uygulaması

Evet, lambanızın kararması yoksa ve 40W'lık gücün tamamını uykulu gözlerinize verirse böyle uyanırsınız.

Ortak sorunlar

Ele almamız gereken birden fazla sorun var.

titriyor.

Kapı çıkışını açıp kapatırken mikrodenetleyicinin zamanlaması gerçekten hassas olmalıdır. RobotDyn kütüphanesinin önerdiği, her 100us'da bir zamanlayıcı kesmesi vardır ve kapı seviyesini yalnızca zamanlayıcıda değiştirir. Bu, optimum değerden +/- 50 mikrosaniye uzakta olabileceği anlamına gelir. Yüksek parlaklıkta iyi sonuç verir, ancak düşük parlaklıkta çok titrer. Ayrıca mikrodenetleyici çok şey yapıyorsa, zaman doğruluğunu azaltır, bu nedenle ideal olarak dimmer için özel bir mikrodenetleyici kullanılmalıdır.

Minimum parlaklık. LED'lerde, yeterli güç olmadığında çalışmayı reddedecek yerleşik bir güç dönüştürücüsü bulunur. Lambalarım %10-11'den başlayarak iyi çalışıyor gibi görünüyordu.

Bu değerde bile, bazı lambalarım başlangıçta yanmayı reddetti. Parlaklığı daha sonra arttırırken bile karanlık kalırlar. Bu nedenle KAPALI durumundan pozitif bir parlaklığa geçtiğimizde, lambalara tam güç verdiğimizde 5 devirlik bir ısınma periyodu ile başlıyoruz. Ardından istenilen parlaklıkta devam ediyoruz. Neredeyse fark edilmez, ancak gerçekten yardımcı olur.

50/60 Hz şebeke frekansı. Bir sonraki sıfırdan önce ne kadar bekleyeceğinizi bilmeniz gerekir. Oldukça basit - sadece son iki kesinti arasındaki zaman farkına bakıyoruz.

Kademeli parlaklık değişimi. ESP32 oldukça yavaştır, önemsiz bir HTTP veya hatta WebSocket isteğini işlemek 0,5 saniye sürer, bu nedenle yumuşak bir parlaklık geçişi beklemeyin, bir şekilde daha sönük düzeyde uygulanması gerekir. Bu nedenle, bir seri porttan yeni bir parlaklık aldığında, sadece hedefi belirler ve daha sonra zaman içinde yavaş yavaş ona yaklaşır.

Çözüm

İşte dimmer için basit Arduino kodum. Seri girişten bir komut (yeni parlaklık ile bir bayt) bekler, Zero-Cross kesmelerini işler, TRIAC'ı kontrol eder, yukarıdaki tüm sorunları ele alır.

Adım 4: Lamba Denetleyicisi (ESP32)

Lamba Denetleyicisi (ESP32)
Lamba Denetleyicisi (ESP32)
Lamba Denetleyicisi (ESP32)
Lamba Denetleyicisi (ESP32)

İşte sahip olduğum tüm bileşenlerin bağlantı şeması. ESP32 kartı benim kullandığımdan (Heltec) çok farklı, bu yüzden seçilen pinler biraz garip görünüyor, ancak yine de iyi çalışması gerekiyor. Projenizde farklı pinler kullanmaktan çekinmeyin.

İşte her şeyi kontrol eden kod. Oldukça düz.

Ana Özellikler

Kontrol edilebilir. Lamba WiFi'ye bağlanır, 81 numaralı bağlantı noktasında bir WebSocket sunucusu başlatır, komutları bekler. Komut formatı

Şimdilik sadece iki komut destekleniyor: "set_brightness" ve "update_settings", bunlar oldukça açıklayıcı.

NTP'den zaman alma. İşleri aşırı karmaşık hale getirmek ve şemaya gerçek zamanlı bir saat eklemek istemiyorum. İnternet erişimimiz var, bu da bazı NTP sunucularından gerçek zamanı alabileceğimiz ve ardından sistem zamanlayıcılarını kullanarak mevcut zamanı takip edebileceğimiz anlamına geliyor.

Gün Doğumu Alarmı. Bir alarm ayarlayabilirsiniz. Gerçekte ne yapar: Minimum parlaklıkla başlar ve 10 dakika içinde kademeli olarak tam parlaklığa geçer. Sonra birkaç saat açık kalır. Sonra yavaş yavaş 60 saniye içinde kapanır.

Yukarıdaki tüm parametreler yapılandırılabilir.

Kuşlar şarkı söylüyor. DFPlayer mini müzik çalmak için kullanılır. Bunun için çok sayıda kılavuz var, ancak esas olarak FAT32 olarak biçimlendirilmiş bir MicroSD kartı takmanız ve 0001.mp3 adlı bir dosyaya sahip olmanız gerekiyor. Bu dosyada istediğiniz herhangi bir şey olabilir, benim durumumda 15 dakikalık kuş ötüşü (döngüye alınacak) ve sabahımı harika kılıyor. ESP32 ve DFplayer - bunlar isteğe bağlıdır, ancak gürültüyü azaltmaya yardımcı olur.

Ayarların EEPROM'da saklanması. Tüm ayarlar EEPROM'a yazılır ve başlangıçta yüklenir. Herhangi bir kontrolör bağlanmadan lambanın en az alarm özelliği ile kullanılmasına olanak sağlar.

OLED ekranına bazı bilgiler aktarılıyor. Heltec ESP32'mde yerleşik bir SSD1306 128X64 I2C ekranı var. Tüm gerekli bilgiler üzerinde işleniyor. Biliyorum, kutu çirkin görünüyor, sadece bazı şeyleri 3D yazdırdım ve delikleri ve pencereleri bir matkapla kestim. Çabuk, kirli, ama işe yarıyor!

Adım 5: Kontrol Paneli

Kontrol Paneli
Kontrol Paneli
Kontrol Paneli
Kontrol Paneli

Projenin kalbi bu. Bazı Kivy ön uçlarını çalıştıran, orijinal 7 ekranlı bir Raspberry Pi.

İşte tam kaynak kodu.

Özellikler

Python'da yazılmıştır. Kivy'yi seviyorum, kullanıcı arayüzleri için bir Python çerçevesi. Çok basit, ancak esnek ve verimli (yüksek performans ve donanım hızlandırması için içeride çok sayıda C kodu kullanır).

Hava durumu. Dışarıdaki mevcut sıcaklığı ve basıncı gösterin. Bir uzak sensör bağlarsanız - iç sıcaklık da. Ayrıca, takip eden 12 saat için hava tahminini talep eder ve analiz eder ve yağmur olasılığı hakkında bir tavsiye verir.

SunriseLamp denetleyicisi. Başka bir panel, alarmla ilgili bazı temel bilgileri görüntüler ve parlaklığı ayarlamanıza olanak tanır. Ayarlara giderseniz, alarm programı, maksimum ses seviyesi vb. dahil olmak üzere lambanın herhangi bir parametresini yapılandırabilirsiniz.

Screensaver. Bir süre hareketsiz kaldıktan sonra Game of Life'ı ekranda oluşturur.

Eskiden bundan daha fazlası vardı, ama diğer şeyler işe yaramaz görünüyordu.

Kurulum

Her şeyi Raspbian'a manuel olarak yükledim ve şimdi şunu söyleyebilirim: hatalarımı tekrarlama. KivyPie'yi kullanın, önceden yüklenmiş her şeye sahiptir.

Bunun dışında kod deposundaki kurulum kılavuzunu takip etmeniz yeterli.

Adım 6: Keyfini çıkarın

Şahsen ben cihazdan memnunum. Gündüz evde ana aydınlatma olarak kullanıyorum ve sabah uyanmamı sağlıyor, inanılmaz.

Talimatların çok ayrıntılı ve açıklayıcı olmadığını biliyorum. Birisi aynı şeyi yaparsa ve sorun yaşarsa - yardımcı olmaktan memnuniyet duyarım!

Önerilen: