Мазмуну:

ESP-12 Infra Red Blaster: 7 кадам
ESP-12 Infra Red Blaster: 7 кадам

Video: ESP-12 Infra Red Blaster: 7 кадам

Video: ESP-12 Infra Red Blaster: 7 кадам
Video: My journey of making a PERFECT! Universal IR Blaster 👀 2024, Ноябрь
Anonim
ESP-12 Infra Red Blaster
ESP-12 Infra Red Blaster

Esp8266 аркылуу Infra Red алыстан башкаруу бластери

Бир нече чыгаруу түзмөктөрүн колдогон Вебден алынган алыстан башкаруу коддорун өткөрөт.

Негизинен тестирлөө үчүн жөнөкөй веб баракчага курулган.

Кадимки колдонуу POST билдирүүлөрү аркылуу болот, алар веб -баракчалардан же IFTTT / Alexa үн көзөмөлүнөн келиши мүмкүн.

Amazon Echo / Dot детекторун активдештирүүчү сөздү айтуу менен үнүн басуу үчүн колдойт.

Буйруктар же жалгыз буйруктар же ырааттуулуктар. Тизимдер макростар катары сакталышы мүмкүн, андан кийин алар буйрук катары же башка тизмектерде колдонулушу мүмкүн.

Акыркы тарыхты жана макро тизмесин веб интерфейси аркылуу алууга болот

Жаңы камтылган OTA жүктөөсүн колдойт жана баштапкы wifi орнотуу үчүн WifiManager китепканасын колдонот

1 -кадам: Аппараттык

Аппараттык
Аппараттык
Аппараттык
Аппараттык

Төмөнкү компоненттерди колдонот

  • ESP-12F модулу
  • 3.3V жөндөгүч (MP2307 мини бак жөнгө салуучу)
  • MOSFET которгучтары (AO3400)
  • Infra Red эмитенти (3мм)
  • Жарыкка көз каранды резистор GL2258 (Кошумча Alexa активдүүлүк детектору)
  • Резисторлор
  • Ажыратуучу конденсатор (20uF)
  • USB ургаачы розетка (жеңи менен жеңи жакшы
  • Alexa детектору үчүн 3 пин IC розеткасы
  • Механикалык бөлүктөр (3D басып чыгарылышы мүмкүн)

ESP-12F долбоор кутусуна чогултса болот

  • USB туташтыргычына регуляторду тиркеп, кутуга салыңыз
  • IR драйверин кичинекей веро тактасына жасаңыз (3 зым, +5V, 0V дарбазанын кириши)
  • IR драйверин USB +5V, 0V туташтырыңыз
  • Alexa детекторун колдонуп жатсаңыз, 3 пин IC розеткасын долбоор кутусуна салыңыз. Кирүү үчүн +3.3V, 0V жана зымга туташыңыз
  • ESP-12Fти GPIO15тен GNDга, ENден Vddга, 4K7 GPIO13тен Vddга, Alexa'дан GPIO13ка, IR драйверинен GPIO14, 0V жана Vdd 3.3Vга чейин 2.2K менен түзүңүз.
  • Керек болсо Alexa детекторун жана колдоо буферин түзүңүз.

Эсиңизде болсун, эгерде сизде сериялык портторго туташуу үчүн сериялык программалоо же убактылуу нан бышыруу мүмкүнчүлүгү бар болсо, биринчи кезекте ESP-12F программасы жеңилирээк болот.

Кийинки программалоо камтылган OTA жаңыртуусун колдонуп жасалышы мүмкүн.

2 -кадам: Программалык камсыздоо

Ir Blaster githubда бар Arduino эскизин колдонот

Бул жергиликтүү шарттарга ылайыкташтырылып, андан кийин esp8266 Arduino чөйрөсүндө түзүлүшү керек.

Төмөнкү китепканалар керек, көбү стандарттуу же кошсо болот. Акыркы экөө гитке киргизилген.

  • ESP8266WiFi
  • ESP8266WebServer
  • FS.h
  • DNSServer
  • ESP8266mDNS
  • ESP8266HTTPUpdateServer
  • ArduinoJson
  • BitTx (Git камтылган)
  • BitMessages (Git камтылган)

Өзгөртүлө турган эскиздеги пункттар кирет

  • AP_AUTHID веб кирүү үчүн авторизация коду
  • Wfi менеджеринин сырсөзү WM_PASSWORD
  • камтылган OTA сырсөзү update_password
  • Жаңы IR аппараттары / баскыч коддору (кийинчерээк караңыз)

Бул аяктагандан кийин, адегенде кадимки сериялык жүктөө аркылуу жүктөлүшү керек.

SPIFFS колдонулгандыктан, эс тутумду arduino ESP8266 эскиз маалыматын жүктөө куралын орнотуу жана колдонуу менен даярдоо керек. Бул маалымат папкасын баштапкы SPIFFS мазмуну катары жүктөйт

Түзмөк жергиликтүү тармакка туташа албаганда (биринчи жолу болот), анда Wifi менеджери кирүү түйүнүн түзөт (192.168.4.1). Бул тармакка телефондон же планшеттен туташыңыз, андан кийин 192.168.4.1ге өтүңүз. Сиз жергиликтүү wifiга туташуу үчүн веб -интерфейсти аласыз. Кийинки кирүүлөр муну колдонот. Эгерде жергиликтүү тармак өзгөрсө, ал кайра бул конфигурация режимине которулат.

Кийинки жаңыртуу Arduino чөйрөсүндө экспорттук экилик файлды түзүп, андан кийин OTA интерфейсине ip/firmware аркылуу кирүү аркылуу жасалышы мүмкүн.

3 -кадам: Түзмөк / Баскыч коддорун кошуу

Эскертүү: Бул бөлүм конфигурацияланган кодго мурунку ыкмадан өзгөрдү. Азыр ал SPIFFs берүү системасынан жүктөлгөн файлдарды колдонот. Бул жаңы аныктамаларды жүктөөнү бир топ жеңилдетет.

Баскычтын аныктамалары buttonnames.txt файлына киргизилген. Бул колдонулган бардык пульттарда ысымдардын глобалдык тизмеси, анткени көптөгөн аталыштар кеңири таралган. Берилгендей, бул мен колдонгон пульттордун чоо -жайын камтыйт. Жаңы жазууларды кошууга болот. Жалпысынан 160 атка орун бар, бирок бул bitMessages.h константаларын тууралоо жана кайра компиляциялоо аркылуу көбөйтүлүшү мүмкүн. Бул жерде аныкталган аттар командаларды жөнөтүүдө колдонула турган аттар.

Ар бир алыскы түзмөк dev_remotename деп аталган файлда аныкталат. Ал жогорудагы конфигурация бөлүмүнөн, анан баскычтардын аталыштарынан коддорго чейин жөнөтүлүүчү биттерди камтыган он алтылык саптардан турган картадан турат. Бир гана керектүү баскыч аттары аныкталышы керек.

Түзмөк файлынын башындагы конфигурация бөлүмүндө кодду жөнөтүүдө колдонула турган параметрлер камтылган. Биринчи жазуу - бул буйрук жөнөтүүдө колдонулган түзмөктүн аты. Башка параметрлер код сайтынын реестринде сүрөттөлгөн.

Көпчүлүк пульт 3 протокол категориясынын бирине таандык (nec, rc5 жана rc6). nec, балким, эң кеңири таралган жана жөнөкөй баш түзүлүшкө жана бит убактысына ээ. Мунун кичине варианты бар, ал баштын импульстук убактысында гана айырмаланат. rc5 жана rc6 Philips тарабынан аныкталган, бирок башка өндүрүүчүлөр тарабынан колдонулган протоколдор. Алар бир аз татаалыраак жана өзгөчө rc6 биттердин бири үчүн атайын убакытты талап кылат.

Жаңы пульттун коддорун кармоо үчүн мен алыскы ресиверлерди туташтыруу менен кеңири колдонулган IR кабылдагычты (TSOP) колдоном. Бул негизги декодированиени аткарат жана логикалык деңгээлдин чыгышын берет. Алар адатта +5V, GND, DATA туташуулары бар 3.5мм джек менен келет. Мен бирөөнү курмандыкка чалып, коргошунду кыскартып, Raspberry Piдеги GPIO пинди азыктандыруу үчүн 3.3V буферине салып койдум.

Мен андан кийин коддорду кармоо үчүн python rxir.py куралын (git tools папкасында) колдоном. Көп сандагы баскычтарды тартуу үчүн колдонууну жеңилдетүү үчүн, курал пульттун баскычтарын аныктоо үчүн текстти аныктоо файлын колдонот жана алыстан башкаруудагы топтогу баскычтардын аттары. Мисалы, жаңы Sony пульту болушу мүмкүн жана биринде sonytv-cursor, sonytv-numbers, sonytv-playcontrols деп аталган 3 тексттик файл орнотулат, алардын ар бирине тиешелүү баскыч аттары жазылган. Курал түзмөктү (sonytv), бөлүмдү сурайт. (курсор) жана кайсы протоколду колдонуу керек (nec, nec1, rc5, rc6). Андан кийин ал ар бир баскычты кезек менен басып, натыйжаларды sonytv-ircodes файлына жазат. Бөлүмдөр жакшы экенин текшерүү үчүн талап кылынса кайталанышы мүмкүн.. Ircodes файлындагы биттер BitDevices таблицаларына түзөтүлүшү мүмкүн.

4 -кадам: Желе көзөмөлү жана макростар

Негизги веб -көзөмөл - бул бир гана алуу же ырааттуулукту камтышы мүмкүн болгон json посту.

Get /ir 6 параметрден турат

  • авторизация - авторизация кодун камтыйт
  • түзмөк - алыскы түзмөктүн аталышы
  • параметр - баскычтын аты
  • бит - милдеттүү эмес бит саны
  • кайталоо - милдеттүү түрдө кайталоо
  • күтүү - кийинки буйрукту аткарууга мсекунд ичинде кечигүү.

Түзмөк кечигүү үчүн "нөл" болушу мүмкүн, "макро" параметр тарабынан айтылган макросту же Alexa аныктоо мүмкүнчүлүгүн колдонуу үчүн "аныктоо" (кийинчерээк караңыз).

/Irjson посту json структурасынан турат

{

"auth": "1234", "командалар": [{"түзмөк": "yamahaAV", "параметр": "hdmi4", "күтүү": "5000", "бит": "0", "кайталоо": "1"}, {"түзмөк": "yamahaAV", "параметр": "үнсүз", "күтүү": "100", "бит": "0", "кайталоо": "1"}]

}

Кезек каалаган узундукта болушу мүмкүн жана түзмөктөр макро шилтемелер болушу мүмкүн.

Ушул эле структура макростарды аныктоо үчүн колдонулушу мүмкүн. Жөн эле макро киргизиңиз: "макронамы", жогорку деңгээлде, мис. авторизациядан кийин. Чыныгы мазмун macroname.txt деп аталган файлда сакталат

Макролорду "буйруксуз" аныктоо менен жок кылса болот.

Башка веб буйруктары

  • /акыркы (акыркы аракеттерди тизмектейт)
  • /текшерүү (негизги статусун көрсөтөт)
  • / (буйруктарды кол менен жөнөтүү үчүн веб формасын жүктөйт)
  • / түзөтүү (файлдардын тизмесин көрүү жана файлдарды жок кылуу/ жүктөө үчүн веб формасын жүктөйт)
  • /edit? file = filename (белгилүү бир файлдын мазмунун көрүү)
  • /кайра жүктөө (баскыч аттарын жана түзмөк файлдарын кайра жүктөйт. Булардын бирин өзгөрткөндөн кийин колдонуңуз)

5 -кадам: IFTTTди колдонуу менен Alexa Voice Control

Ir Blasterди Alexa менен колдонуунун эң жөнөкөй жолу - IFTTTти шлюз катары колдонуу.

Биринчи порт роутериңиздеги бластериңиз үчүн колдонулган портту алдыга жылдырат, андыктан ал интернеттен жеткиликтүү болот. Маршрутизаторлорго тышкы IP атын берүү жана бул IP өзгөрсө аны иштетүүнү жеңилдетүү үчүн liberns сыяктуу dns кызматын колдонуу жакшы болушу мүмкүн.

IFTTT эсебин орнотуңуз жана Maker Webhooks каналын жана Alexa каналын иштетиңиз. IFTT мүмкүнчүлүгүн иштетүү үчүн, сиз Amazon сайтына киришиңиз керек болот.

IFTTT Alexa каналын колдонуп IF триггерин түзүңүз, фразага негизделген иш -аракетти тандаңыз жана өзүңүз каалаган фразаны киргизиңиз (мисалы, көлөмүн жогорулатуу).

Maker webhooks каналын тандап, акция түзүңүз. URL талаасына ушул сыяктуу нерсени киргизиңиз

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

Бул аракет ir blasterга жөнөтүлөт, анда ал макро көлөмүн аткарууга аракет кылат. Кааласаңыз, бул жерде конкреттүү түзмөк/баскычтар болушу мүмкүн, бирок мен макростарды аныктоону жана колдонууну жакшыраак деп эсептейм, анткени анда макросту кайра аныктоо менен иш -аракеттердин ырааттуулугун оңой эле өзгөртүүгө болот.

Ар бир буйрук үчүн өзүнчө IFTTT апплети керек.

6 -кадам: Жергиликтүү Alexa үн чеберчилиги

IFTTTдин ордуна Alexa иштеп чыгуунун ичинде жеке жөндөмдү курууга болот. Бул бардык иштетүүнү бир жерге борборлоштурат жана ар бир баскыч үчүн өзүнчө аракеттерди түзүүнүн кажети жок дегенди билдирет.

Сиз Amazon Alexa иштеп чыгуучусу катары каттоодон өтүшүңүз керек жана Amazon AWS консолу lambda кызматына катталууңуз керек. Ошондой эле процессти бир аз түшүнүү үчүн окуу куралдарын карашыңыз керек болот.

Alexa иштеп чыгуучу тарабында сиз жаңы ыңгайлаштырылган чеберчиликти жаратышыңыз керек, анын триггер сөзүн киргизиңиз жана көлөмдү жогорулатуу, жетектөө ж.б. сыяктуу буйрук сөздөрдүн тизмесин түзүшүңүз керек.

Alexa андан кийин фразаны lamda кызматында иштеген программага жөнөтөт, ал фразаны чечмелейт жана аны ишке ашыруу үчүн Ir blasterге URL чакырат.

Мен Alexa ниети схемасын жана гитке колдонгон консоль lambda функциясын киргиздим. Тиешелүү IPге шилтеме берүү жана туура уруксатка ээ болуу үчүн URL өзгөртүлүшү керек. Жөнөкөй болуш үчүн, лямбда функциялары фразанын кичине тамгасы бар макросун чакырат. Ал кээде киргизилиши мүмкүн болгон триггер ачкыч сөзүн алып салууга аракет кылат. Мисалы blaster VOLUME up, эгер триггер сөзү жардыргыч болсо, volupup деп аталган макрону чакырат.

7 -кадам: Alexa детекторун иштетүү

Echo / Dot үнүн таануу жакшы болгону менен, эгер үн жакындап, катуу сүйлөбөсөңүз, сыналгыдан ойноп жатса, кээде чаташып кетиши мүмкүн.

Муну жакшыртуу үчүн мен чекитке активатор детекторун коштум. Ачкычтуу сүйлөм менен (Alexa деп айтылат) LEDлердин шакеги күйөт. Детектор муну жардыргычка киргизет, ал телекөрсөтүүнү өчүрүү үчүн alexaon макросун колдонот, ошону менен бирге буйруктун аягында чырактар өчөт жана alexaoff макроосу үндү калыбына келтирет.

"Аныктоо" буйругу муну күйгүзүү жана өчүрүү үчүн да колдонулушу мүмкүн. Мисалы, мен аныктоону иштетүү үчүн баштапкы turnon макросун жана өчүрүү үчүн өчүрүү макросун колдоном. Бул ошондой эле көйгөйлүү боло турган чыныгы үнсүз жана үнсүз куманды колдоо үчүн иш макростарынын ичинде колдонулушу мүмкүн.

Физикалык детектор - бул жарык колдогон резистор, бул схема колдойт. Мен өзүмдү чекитке 3D басылган кронштейн менен орнотом

Сунушталууда: