Mundarija:
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-13 06:58
Bu ko'rsatmada men batareyadan ishlaydigan oddiy LED chiroqni IoT qurilmasiga qanday o'zgartirish kerakligini ko'rsataman.
Ushbu loyiha quyidagilarni o'z ichiga oladi:
- lehim;
- Arduino IDE bilan ESP8266 dasturlash;
- MIT App Inventor yordamida android ilovasini yaratish.
Qiziqarli narsa - bu men gestbestdan sotib olgan oy shaklidagi chiroq. Ammo, albatta, bu qo'llanma past kuchlanishli har qanday past kuchlanishli qurilmaga moslashtirilishi mumkin (AC bilan ishlaydigan qurilmalar qo'shimcha sxemalarni talab qiladi).
Ta'minotlar
- Android smartfoni (Android 7-9 versiyalari sinovdan o'tgan).
- Lehimlash asboblari.
- PCB prototipini yaratish (protoboard).
- ESP-12E platasi (yoki ESP8266 mikrokontroldorli boshqa devboard).
- Dasturlash uchun USB-seriyali konvertor.
- Passiv komponentlarning bir necha xil qiymatlari (rezistorlar va kondansatörler).
(Majburiy emas. "Blok diagrammasi" bo'limiga qarang)
- 3.3V@500mA LDO IC.
- 3.3V-5V mantiqiy darajadagi konvertor platasi.
- 5V doimiy quvvat manbai.
1 -qadam: Fikr
Oy chirog'i bitta Li-ION 18650 xujayrasi bilan ishlaydi va u 3 ish rejimiga ega:
- o'chirilgan;
- qo'llanma;
- avtomatik.
Qo'lda rejimda chiroq tugma bilan boshqariladi, har bir bosilganda LED yorug'lik holati o'zgaradi (ko'k yonadi, to'q sariq rang yoqiladi, yoqiladi, o'chadi), tugmachani bosib ushlab turganda yorug'lik intensivligi o'zgaradi. Avtomatik rejimda LED yoritgichi chiroqning o'zi tegishi yoki tebranishi bilan o'zgaradi.
Men ESP8266 -ni so'rovlarni tinglaydigan va shunga mos ravishda tugmachalarni bosishni simulyatsiya qiladigan veb -server sifatida qo'shishga qaror qildim. Men asl chiroq funksiyasini buzishni xohlamadim, faqat WiFi orqali qo'shimcha boshqaruv xususiyatlarini qo'shishni xohladim, shuning uchun LEDlarni to'g'ridan -to'g'ri boshqarish o'rniga tugmachalarni bosishni simulyatsiya qilish uchun ESP ni tanladim. Bundan tashqari, bu menga asl sxemalar bilan minimal darajada muloqot qilishimga imkon berdi.
Prototip tugagach, u doimiy ravishda ~ 80mA batareyadan o'chirilgan holatda (~ 400mA to'liq nashrida) chiqarardi. Kutish oqimi yuqori, chunki ESP8266 server sifatida ishlaydi va har doim WiFi tarmog'iga ulangan va so'rovlarni tinglaydi. Batareya bir yarim kundan keyin faqat yopiq holatda tugadi, shuning uchun keyinroq men 5 V tashqi elektr tarmog'idan barcha elektronikalarni quvvatlantirish uchun USB zaryadlovchi portli lampalardan foydalanishga qaror qildim (lekin bu ixtiyoriy emas).
2 -qadam: Blok diagrammasi
Blok -sxemada siz qanday sxemalar qo'shilishini va mavjud sxemalar qanday o'zgartirilishini ko'rishingiz mumkin. Mening holatlarimda batareyani to'liq chiqarib tashladim va batareyaning zaryadlovchisini chiqindisi bilan kirgizdim (yana, bu ixtiyoriy). Diagrammadagi shaffof bloklar chetlab o'tilgan komponentlarni ko'rsatadi (garchi tugma hali ham avvalgidek ishlaydi).
Hujjatlarga ko'ra, ESP8266 faqat 3.3V ga toqat qiladi, lekin ESP8266 5V bilan to'liq ishlaganda juda ko'p misollar bor, shuning uchun mantiqiy konvertor va 3.3V LDOni chetlab o'tish mumkin, lekin men eng yaxshi amaliyotda qoldim va bu komponentlarni qo'shdim.
Men 3 ESP8266 kirish/chiqish pinini va ADC pinini ishlatardim. Bitta raqamli chiqish pinasi tugmachalarni bosishni simulyatsiya qilish uchun, ikkita raqamli kirish - qaysi rangli LEDlar yoqilganligini aniqlash uchun (bundan biz MCU qaysi holatda ekanligini va tugmani bosgandan keyin keyingi holatini aniqlashimiz mumkin). ADC pin kirish voltajini o'lchaydi (kuchlanish bo'luvchi orqali), shuning uchun biz batareyaning qolgan zaryad darajasini kuzatamiz.
Tashqi quvvat manbai sifatida men eski telefon zaryadlovchi 5V@1A dan foydalanaman (tez zaryadlovchilardan foydalanmang).
3 -qadam: dasturlash
Qisqacha aytganda, dastur shunday ishlaydi (qo'shimcha ma'lumot uchun kodning o'ziga qarang):
ESP8266 sizning Wi -Fi kirish nuqtangizga ulanadi, undan oldin dasturlash kodining boshida qaysi ma'lumotlarga kirishingiz kerak, u sizning DHCP -serveringizdan IP -manzilni oladi, keyin sizga kerak bo'lgan IP -ni aniqlash uchun siz yo'riqnoma veb -interfeysi DHCP sozlamalarini tekshirishingiz yoki sozlashingiz mumkin. bayroqni kodda 1 ga tuzatish va siz ketma -ket monitorda IP ESP nima ekanligini ko'rasiz (ESP har doim yuklashda bir xil IPga ega bo'lishi uchun yo'riqnoma sozlamalarida bu IPni zaxiralashingiz kerak).
MCU ishga tushirilganda har doim bir tartibni abadiy bajaradi:
- Hali ham APga ulanganligini tekshiring, agar muvaffaqiyatsiz bo'lmaguncha qayta ulanishga harakat qiling.
-
Mijoz HTTP so'rovini bajarishini kuting. So'rov amalga oshganda:
- Kirish kuchlanishini tekshiring.
- LEDlarning qaysi holatda ekanligini tekshiring.
- Ma'lum LED holatlari bilan HTTP so'rovini moslang (ko'k yoqilgan, to'q sariq rang yoqilgan, ikkalasi ham yoqilgan, o'chirilgan).
- Talab qilingan holatga erishish uchun kerak bo'lganda tugmachalarning ko'p bosilishini taqlid qiling.
Men dasturlash bo'yicha ko'rsatmalarni qisqacha tasvirlab beraman, agar siz ESP8266 MCU dasturini birinchi marta ishlatsangiz, batafsil ko'rsatmalarni qidiring.
Sizga Arduino IDE va USB-ketma-ket interfeys konvertori kerak bo'ladi (masalan, FT232RL). IDE -ni tayyorlash uchun quyidagi ko'rsatmalarga amal qiling.
Dasturlash uchun ESP-12E modulini ulash uchun sxemaga amal qiling. Ba'zi maslahatlar:
- tashqi 3.3V@500mA quvvat manbasidan foydalaning (ko'p hollarda USB-ketma-ket quvvat manbai etarli emas);
- USB-seriyali konvertoringiz mantiq darajasining 3.3V ga mos kelishini tekshiring;
- USB-ketma-ket konvertor drayverlari muvaffaqiyatli o'rnatilganligini tekshiring (Windows qurilma menejeridan), shuningdek, IDE-dan, faqat qisqa RX va TX pinlaridan to'g'ri ishlashini tekshirishingiz mumkin, ID-ni tanlang COM-portdan ko'ra, ketma-ket monitorni oching va biror narsa yozing. siz yuborgan matnni konsolda ko'rishingiz kerak;
- negadir men ESPni faqat USB-seriyali konvertorni shaxsiy kompyuterga ulaganimda, keyin esa tashqi 3.3V manbadan ESP-ni yoqganimda dasturlay oldim;
- muvaffaqiyatli dasturlashdan so'ng, keyingi yuklashda GPIO0 -ni yuqoriga ko'tarishni unutmang.
4 -qadam: sxematik va lehim
Barcha komponentlarni protoboardga lehimlash uchun sxemaga amal qiling. Yuqorida aytib o'tilganidek, ba'zi komponentlar ixtiyoriydir. Men KA78M33 3.3V LDO IC va bu mantiq darajasidagi konvertor platasini sparkfun-dan foydalandim, aks holda siz sxemada ko'rsatilgandek konvertorni o'zingiz qilishingiz mumkin (BSS138 o'rniga har qanday N-kanalli mosfetdan foydalanishingiz mumkin). Agar siz Li-ION batareyasini ishlatishni davom ettirsangiz, +5V quvvat tarmog'i batareyaning ijobiy terminali bo'ladi. ESP8266 ADC mos yozuvlar zo'riqishida 1V, men tanlagan qarshilikni ajratuvchi qiymatlari kirish voltajini 5,7 V ga qadar o'lchash imkonini beradi.
Asl chiroq PCBga 5 ta ulanish bo'lishi kerak: +5V (yoki +Batareya), GND, tugma, ko'k va to'q sariq rangli LEDlarni boshqarish uchun MCU lampalaridan PWM signallari. Agar siz chiroqni 5V manbadan quvvatlantirsangiz, men kabi, siz IC VCC batareyali zaryadlovchini OUTPUT pinli qisqa tutashtirmoqchi bo'lasiz, shu bilan barcha elektronlar OUTPUT zaryadlovchisidan emas, balki +5V dan quvvatlanadi.
PCB lampalaridagi barcha lehim nuqtalari uchun ikkinchi rasmga rioya qiling.
QAYDLAR:
- Agar siz IC zaryadlovchi bilan +5V qisqa tutashishga qaror qilsangiz, batareyani to'liq chiqarib oling, +5V ni to'g'ridan -to'g'ri batareyaga ulashni xohlamaysiz.
- ESP chiqishining qaysi tugmachasini lehimlayotganingizga e'tibor bering, chunki tugmachaning 2 pimi erga ulangan va siz ESP chiqishi yuqori bo'lganda qisqa tutashuvni xohlamaysiz, multimetr bilan ikki marta tekshirib ko'ring.
5 -qadam: Android ilovasi
Android ilovasi MIT ilovasi ixtirochisi yordamida yaratilgan, o'zingizga ilova va/yoki loyihani klonlash uchun ushbu havolaga o'ting (unga kirish uchun sizga Google hisobi kerak bo'ladi).
Birinchi ishga tushirishda siz sozlamalarni ochishingiz va ESP8266 IP manzilingizni kiritishingiz kerak bo'ladi. Bu IP saqlanadi, shuning uchun dasturni qayta ishga tushirgandan so'ng uni qayta kiritishga hojat yo'q.
Ilova bir nechta android 9 va android 7 qurilmalarida sinovdan o'tgan.