İçindekiler:

IoT Ay Lambası: 5 Adım
IoT Ay Lambası: 5 Adım

Video: IoT Ay Lambası: 5 Adım

Video: IoT Ay Lambası: 5 Adım
Video: Cin Çıkarma Seansı Remix! 2024, Kasım
Anonim
IoT Ay Lambası
IoT Ay Lambası

Bu talimatta, pille çalışan basit bir LED lambanın bir IoT cihazına nasıl dönüştürüleceğini gösteriyorum.

Bu proje şunları içerir:

  • lehimleme;
  • ESP8266'yı Arduino IDE ile programlama;
  • MIT App Inventor ile android uygulama yapma.

İlgimi çeken şey gearbest'ten aldığım bu ay şeklindeki lamba. Ancak gerçekten bu eğitim, herhangi bir düşük DC voltajlı cihaza uyarlanabilir (AC ile çalışan cihazlar ek devre gerektirir).

Gereçler

  1. Android akıllı telefon (Android sürümleri 7-9 test edildi).
  2. Lehimleme araçları.
  3. Prototipleme PCB (protoboard).
  4. ESP-12E kartı (veya ESP8266 mikrodenetleyicili başka bir devboard).
  5. Programlama için USB seri dönüştürücü.
  6. Pasif bileşenlerin birkaç farklı değeri (dirençler ve kapasitörler).

(Opsiyonel. "Blok Şeması" bölümüne bakın)

  1. 3.3V@500mA LDO IC.
  2. 3.3V-5V mantık seviyesi dönüştürücü kartı.
  3. 5V DC güç kaynağı.

Adım 1: Fikir

Fikir
Fikir

Ay lambası bir Li-ION 18650 pil ile çalışır ve 3 çalışma moduna sahiptir:

  • kapalı;
  • Manuel;
  • Oto.

Manuel modda lamba buton ile kontrol edilir, her basışta LED ışık durumu değişir (mavi açık, turuncu açık, her ikisi de açık, kapalı), butona basılı tutulduğunda ışık şiddeti değişir. Otomatik modda LED ışık durumları, lambaya dokunarak veya sallayarak değişir.

İstekleri dinleyen ve buna göre düğme basışlarını simüle eden bir web sunucusu olarak işlev görmesi için ESP8266'yı eklemeye karar verdim. Orijinal lamba işlevselliğini bozmak istemedim, sadece WiFi üzerinden ek kontrol özellikleri eklemek istedim, bu yüzden LED'leri doğrudan kontrol etmek yerine düğme preslerini simüle etmek için ESP'yi seçtim. Ayrıca bu, orijinal devre ile minimum düzeyde etkileşim kurmamı sağladı.

Prototip yapıldığında, kapalı durumda pilden sürekli olarak ~ 80mA sürdü (tam parlaklıkta ~ 400mA). ESP8266 sunucu olarak çalıştığı ve her zaman WiFi'ye bağlı olduğu ve istekleri dinlediği için bekleme akımı yüksektir. Pil, yalnızca kapalı durumdayken bir buçuk gün sonra tükendi, bu yüzden daha sonra tüm elektronik aksamları harici 5V güç kaynağından çalıştırmak için USB şarj bağlantı noktası lambaları kullanmaya karar verdim ve pili hep birlikte çıkardım (ancak bu isteğe bağlıdır).

Adım 2: Blok Şeması

Blok Şeması
Blok Şeması

Blok diyagramda hangi devrelerin ekleneceğini ve mevcut devrelerin nasıl değiştirileceğini görebilirsiniz. Benim durumumda pili tamamen çıkardım ve çıkışlı pil şarj cihazları IC girişini kısa devre yaptım (yine bu isteğe bağlıdır). Diyagramdaki şeffaf bloklar, atlanan bileşenleri gösterir (buton hala orijinal olarak amaçlandığı gibi çalışsa da).

Belgelere göre ESP8266 sadece 3,3V'ye tolerans gösterir, ancak ESP8266'nın 5V ile tamamen iyi çalıştığı birçok örnek vardır, bu nedenle mantık seviyesi dönüştürücü ve 3.3V LDO hariç tutulabilir, ancak en iyi uygulamada kaldım ve bu bileşenleri ekledim.

3 ESP8266 I/O pini ve ADC pini kullandım. Bir dijital çıkış pimi, düğme preslerini simüle etmek içindir, iki dijital giriş, hangi renk LED'lerin açık olduğunu tespit etmek içindir (bundan MCU'nun hangi durumda olduğunu ve düğmeye basıldıktan sonra hangi durumun olduğunu anlayabiliriz). ADC pini giriş voltajını ölçer (bir voltaj bölücü aracılığıyla), bu şekilde kalan pil şarj seviyesini izleyebiliriz.

Harici güç kaynağı olarak eski telefon şarj cihazı 5V@1A kullanıyorum (hızlı şarj cihazları kullanmayın).

Adım 3: Programlama

Programlama
Programlama
Programlama
Programlama

Özetle program şu şekilde çalışır (daha fazla bilgi için kodun kendisine bakın):

ESP8266, programlama öncesi kodun başında girmeniz gereken kimlik bilgilerini WiFi erişim noktanıza bağlar, yönlendiricilerinizin DHCP sunucusundan IP adresini alır, daha sonra ihtiyaç duyacağınız IP'yi bulmak için yönlendiricilerin web arayüzü DHCP ayarlarını kontrol edebilir veya ayarlayabilirsiniz. koddaki hata ayıklama bayrağını 1'e ve seri monitörde IP ESP'nin ne aldığını göreceksiniz (ESP'nin her zaman açılışta aynı IP'yi alması için yönlendirici ayarlarınızda bu IP'yi ayırmalısınız).

Başlatıldığında MCU her zaman aynı rutini sonsuza kadar yürütür:

  1. Başarılı olana kadar yeniden bağlanmayı denemediyseniz, hala AP'ye bağlı olup olmadığını kontrol edin.
  2. İstemcinin HTTP isteği yapmasını bekleyin. İstek gerçekleştiğinde:

    1. Giriş voltajını kontrol edin.
    2. LED'lerin hangi durumda olduğunu kontrol edin.
    3. HTTP isteğini bilinen LED durumlarıyla eşleştirin (mavi açık, turuncu açık, her ikisi de açık, kapalı).
    4. İstenen duruma ulaşmak için gerektiği kadar çok basma düğmesini simüle edin.

ESP8266 MCU'yu ilk kez programlamanız daha ayrıntılı talimatlar arıyorsanız, programlama talimatlarını kısaca açıklayacağım.

Arduino IDE ve USB-seri arayüz dönüştürücüye ihtiyacınız olacak (örneğin FT232RL). IDE hazırlamak için bu talimatları izleyin.

Programlama için ESP-12E modülünü bağlamak için devre şemasını takip edin. Bazı ipuçları:

  • harici 3.3V@500mA güç kaynağı kullanın (çoğu durumda USB seri güç kaynağı yeterli değildir);
  • USB seri dönüştürücünüzün 3.3V mantık düzeyi uyumlu olup olmadığını kontrol edin;
  • USB-seri dönüştürücü sürücülerinin başarıyla yüklenip yüklenmediğini kontrol edin (Windows aygıt yöneticisinden), ayrıca doğru çalışıp çalışmadığını IDE'den, sadece kısa RX ve TX pinlerinden, IDE COM bağlantı noktasından değil, seri monitörü açın ve her şey çalışıyorsa bir şeyler yazın. konsolda görünen gönderdiğiniz metni görmelisiniz;
  • nedense ESP'yi yalnızca USB seri dönüştürücüyü PC'ye bağladığımda ve ardından ESP'yi harici 3.3V kaynaktan çalıştırdığımda programlayabildim;
  • başarılı bir şekilde programlama yaptıktan sonra, bir sonraki açılışta GPIO0'ı yüksek çekmeyi unutmayın.

Adım 4: Şematik ve Lehimleme

Şematik ve Lehimleme
Şematik ve Lehimleme
Şematik ve Lehimleme
Şematik ve Lehimleme
Şematik ve Lehimleme
Şematik ve Lehimleme

Tüm bileşenleri protoboard'a lehimlemek için şemayı izleyin. Daha önce de belirtildiği gibi bazı bileşenler isteğe bağlıdır. Ben KA78M33 3.3V LDO IC ve sparkfun'dan bu mantık seviye dönüştürücü kartını kullandım, alternatif olarak dönüştürücüyü şemada gösterildiği gibi kendiniz yapabilirsiniz (BSS138 yerine herhangi bir N-kanallı mosfet kullanabilirsiniz). Li-ION pil kullanmaya devam etmeniz durumunda, +5V güç ağı pilin pozitif terminali olacaktır. ESP8266 ADC referans voltajı 1V, seçtiğim direnç bölücü değerlerim 5.7V kadar yüksek giriş voltajını ölçmeye izin veriyor.

Orijinal lamba PCB'sine 5 bağlantı olmalıdır: +5V (veya +Pil), GND, basma düğmesi, mavi ve turuncu LED'leri kontrol etmek için MCU lambalarından PWM sinyalleri. Lambayı benim yaptığım gibi 5V kaynaktan besliyorsanız, OUTPUT pinli pil şarj cihazı IC VCC pinini kısa devre yapmak isteyeceksiniz, bu şekilde tüm elektronikler pil şarj cihazı OUTPUT'ından değil doğrudan + 5V'dan güç alacaktır.

Lamba PCB'sinde yapmanız gereken tüm lehim noktaları için ikinci resmi takip edin.

NOTLAR:

  1. Pil şarj cihazı IC çıkışı ile +5V kısa devre yapmaya karar verdiyseniz, bunu yapmadan önce pili tamamen çıkarın, doğrudan bir pile +5V bağlamak istemezsiniz.
  2. ESP çıkışını hangi buton pinini lehimlediğinize dikkat edin çünkü bir butonun 2 pini toprağa bağlı ve ESP çıkışı YÜKSEK olduğunda kısa devre yapmak istemezsiniz, multimetre ile bir kez daha kontrol etseniz iyi olur.

Adım 5: Android Uygulaması

Android uygulaması
Android uygulaması
Android uygulaması
Android uygulaması
Android uygulaması
Android uygulaması

Android uygulaması MIT uygulama mucidi ile yapılmıştır, kendinize bir uygulama indirmek ve/veya projeyi klonlamak için bu bağlantıya gidin (erişmek için google hesabına ihtiyacınız olacak).

İlk başlatmada ayarları açmanız ve ESP8266 IP adresinizi girmeniz gerekecektir. Bu IP kaydedilecek, böylece program yeniden başladıktan sonra tekrar girmenize gerek kalmayacak.

Uygulama birkaç android 9 ve android 7 cihazla test edilmiştir.

Önerilen: