Mundarija:

ESP-12 Infra Red Blaster: 7 qadam
ESP-12 Infra Red Blaster: 7 qadam

Video: ESP-12 Infra Red Blaster: 7 qadam

Video: ESP-12 Infra Red Blaster: 7 qadam
Video: My journey of making a PERFECT! Universal IR Blaster đź‘€ 2024, Iyul
Anonim
ESP-12 infraqizil portlovchi
ESP-12 infraqizil portlovchi

Esp8266 yordamida infraqizil masofadan boshqarish pulti

Bir nechta chiqish qurilmalarini qo'llab -quvvatlaydigan Internetdan olingan masofadan boshqarish kodlarini uzatadi.

Oddiy veb -sahifa asosan sinov uchun yaratilgan.

Oddiy foydalanish veb -sahifalardan yoki IFTTT / Alexa ovozli boshqaruvidan keladigan POST xabarlari orqali amalga oshiriladi.

Amazon Echo / Dot faollashtiruvchi detektorini qo'llab -quvvatlaydi, agar so'z faollashtirilsa, ovozni o'chirish / o'chirish mumkin.

Buyruqlar bitta buyruqlar yoki ketma -ketliklardir. Tartiblar nomlangan makrolar sifatida saqlanishi mumkin, keyin ularni buyruqlar yoki boshqa ketma -ketlikda ishlatish mumkin.

So'nggi tarix va makrolar ro'yxatini veb -interfeys orqali olish mumkin

Yangi dasturiy ta'minotni OTA orqali yuklashni qo'llab -quvvatlaydi va Wi -Fi -ni dastlabki sozlash uchun WifiManager kutubxonasidan foydalanadi

1 -qadam: Uskuna

Uskuna
Uskuna
Uskuna
Uskuna

Quyidagi komponentlardan foydalaniladi

  • ESP-12F moduli
  • 3.3V regulyator (MP2307 mini pul regulyatori)
  • MOSFET kalitlari (AO3400)
  • Infraqizil emitent (3 mm)
  • Yorug'likka bog'liq qarshilik GL2258 (ixtiyoriy Alexa faolligi detektori)
  • Rezistorlar
  • Kondensatorni ajratish (20uF)
  • USB -ayol rozetkasi (yaxshisi, qisma bilan lehim
  • Alexa detektori uchun 3 pinli IC soket tasmasi
  • Mexanik qismlar (3D bosib chiqarish mumkin)

ESP-12F loyiha qutisiga yig'ilishi mumkin

  • Regulyatorni USB ulagichiga ulang va qutiga soling
  • Kichik vero taxtasida IR drayverini yarating (3 simli, +5V, 0V eshikli kirish)
  • IR drayverini USB +5V, 0V ga ulang
  • Agar Alexa detektori ishlatilsa, 3 pinli IC soketini loyiha qutisiga joylashtiring. Kirish uchun +3.3V, 0V va simga ulaning
  • ESP-12F ni GPIO15dan GNDgacha, ENdan Vddgacha, 4K7 GPIO13dan Vddgacha, Alexa-ni GPIO13-ga, IR drayverini GPIO14-ga, 0Vga va Vdd-ni 3.3V ga 2.2K bilan tuzing.
  • Agar kerak bo'lsa, Alexa detektori va qo'llab -quvvatlash buferini yarating.

E'tibor bering, agar sizda ketma-ket portlarga ulanish uchun ketma-ket dasturlash imkoniyati yoki vaqtincha non-taxtali o'rnatish imkoniyati bo'lsa, avval ESP-12F-ni dasturlash osonroq bo'ladi.

Keyingi dasturlash o'rnatilgan OTA yangilanishi yordamida amalga oshirilishi mumkin.

2 -qadam: dasturiy ta'minot

Ir Blaster github -da mavjud Arduino eskizidan foydalanadi

Bu mahalliy sharoitga moslashtirilishi va keyin esp8266 Arduino muhitida tuzilishi kerak.

Quyidagi kutubxonalar kerak, ularning aksariyati standart yoki qo'shilishi mumkin. Oxirgi ikkitasi gitga kiritilgan.

  • ESP8266 Wi -Fi
  • ESP8266WebServer
  • FS.h
  • DNS serveri
  • ESP8266mDNS
  • ESP8266HTTPUpdateServer
  • ArduinoJson
  • BitTx (Git -ga kiritilgan)
  • BitMessages (Git -ga kiritilgan)

O'zgartirilishi kerak bo'lgan eskiz elementlari o'z ichiga oladi

  • AP_AUTHID veb -saytiga kirish uchun avtorizatsiya kodi
  • Wfi menejeri uchun parol WM_PASSWORD
  • dasturiy ta'minot OTA parolini update_password
  • Yangi IR qurilmalari / tugma kodlari (keyinroq qarang)

Bu bajarilgandan so'ng, avval an'anaviy ketma -ket yuklash yordamida yuklanishi kerak.

SPIFFS ishlatilgandan so'ng, xotira arduino ESP8266 eskiz ma'lumotlarini yuklash vositasini o'rnatish va ishlatish orqali tayyorlanishi kerak. Bu ma'lumotlar papkasini dastlabki SPIFFS tarkibi sifatida yuklaydi

Agar qurilma mahalliy tarmoqqa ulana olmasa (birinchi marta bo'ladi), Wi -Fi menejeri kirish nuqtasini yaratadi (192.168.4.1). Bu tarmoqqa telefon yoki planshetdan ulaning, keyin 192.168.4.1 ga o'ting, siz mahalliy wifi -ga ulanish uchun veb -interfeysga ega bo'lasiz. Keyingi kirishlar bundan foydalanadi. Agar mahalliy tarmoq o'zgarsa, u yana ushbu konfiguratsiya rejimiga o'tadi.

Keyingi yangilanish Arduino muhitida eksport ikkilik faylini tuzish va keyin OTA interfeysiga ip/proshivka orqali kirish orqali amalga oshirilishi mumkin.

3 -qadam: Qurilma / tugma kodlarini qo'shing

Eslatma: Ushbu bo'lim konfiguratsiya kodga oldindan tuzilgan oldingi usuldan o'zgardi. Endi u SPIFF fayllar tizimidan yuklangan fayllardan foydalanadi. Bu yangi ta'riflarni yuklashni ancha osonlashtiradi.

Tugma ta'riflari buttonnames.txt fayliga kiritilgan. Bu ishlatilayotgan barcha masofadan boshqarish pultlaridagi ismlarning global ro'yxati, chunki ko'pchilik ismlar keng tarqalgan. Taqdim etilganidek, bu men foydalanadigan masofadan boshqarish pultlarining tafsilotlarini o'z ichiga oladi. Yangi yozuvlar qo'shilishi mumkin. Hammasi bo'lib 160 nom uchun joy bor, lekin uni bitMessages.h -dagi doimiylarni sozlash va qayta kompilyatsiya qilish orqali oshirish mumkin. Bu erda aniqlangan ismlar buyruqlarni yuborishda ishlatilishi kerak bo'lgan ismlardir.

Har bir masofaviy qurilma dev_remotename deb nomlangan faylda aniqlanadi. U yuqori qismdagi konfiguratsiya bo'limidan va keyin tugmalar nomidan kodlarga qadar yuboriladigan bitlarni o'z ichiga olti burchakli xaritalar jadvalidan iborat. Faqat kerakli tugmalar nomlarini aniqlash kerak.

Qurilma faylining boshidagi konfiguratsiya bo'limida kodni yuborishda ishlatiladigan parametrlar mavjud. Birinchi yozuv - bu buyruq yuborishda ishlatiladigan qurilma nomi. Boshqa parametrlar kod saytidagi menioda tasvirlangan.

Ko'p masofadan boshqarish pultlari 3 protokol toifasidan biriga tegishli (nec, rc5 va rc6). nec, ehtimol, eng keng tarqalgan va oddiy sarlavha tuzilishiga va bit vaqtiga ega. Buning engil varianti bor, u faqat bosh zarbasi vaqtidan farq qiladi. rc5 va rc6 - bu Philips tomonidan aniqlangan, lekin boshqa ishlab chiqaruvchilar tomonidan ishlatiladigan protokollar. Ular biroz murakkabroq va rc6, ayniqsa, bitlardan biri uchun maxsus vaqt talabiga ega.

Yangi masofadan boshqarish pultining kodlarini yozib olish uchun men odatda masofadan qabul qilgichlarni ulashda ishlatiladigan IQ qabul qiluvchidan (TSOP) foydalanaman. Bu asosiy dekodlashni amalga oshiradi va mantiqiy darajadagi natijani beradi. Odatda ular +5V, GND, DATA ulanishlari bo'lgan 3,5 mm raz'em bilan birga keladi. Men bitta qurbon qildim, qo'rg'oshinni qisqartirdim va Raspberry Pi -ga GPIO pinini berish uchun teskari 3.3V tampondan o'tkazdim.

Keyin kodlarni olish uchun rxir.py (git asboblari papkasida) python vositasidan foydalanaman. Ko'p sonli tugmachalarni qo'lga kiritishni osonlashtirish uchun asbob masofadan boshqarish pultidagi tugmachalarni aniqlash uchun matnni aniqlash faylini ishlatadi va faqat masofadan boshqarish pultidagi guruh tugmalarining nomlari. Masalan, Sony-ning yangi masofadan boshqarish pulti bo'lishi mumkin va bittasida sonytv-kursor, sonytv-sonlar, sonytv-playcontrols deb nomlangan 3 ta matnli fayl o'rnatiladi, ularning har biri tegishli tugma nomlari bilan yoziladi. Asbob asbobni (sonytv), bo'limni so'raydi. (kursor) va qaysi protokoldan foydalanish kerak (nec, nec1, rc5, rc6). Keyin u har bir tugmani bosish va natijalarni sonytv-ircodes fayliga yozish uchun ketma-ket taklif qiladi. Agar kerak bo'lsa, bo'limlarni takrorlash mumkin, agar suratga olish yaxshi bo'lsa.. Ircodes faylidagi bitlarni BitDevices jadvallariga o'zgartirish mumkin.

4 -qadam: Internetni boshqarish va makroslar

Asosiy veb -boshqaruv - bu ketma -ketlikni o'z ichiga olishi mumkin bo'lgan bitta olish yoki json xabari.

Get /ir 6 parametrga ega

  • avtorizatsiya kodini o'z ichiga oladi
  • qurilma - masofadagi qurilmaning nomi
  • parametr - tugma nomi
  • bit - ixtiyoriy bitlar soni
  • takrorlash - ixtiyoriy takrorlash soni
  • kutish - keyingi buyruq bajarilishidan oldin ms soniyalarda kechikish.

Kechiktirish uchun qurilma "nol" bo'lishi mumkin, parametr so'ralgan makrodan foydalanish uchun "makro" yoki Alexa aniqlash funktsiyasidan foydalanish uchun "aniqlash" (keyinroq qarang).

/Irjson posti json strukturasidan iborat

{

"auth": "1234", "buyruqlar": [{"qurilma": "yamahaAV", "parametr": "hdmi4", "kutish": "5000", "bitlar": "0", "takrorlash": "1"}, {"qurilma": "yamahaAV", "parametr": "ovozni o'chirish", "kutish": "100", "bitlar": "0", "takrorlash": "1"}]

}

Har qanday uzunlikdagi ketma -ketlik bo'lishi mumkin va qurilmalar so'l mos yozuvlar bo'lishi mumkin.

Xuddi shu tuzilish makrolarni aniqlash uchun ishlatilishi mumkin. Faqat so'lni kiriting: "makronam", eng yuqori darajada, masalan. avtorizatsiyadan keyin. Haqiqiy tarkib macroname.txt nomli faylda saqlanadi

Makrolarni "buyruqlarsiz" aniqlash orqali o'chirish mumkin.

Boshqa veb -buyruqlar

  • /oxirgi (oxirgi harakatlar ro'yxati)
  • /tekshirish (asosiy holatni ko'rsatadi)
  • / (buyruqlarni qo'lda yuborish uchun veb -shaklni yuklaydi)
  • / tahrirlash (fayllar ro'yxatini ko'rish va fayllarni o'chirish/ yuklash uchun veb -shaklni yuklaydi)
  • /edit? file = fayl nomi (ma'lum bir fayl tarkibini ko'rish)
  • /qayta yuklash (tugma nomlari va qurilma fayllarini qayta yuklaydi. Ulardan birini o'zgartirgandan so'ng foydalaning)

5 -qadam: IFTTT yordamida Alexa ovozli boshqaruv

Ir Blaster -ni Alexa -dan foydalanishning eng oddiy usuli - IFTTT -ni shlyuz sifatida ishlatish.

Birinchi port sizning yo'riqchingizda portlash uchun ishlatilgan portni uzatadi, shuning uchun unga Internet orqali kirish mumkin. Routerlaringizga tashqi IP nomini berish va agar bu ip o'zgarsa, uni boshqarishni osonlashtirish uchun liberns kabi dns xizmatidan foydalanish yaxshi bo'lishi mumkin.

IFTTT hisob qaydnomasini o'rnating va Maker Webhooks kanali va Alexa kanalini yoqing. IFTT -ga kirishni yoqish uchun Amazon saytiga kirishingiz kerak bo'ladi.

IFTTT Alexa kanali yordamida IF triggerini yarating, iboraga asoslangan harakatni tanlang va kerakli iborani kiriting (masalan, ovoz balandligi).

Maker webhooks kanalini tanlab, harakatni yarating. URL maydoniga shunga o'xshash narsani kiriting

myip: port/irjson? plain = {"auth": "1234", "comm…"

Bu harakat ir blaster -ga yuboriladi, u erda makro hajmini bajarishga harakat qiladi. Agar xohlasangiz, bu erda ma'lum bir qurilma/tugmalar bo'lishi mumkin, lekin men makrolarni aniqlash va ishlatishni yaxshiroq deb bilaman, chunki u holda harakatlar ketma -ketligini faqat so'lni qayta aniqlash orqali o'zgartirish mumkin.

Har bir buyruq uchun alohida IFTTT appleti kerak.

6 -qadam: Alexa ovozli mahorati

IFTTT o'rniga, Alexa -ni ishlab chiqish uchun maxsus ko'nikmalarni yaratish mumkin. Bu barcha ishlov berishni bir joyga to'playdi va har bir tugma uchun alohida harakatlar qilish shart emasligini bildiradi.

Siz Amazon Alexa dasturchisi sifatida ro'yxatdan o'tishingiz va Amazon AWS konsoli lambda xizmatida ro'yxatdan o'tishingiz kerak. Bundan tashqari, jarayonni biroz tushunish uchun darsliklarga qarash kerak bo'ladi.

Alexa ishlab chiqaruvchisi tomonidan siz yangi maxsus mahoratni yaratishingiz, uning tetik so'zini kiritishingiz va ovoz balandligi, ko'rsatma va hk kabi buyruq so'zlari ro'yxatini tuzishingiz kerak.

Keyin Alexa iborani lamda xizmatida ishlaydigan dasturga yuboradi, bu iborani sharhlaydi va Ir blaster -ga uni amalga oshirish uchun URL -ni chaqiradi.

Men gitada ishlatadigan Alexa niyat sxemasini va konsol lambda funktsiyasini o'z ichiga oldim. Tegishli ipga havola qilish va to'g'ri avtorizatsiyaga ega bo'lish uchun URLni o'zgartirish kerak bo'ladi. Oddiy qilib aytganda, lambda funktsiyalari makrosni chaqiradi, unda bo'sh joy bo'sh so'z bilan yozilgan. Shuningdek, u ba'zida kiritilishi mumkin bo'lgan kalit so'zni o'chirishga harakat qiladi. Masalan, blaster VOLUME up, agar tetiklovchi so'z blaster bo'lsa, volumup deb nomlangan so'lni chaqiradi.

7 -qadam: Alexa detektorini faollashtiring

Echo / Dot ovozni tanib olish yaxshi bo'lsa -da, agar ovoz yaqinlashmasa va baland ovozda gapirmasangiz, televizordan eshitilsa, ba'zida chalkashib ketishi mumkin.

Buni yaxshilash uchun men o'z nuqtamga faollashtiruvchi detektorni qo'shdim. Kalit so'z bilanoq (Alexa deyiladi) LEDlar halqasi yonadi. Detektor buni blasterga uzatadi, u erda televizorni ovozini o'chirish uchun alexaon so'lini ishlatadi, xuddi shunday buyruqni bajarish oxirida chiroqlar o'chadi va alexaoff makrosi ovozni tiklaydi.

Buni aniqlash va o'chirish uchun "aniqlash" buyrug'i ham ishlatilishi mumkin. Masalan, men aniqlashni yoqish uchun dastlabki turnon makrosidan foydalanaman va o'chirish makrosidan foydalanaman. Bu, aks holda muammoli bo'lishi mumkin bo'lgan haqiqiy ovozni o'chirish va o'chirishni qo'llab -quvvatlash uchun harakat makrosida ham ishlatilishi mumkin.

Jismoniy detektor - bu kontaktlarning zanglashiga olib keladigan qarshilik. Men o'z nuqtamni 3D bosma qavs bilan o'rnataman

Tavsiya: