Mündəricat:

IoT Ay Lampası: 5 addım
IoT Ay Lampası: 5 addım

Video: IoT Ay Lampası: 5 addım

Video: IoT Ay Lampası: 5 addım
Video: ХАБИБ - Ягода малинка (Премьера клипа) 2024, Noyabr
Anonim
IoT Ay Lampası
IoT Ay Lampası

Bu təlimatda sadə bir batareya ilə işləyən LED lampanı IoT cihazına necə çevirəcəyimi göstərirəm.

Bu layihəyə daxildir:

  • lehimləmə;
  • Arduino IDE ilə ESP8266 proqramlaşdırma;
  • MIT App Inventor ilə Android tətbiqi etmək.

Maraqlandığım obyekt, gearbest -dən aldığım bu ay şəkilli lampadır. Ancaq həqiqətən bu dərslik hər hansı bir aşağı DC gərginlikli cihaza uyğunlaşdırıla bilər (AC ilə işləyən qurğular əlavə dövrə tələb edir).

Təchizat

  1. Android smartfonu (7-9 android versiyaları sınaqdan keçirilmişdir).
  2. Lehim alətləri.
  3. PCB prototipləri (protoboard).
  4. ESP-12E lövhəsi (və ya ESP8266 mikrokontrolörlü digər devboard).
  5. Proqramlaşdırma üçün USB seriyalı çevirici.
  6. Pasif komponentlərin bir neçə fərqli dəyəri (rezistorlar və kondansatörlər).

(İsteğe bağlı. "Blok Şeması" bölməsinə baxın)

  1. 3.3V@500mA LDO IC.
  2. 3.3V-5V məntiq səviyyəsi çevirici lövhəsi.
  3. 5V DC enerji təchizatı.

Addım 1: Fikir

Fikir
Fikir

Ay lampası bir Li-ION 18650 hüceyrəsi ilə işləyir və 3 iş rejiminə malikdir:

  • söndürülmüş;
  • təlimat;
  • avtomobil.

Manual rejimdə lampa düymə ilə idarə olunur, hər basış LED işığının vəziyyətini dəyişir (mavi yanır, narıncı yanır, hər ikisi yanır, sönür), düyməni basılı tutarkən işığın intensivliyi dəyişir. Avtomatik rejimdə LED işığı lampanın özünə vuraraq və ya sarsıtmaqla dəyişir.

İstəkləri dinləyən və buna uyğun olaraq düymə basmalarını simulyasiya edən bir veb server olaraq fəaliyyət göstərmək üçün ESP8266 əlavə etmək qərarına gəldim. Orijinal lampa funksiyasını pozmaq istəmədim, sadəcə WiFi üzərində əlavə nəzarət funksiyalarını əlavə etmək istədim, buna görə LED -ləri birbaşa idarə etmək əvəzinə düymələrə basmağı simulyasiya etmək üçün ESP -ni seçdim. Həm də bu, orijinal dövrə ilə minimal şəkildə qarşılıqlı əlaqə qurmağımı təmin etdi.

Prototip hazırlandıqda, ~ 80mA gücünü batareyadan söndürülmüş vəziyyətdə (~ 400mA tam parlaqlıqda) çıxardı. Gözləmə axını yüksəkdir, çünki ESP8266 server olaraq işləyir və həmişə WiFi -yə qoşulur və sorğuları dinləyir. Batareya yalnız bir yarım gündən sonra yalnız sönük vəziyyətdə idi, buna görə də sonradan bütün elektronikanı 5V xarici enerji təchizatı ilə təchiz etmək üçün USB şarj portu olan lampalardan istifadə etmək qərarına gəldim və hamısı birlikdə batareyadan çıxdı (amma bu isteğe bağlıdır).

Addım 2: Blok Şeması

Blok diaqram
Blok diaqram

Blok diaqramında hansı sxemlərin əlavə ediləcəyini və mövcud sxemlərin necə dəyişdiriləcəyini görə bilərsiniz. Mənim vəziyyətimdə batareyanı tamamilə çıxartdım və çıxışı olan IC girişini qısaltdım (yenə bu isteğe bağlıdır). Diaqramdakı şəffaf bloklar, keçilməyən komponentləri göstərir (düymə hələ də əvvəlcədən nəzərdə tutulduğu kimi işləyir).

Sənədlərə görə ESP8266 yalnız 3.3V -ə dözür, lakin ESP8266 -nın 5V ilə tamamilə yaxşı işlədiyi bir çox nümunə var, buna görə məntiq səviyyəsi çeviricisi və 3.3V LDO -nu kənarda qoymaq olar, amma ən yaxşı təcrübə ilə qaldım və bu komponentləri əlavə etdim.

3 ESP8266 I/O pinindən və ADC pinindən istifadə etdim. Bir rəqəmsal çıxış pin düymələri basmağı simulyasiya etmək üçün, iki rəqəmsal giriş LED -lərin hansı rəngdə olduğunu aşkar etmək üçündür (buradan düyməni basdıqdan sonra MCU -nun hansı vəziyyətdə olduğunu və hansı vəziyyətdə olduğunu anlaya bilərik). ADC pin giriş gərginliyini ölçür (bir gərginlik bölücü vasitəsilə), beləliklə qalan batareya şarj səviyyəsini izləyə bilərik.

Xarici enerji təchizatı olaraq 5V@1A köhnə telefon şarj cihazından istifadə edirəm (sürətli şarj cihazlarından istifadə etməyin).

Addım 3: Proqramlaşdırma

Proqramlaşdırma
Proqramlaşdırma
Proqramlaşdırma
Proqramlaşdırma

Bir sözlə, proqram belə işləyir (daha çox məlumat üçün kodun özünə baxın):

ESP8266, əvvəlcədən kodlaşdırmanın əvvəlində kimlik məlumatlarını daxil etməyiniz lazım olan WiFi giriş nöqtəsinə qoşulur, marşrutlaşdırıcılarınızdan DHCP serverindən IP ünvanı alır, daha sonra ehtiyac duyacağınız IP -ni öyrənə bilərsiniz, marşrutlaşdırıcıların veb interfeysini yoxlaya bilərsiniz DHCP parametrləri koddakı bayrağı 1 -ə düzəltməklə IP ESP -nin serial monitorda nə olduğunu görəcəksiniz (ESP -nin həmişə açılışda eyni IP -ni alması üçün marşrutlaşdırıcılarınızın ayarlarında bu IP -ni ehtiyatda saxlamalısınız).

Başladıqda MCU həmişə eyni rutini sonsuza qədər yerinə yetirir:

  1. Hələ də AP -yə bağlı olub olmadığını yoxlayın, yoxsa uğur qazanana qədər yenidən əlaqə qurmağa çalışın.
  2. Müştərinin HTTP sorğusu etməsini gözləyin. İstək yerinə yetirildikdə:

    1. Giriş gərginliyini yoxlayın.
    2. LEDlərin hansı vəziyyətdə olduğunu yoxlayın.
    3. HTTP sorğusunu məlum LED vəziyyətləri ilə uyğunlaşdırın (mavi açıq, narıncı açıq, hər ikisi də açıq, sönük).
    4. İstədiyiniz vəziyyəti əldə etmək üçün lazım olduğu qədər çox düyməni basmağı simulyasiya edin.

Proqramlaşdırma təlimatlarını qısaca təsvir edəcəyəm, əgər ilk dəfə ESP8266 MCU proqramlaşdırmağınız daha ətraflı təlimat axtarırsa.

Arduino IDE və USB seriyalı interfeys çeviricisinə ehtiyacınız olacaq (məsələn, FT232RL). IDE hazırlamaq üçün bu təlimatları izləyin.

Proqramlaşdırma üçün ESP-12E modulunu birləşdirmək üçün sxemə əməl edin. Bəzi məsləhətlər:

  • xarici 3.3V@500mA enerji təchizatı istifadə edin (əksər hallarda USB-seriyalı enerji təchizatı kifayət deyil);
  • USB seriyalı çeviricinizin 3.3V məntiq səviyyəsinə uyğun olub olmadığını yoxlayın;
  • USB-serial çevirici sürücülərinin uğurla quraşdırıldığını yoxlayın (Windows cihaz menecerindən), IDE-dən düzgün işlədiyini yoxlaya bilərsiniz, sadəcə qısa RX və TX pinləri, IDE-dən COM portunu seçin, seriyalı monitoru açın və hər şey işləyirsə bir şey yazın göndərdiyiniz mətn konsolda görünməlidir;
  • nədənsə ESP-ni yalnız ilk dəfə USB-serial çeviricisini PC-yə qoşduqda və sonra xarici 3.3V mənbədən ESP-ni işə salanda proqramlaşdıra bildim;
  • uğurla proqramlaşdırıldıqdan sonra, növbəti açılışda GPIO0 -u yuxarı çəkməyi unutmayın.

Addım 4: Şematik və Lehimləmə

Şematik və Lehimləmə
Şematik və Lehimləmə
Şematik və Lehimləmə
Şematik və Lehimləmə
Şematik və Lehimləmə
Şematik və Lehimləmə

Bütün komponentləri protoboya lehimləmək üçün sxemə uyğun hərəkət edin. Daha əvvəl qeyd edildiyi kimi, bəzi komponentlər isteğe bağlıdır. KA78M33 3.3V LDO IC və bu məntiqi səviyyəli konvertor lövhəsini sparkfun-dan istifadə etdim, alternativ olaraq sxemdə göstərildiyi kimi çeviricini özünüz edə bilərsiniz (BSS138 əvəzinə hər hansı bir N-kanallı mosfet istifadə edə bilərsiniz). Li-ION batareyasından istifadə etməyiniz halında +5V güc şəbəkəsi batareyanın müsbət terminalı olacaq. ESP8266 ADC istinad gərginliyi 1V -dir, seçdiyim rezistor bölücü dəyərləri giriş gərginliyini 5.7V qədər yüksək ölçməyə imkan verir.

Orijinal lampa PCB ilə 5 əlaqə olmalıdır: +5V (və ya +Batareya), GND, düymə, mavi və narıncı LEDləri idarə etmək üçün MCU lampalarından PWM siqnalları. Lampanı mənim kimi 5V mənbəyindən alsanız, IC VCC pinini OUTPUT pinli qısa şarj cihazlarına bağlamaq istəyəcəksiniz, beləliklə bütün elektronikalar batareya şarj cihazının Çıxışından deyil +5V -dən birbaşa işləyəcək.

PCB lampalarında etmək lazım olan bütün lehim nöqtələri üçün ikinci görüntünü izləyin.

QEYDLƏR:

  1. Batareya şarj cihazının IC çıxışı ilə +5V qısa tutmağa qərar verdinizsə, bunu etməzdən əvvəl batareyanı tamamilə çıxarın, +5V -u birbaşa batareyaya qoşmaq istəmirsiniz.
  2. ESP çıxışını hansı düymə pininə lehimlədiyinizə diqqət yetirin, çünki 2 düymə sancağı yerə bağlıdır və ESP çıxışı YÜKSƏK olduqda qısa dövrə vurmaq istəmirsiniz, daha yaxşı multimetrlə yoxlayın.

Addım 5: Android Tətbiqi

Android Tətbiqi
Android Tətbiqi
Android Tətbiqi
Android Tətbiqi
Android Tətbiqi
Android Tətbiqi

Android tətbiqi MIT tətbiq ixtiraçısı ilə hazırlanmışdır, özünüz üçün bir tətbiq yükləmək və/və ya klonlaşdırmaq üçün bu linkə daxil olun (daxil olmaq üçün google hesabına ehtiyacınız olacaq).

İlk açılışda parametrləri açmalı və ESP8266 IP ünvanınızı daxil etməlisiniz. Bu IP saxlanılacaq, buna görə proqram yenidən başladıqdan sonra yenidən daxil edilməsinə ehtiyac yoxdur.

Tətbiq bir neçə Android 9 və Android 7 cihazı ilə sınaqdan keçirildi.

Tövsiyə: