İçindekiler:

Ev Otomasyonu için DIY IoT Lambası -- ESP8266 Eğitimi: 13 Adım (Resimlerle)
Ev Otomasyonu için DIY IoT Lambası -- ESP8266 Eğitimi: 13 Adım (Resimlerle)

Video: Ev Otomasyonu için DIY IoT Lambası -- ESP8266 Eğitimi: 13 Adım (Resimlerle)

Video: Ev Otomasyonu için DIY IoT Lambası -- ESP8266 Eğitimi: 13 Adım (Resimlerle)
Video: Arduino IoT Cloud Nedir? 2024, Temmuz
Anonim
Image
Image
Ev Otomasyonu için DIY IoT Lambası || ESP8266 Eğitimi
Ev Otomasyonu için DIY IoT Lambası || ESP8266 Eğitimi

Bu dersimizde internete bağlı bir akıllı lamba yapacağız. Bu, nesnelerin internetine derinlemesine girecek ve bir ev otomasyonu dünyasının kapılarını açacak!

Lamba WiFi bağlantılıdır ve açık bir mesaj protokolüne sahip olacak şekilde üretilmiştir. Bu, istediğiniz kontrol modunu seçebileceğiniz anlamına gelir! Bir web tarayıcısı, ev otomasyon uygulamaları, Alexa veya Google Asistan gibi akıllı asistanlar ve çok daha fazlası aracılığıyla kontrol edilebilir!

Bir bonus olarak, bu lamba projeyi kontrol etmek için bir uygulama ile birlikte gelir. Burada farklı renk modları seçebilir, RGB renkleri arasında geçiş yapabilir ve zamanlayıcıları ayarlayabilirsiniz.

Lamba, bir LED panosu ve bir kontrol panosundan oluşur. LED kartı, toplam beş LED kanalı için üç farklı LED türü kullanır! Bu, hem sıcak hem de soğuk beyaz ile birlikte RGB'dir. Bu kanalların tümü ayrı ayrı ayarlanabildiği için toplam 112,3 peta kombinasyonunuz var!

Başlayalım!

[Video oynatmak]

Adım 1: Parçalar ve Araçlar

Parçalar ve Araçlar
Parçalar ve Araçlar

Parçalar

  • Wemos D1 Mini
  • 15 x Sıcak beyaz 5050 LED
  • 15 x Soğuk beyaz 5050 LED
  • 18 x RGB 5050 LED
  • 6 x 300 ohm 1206 direnç
  • 42 x 150 ohm 1206 direnç
  • 5 x 1k ohm direnç
  • 5 adet NTR4501NT1G

    MOSFET'ler

  • Lineer voltaj regülatörü, 5V
  • PCB

    Kendi PCB'lerinizi yapmak için devre adımındaki gerber dosyalarını indirin

  • PSU 12V 2A

Aletler

  • Havya
    • Lehimleme kalay
    • Sıvı lehimleme akısı
  • Maskeleme bandı
  • Çift taraflı bant
  • 3 boyutlu yazıcı
  • Tel striptizci

Adım 2: Plan

Plan
Plan

Komple proje dört ana bölümden oluşmaktadır:

  1. Devre

    Devre bir PCB üzerinde yapılmıştır. Tamamlanan devre 100'den fazla bağımsız bileşenden oluşacaktır. Bunların hepsini bir perfboard üzerine elle bağlamamak büyük bir rahatlık

  2. Arduino Kodu

    WiFi bağlantılı mikro denetleyici olarak ESP8266 kullanan Wemos D1 Mini kullanıyorum. Kod, D1'de bir sunucu başlatacaktır. Bu sunucunun adresini ziyaret ettiğinizde D1 bunu farklı komutlar olarak yorumlayacaktır. Mikrodenetleyici daha sonra ışıkları buna göre ayarlamak için bu komuta göre hareket eder

  3. Uzaktan kumanda
    • Lambayı istediğiniz gibi kontrol etmeyi olabildiğince kolaylaştırmak için sadece bu proje için bir uygulama yaptım

    • Akıllı lamba, bir http GET isteği gönderebilen herhangi bir şey tarafından gerçekten kontrol edilebilir. Bu, lambanın neredeyse sınırsız sayıda cihazdan komutları kabul ettiği anlamına gelir.
  4. 3D Baskı

    Bu akıllı lamba, havalı görünümlü bir kılıfı hak ediyor. Ve harika bir kasaya ihtiyacınız olan pek çok projede olduğu gibi, 3D baskı kurtarmaya geliyor

Adım 3: Devre

Devre
Devre
Devre
Devre
Devre
Devre

PCB'lerimi jlcpcb.com'dan sipariş ettim. Tam açıklama zamanı: Bu projeye de sponsor oldular.

PCB iki bölümden oluşmaktadır. LED panosu ve kontrol panosu vardır. PCB, daha sonra bu iki parçayı esnek tel ile bağlamak için ayrılabilir. Bu, hem 3D baskılı lambayı ince tutmak hem de LED kartını ışığı delik odasına eşit bir şekilde yaymak için eğmek için gereklidir.

Kontrol panosu, LED'leri karartmak için beş MOSFET ile birlikte D1 mikro denetleyicisini ve mikro denetleyiciye yumuşak bir 5V vermek için bir voltaj regülatörünü barındırır.

LED panosu, üç farklı LED tipinde beş LED kanalına sahiptir. 12V güç kaynağı kullandığımız için, LED'ler bir dirençle seri olarak üç LED olarak yapılandırılır ve ardından paralel olarak 16 kez tekrarlanır.

Normal bir beyaz LED genellikle 3,3 V çeker. Kartın bir segmentinde, bu LED'lerden üçü seridir, bu da voltaj düşüşünün devrede toplandığı anlamına gelir. Her biri 3,3 V çeken üç LED, bir LED segmentinin 9,9 V çektiği anlamına gelir. Devreye 12 V güç verilir, böylece 2,1 V kalır.

Segment yalnızca üç LED'den oluşuyorsa, dağıttıklarından daha fazla voltaj alırlardı. Bu, LED'ler için iyi değildir ve onlara hızla zarar verebilir. Bu nedenle her segmentte ayrıca üç LED'in tümü ile seri olarak bir direnç bulunur. Bu direnç, seri bağlantıda kalan 2,1 V'u düşürmek için orada.

Dolayısıyla, her segment 12 V'a denk geliyorsa, bu, segmentlerin her birinin paralel olarak birbirine bağlı olduğu anlamına gelir. Devreler paralel bağlandığında hepsi aynı voltajı alır ve akım toplanır. Seri bağlantıda akım her zaman aynıdır.

Normal bir LED 20 mA akım çeker. Bu, üç LED ve seri bağlı bir dirençten oluşan bir segmentin hala 20 mA çekeceği anlamına gelir. Birkaç segmenti paralel bağladığımızda akımı ekliyoruz. Şeritten altı LED keserseniz, bu segmentlerden ikisi paralel olur. Bu, toplam devrenizin hala 12 V çektiği, ancak akımda 40 mA çektiği anlamına gelir.

Adım 4: Lehimleme LED'leri

Lehimleme LED'leri
Lehimleme LED'leri
Lehimleme LED'leri
Lehimleme LED'leri
Lehimleme LED'leri
Lehimleme LED'leri

Birkaç şeyi denemekten, basit maskeleme bandının PCB'nin hareket etmesini önlemek için en etkili ve esnek olduğunu buldum.

5050 LED'deki 6 pim gibi birden fazla pimli parçalar için, PCB pedlerinden birine lehimi yerleştirerek başlıyorum. O zaman bu sadece bir cımbızla bileşeni yerine kaydırırken bu lehimi havya ile erimiş halde tutmak meselesidir.

Artık diğer pedler bir miktar lehimle kolayca yapıştırılabilir. Ancak, bu işi hızlandırmak için biraz sıvı lehim akısı almanızı öneririm. Bu şeyleri gerçekten yeterince tavsiye edemem.

Lehim pedlerine biraz flux uygulayın, ardından havyanızın ucunda biraz lehim eritin. Şimdi sadece erimiş lehimi pedlere getirmek meselesi ve her şey yerine akıyor. Güzel ve basit.

Dirençler ve diğer iki pedli bileşenler söz konusu olduğunda, lehim akısına gerçekten ihtiyaç yoktur. Pedlerden birine lehim uygulayın ve direnci yerine getirin. Şimdi iki numaralı pedin üzerine biraz lehim eritin. Basit.

Bu adımda beşinci resme bir göz atın. LED'lerin yönüne dikkat edin. Sıcak ve soğuk beyaz LED'lerin çentikleri sağ üst köşeye yönlendirilmiştir. RGB LED'lerin sol alt köşesinde çentiği vardır. Bu projede kullanılan RGB LED'lerin veri sayfasını bulamadığım için bu benim açımdan bir tasarım hatası. Oh iyi, yaşa ve öğren ve hepsi bu!

Adım 5: Lehimleme Kontrol Panosu

Lehimleme Kontrol Panosu
Lehimleme Kontrol Panosu
Lehimleme Kontrol Panosu
Lehimleme Kontrol Panosu
Lehimleme Kontrol Panosu
Lehimleme Kontrol Panosu
Lehimleme Kontrol Panosu
Lehimleme Kontrol Panosu

LED panosunun maratonunu bitirdikten sonra, kontrol panosu lehimlemek için bir esinti. Voltaj regülatörüne geçmeden önce beş MOSFET'i ve eşleşen geçit kaynağı dirençlerini yerleştirdim.

Voltaj regülatörü, kapasitörleri yumuşatmak için isteğe bağlı boşluklara sahiptir. Onları bu resimde lehimlerken, gerçekten gerekli olmadıkları için onları çıkardım.

İnce bir kontrol panosu elde etmenin püf noktası, pin başlıklarını yukarıdan aşağıya doğru sokmaktır. Pimler yerine takıldıktan sonra, kullanılmayan uzunluk siyah plastikle birlikte arka taraftan kesilebilir. Bu, alt tarafı tamamen pürüzsüz hale getirir.

Tüm bileşenler yerinde olduğunda, iki kartı bir araya getirme zamanı. Altı küçük 2,5 inç (7 cm) kabloyu kesip çıkardım ve iki PCB'yi bağladım.

Adım 6: WiFi Kurulumu

WiFi Kurulumu
WiFi Kurulumu
WiFi Kurulumu
WiFi Kurulumu

Kodda değiştirmeniz gereken altı basit satır var.

  1. ssid, satır 3

    Yönlendiricinizin adı. Bunu yazarken harf durumunu doğru anladığınızdan emin olun

  2. wifiPass, 4. satır

    Yönlendirici şifreniz. Yine, kasaya dikkat edin

  3. ip, satır 8

    Akıllı lambanızın statik ip adresi. Ağımda rastgele bir ip adresi seçtim ve komut penceresinde ping atmaya çalıştım. Adresten yanıt gelmezse, uygun olduğunu varsayabilirsiniz

  4. ağ geçidi, satır 9

    Bu, yönlendiricinizdeki ağ geçidi olacaktır. Bir komut penceresi açın ve "ipconfig" yazın. Ağ geçidi ve alt ağ, resimde kırmızı daire içine alınmıştır

  5. alt ağ, satır 10

    Ağ geçidinde olduğu gibi, bu bilgi bu adım için resimde daire içine alınmıştır

  6. saat dilimi, satır 15

    Bulunduğunuz saat dilimi. Belirli zamanlarda ışıkları açıp kapatmak için yerleşik zamanlayıcı işlevlerini kullanmak istiyorsanız bunu değiştirin. Değişken, basit bir artı veya eksi GMT'dir

Adım 7: Mikrodenetleyici Kodu

Mikrodenetleyici Kodu
Mikrodenetleyici Kodu
Mikrodenetleyici Kodu
Mikrodenetleyici Kodu
Mikrodenetleyici Kodu
Mikrodenetleyici Kodu
Mikrodenetleyici Kodu
Mikrodenetleyici Kodu

Bir önceki adımda tüm ilgili ayarları değiştirdikten sonra, nihayet kodu Wemos D1 Mini'ye yükleme zamanı geldi!

Arduino kodu birkaç kitaplık ve bağımlılık gerektirir. Arduino IDE'den bir ESP8266'ya hiç kod yüklemediyseniz, önce bu kılavuzu sparkfun'dan izleyin.

Şimdi Zaman kitaplığını ve TimeAlarms kitaplığını indirin. Bunları açın ve bilgisayarınızdaki arduino kitaplığı klasörüne kopyalayın. Tıpkı diğer arduino kitaplıklarını kurmak gibi.

Bu adımda resimdeki yükleme ayarlarına dikkat edin. com bağlantı noktası dışında aynı yapılandırmayı seçin. Bu, mikrodenetleyicinizin bilgisayarınızda bağlı olduğu com bağlantı noktası olacaktır.

Kod yüklendiğinde, umarım başarılı bir bağlantı mesajı için seri terminali açın! Artık tarayıcınızı açıp mikrodenetleyiciye kaydettiğiniz statik ip adresini ziyaret edebilirsiniz. Tebrikler, kendi sunucunuzu kurdunuz ve üzerinde bir web sayfası barındırıyorsunuz!

Adım 8: Mesaj Protokolünü Açın

Mesaj Protokolünü Aç
Mesaj Protokolünü Aç
Mesaj Protokolünü Aç
Mesaj Protokolünü Aç
Mesaj Protokolünü Aç
Mesaj Protokolünü Aç
Mesaj Protokolünü Aç
Mesaj Protokolünü Aç

Akıllı lambayı uygulama ile kontrol ettiğinizde tüm mesajlar sizin için otomatik olarak işlenecektir. Kendi uzaktan kumandanızı yapmak istiyorsanız, lambanın kabul ettiği mesajların listesi burada. Komutların nasıl kullanılacağını göstermek için örnek bir ip adresi kullandım.

  • 192.168.0.200/&R=1023G=0512B=0034C=0500W=0500

    • Kırmızı ışıkları maksimum değere, yeşil ışıkları yarı değere ve mavi ışıkları 34'e ayarlar. Soğuk ve sıcak beyaz zar zor yanıyor
    • Değerleri girerken 0 ile 1023 arasında seçim yapabilirsiniz. Açık değerleri URL'de her zaman dört haneli olarak yazın.
  • 192.168.0.200/&&B=0800

    Diğer tüm ışıkları aynı anda kapatırken mavi ışıkları 800 değerine ayarlar

  • 192.168.0.200/LED=KAPALI

    Tüm ışıkları tamamen kapatır

  • 192.168.0.200/LED=SOLMA

    Tüm olası RGB renkleri arasında yavaş yavaş solmaya başlar. Ambiyans için mükemmel

  • 192.168.0.200/NOTIFYR=1023-G=0512-B=0000

    Gelen bildirimi belirtmek için verilen rengi iki kez yanıp söner. Örneğin, bilgisayarınızda yeni bir e-posta aldığınızda lambayı kırmızı renkte yakacak bir program oluşturmak istiyorsanız mükemmeldir

  • 192.168.0.200/DST=1

    • Saati gün ışığından yararlanma saatine göre ayarlar. Saate bir saat ekler
    • /DST=0 bunu DST'den geri dönmek için kullanın, DST etkinse saatten bir saat çıkarır
  • 192.168.0.200/TIMER1H=06M=30R=1023G=0512B=0034C=0000W=0000

    Zamanlayıcı 1 için durumu kaydeder. Bu zamanlayıcı, sabah 06:30'da verilen RGB değerlerini açacaktır

  • 192.168.0.200/ZAMANLAYICI1H=99

    Zamanlayıcıyı devre dışı bırakmak için zamanlayıcı saatini 99'a ayarlayın. RGB değerleri hala saklanır, ancak saat 99'a ayarlandığında zamanlayıcı ışıkları açmaz

  • Lambanın dört ayrı zamanlayıcısı vardır. Diğer yerleşik zamanlayıcılardan birini ayarlamak için "TIMER1"i "TIMER2", "TIMER3" veya "TIMER4" olarak değiştirin.

Bunlar şu anda yerleşik komutlardır. Arduino kodunda veya uzak uygulamada oluşturulacak yeni komutlar için harika fikirleriniz varsa yorum bırakın!

Adım 9: Uzaktan Kontrol

Uzaktan kumanda
Uzaktan kumanda
Uzaktan kumanda
Uzaktan kumanda
Uzaktan kumanda
Uzaktan kumanda
Uzaktan kumanda
Uzaktan kumanda

Uygulamayı indirmek için buraya tıklayın. Kurulum çok kolay hale getirildi, sadece akıllı lambanızın ip adresini girin ve sadece RGB LED'leri mi yoksa RGB + sıcak ve soğuk beyaz LED'leri mi kontrol etmek istediğinizi seçin.

Önceki adımda açıklandığı gibi, artık uygulamanın hangi mesaj protokolünü kullandığını biliyorsunuz. URL'lerle birlikte bir http GET isteği gönderiyor. Bu, kendi mikro denetleyici devrenizi de oluşturabileceğiniz ve kendi geliştirdiğiniz işlevleri kontrol etmek için bu uygulamayı kullanmaya devam edebileceğiniz anlamına gelir.

Mesaj protokolünü gerçekten derinlemesine incelediğimiz için, akıllı lambayı http GET isteği gönderebilen herhangi bir şeyle de kontrol edebilirsiniz. Bu, telefon veya bilgisayardaki herhangi bir tarayıcı veya Alexa veya Google Asistan gibi akıllı ev cihazları veya yardımcıları anlamına gelir.

Tasker, temelde her şeyi kontrol etmek için koşullar oluşturmanıza izin veren bir uygulamadır. Bunu telefonuma aldığımda akıllı lambayı bildirim rengiyle yakmak için kullandım. Ayrıca, telefon hafta içi saat 16:00'dan sonra evimdeki WiFi'ye bağlandığında ışıkları tam beyaz açmak için Tasker'ı kurdum. Bu, okuldan eve geldiğimde ışıkların otomatik olarak açılacağı anlamına geliyor. Işıklar otomatik olarak açıkken eve gelmek gerçekten harika!

Adım 10: 3D Baskı

3D Baskı
3D Baskı

Lamba kutusunun kendisi neredeyse tamamen desteksiz olarak basılabilir. Gerçekten desteğe ihtiyaç duyan tek parça, PCB ile eşleşmeye yönelik mandallardır. Bu nedenle, stl'yi sadece bu mandallar için hem küçük bir destek yapısıyla hem de onsuz kullanılabilir hale getirdim. Bu özel desteği kullanmanın avantajı, baskının çok daha hızlı olmasıdır! Ve sadece gerçekten ihtiyacı olan parçalar için baskı desteği alıyoruz.

.stl dosyalarını buradan indirebilirsiniz

Adım 11: Hepsini Bir Araya Getirin

Hepsini Bir Araya Getirin
Hepsini Bir Araya Getirin
Hepsini Bir Araya Getirin
Hepsini Bir Araya Getirin
Hepsini Bir Araya Getirin
Hepsini Bir Araya Getirin

3D baskıdan sonra baskı desteğini kaldırarak başlayın. Güç kabloları ayrı kanallara gider ve birbirine bağlanır. Bu düğüm, kabloların PCB'den kopmasını önleyen gerilim azaltma oluşturacaktır. Güç kablolarını PCB'nin arka tarafına lehimleyin ve doğru polariteyi aldığınızdan emin olun!

Kontrol PCB daha sonra kasanın içinde aynı hizada kalması için bir parça bantla sabitlenir. LED PCB, kendi başına kasaya yaslandığı yere kolayca yerleştirilebilir.

Adım 12: Lambayı Asmak

Lambayı Asmak
Lambayı Asmak
Lambayı Asmak
Lambayı Asmak
Lambayı Asmak
Lambayı Asmak

Bu lambayı duvara asmak için birçok seçenek var. Lambayı iyileştirmek için kodu sürekli güncelleyebileceğim için, zaman zaman lambayı indirmenin bir yolunu istedim. Sıcak tutkal kullanabilirsiniz, ancak çift taraflı bant öneririm. Lambayı dokulu bir duvara en iyi şekilde tuttuğu için kalın ve köpüklü çift taraflı bandı kullanmak en iyisidir.

Adım 13: Tamamlandı

bitmiş
bitmiş
bitmiş
bitmiş
bitmiş
bitmiş

Lamba duvardayken ve komutları kabul etmeye hazırken işiniz bitti demektir!

LED panel, ışığı odaya eşit olarak dağıtacak şekilde açılıdır. Herhangi bir çalışma alanına güzel bir ektir ve ev otomasyonu ile entegrasyon yeteneği harika bir artıdır. RGB renklerini ayarlamanın yanı sıra soğuk ve sıcak ışık arasındaki beyaz dengelerini ayarlama yeteneğini gerçekten seviyorum. Şık görünüyor ve şu anda sahip olduğum herhangi bir aydınlatma ihtiyacına uyacak şekilde ortam veya çalışma ışıklarını ayarlamak için harika bir yardımcı.

Tebrikler, artık IoT ve ev otomasyonu dünyasına büyük bir adım attınız!