Kazalo:

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

Video: ESP-12 Infra Red Blaster: 7 korakov

Video: ESP-12 Infra Red Blaster: 7 korakov
Video: My journey of making a PERFECT! Universal IR Blaster 👀 2024, Julij
Anonim
ESP-12 Infra Red Blaster
ESP-12 Infra Red Blaster

Infra rdeči daljinski upravljalnik z esp8266

Oddaja kode za daljinsko upravljanje, prejete s spleta, ki podpirajo več izhodnih naprav.

Preprosta spletna stran je vgrajena predvsem za testiranje.

Običajna uporaba je prek sporočil POST, ki lahko prihajajo s spletnih strani ali iz glasovnega upravljanja IFTTT / Alexa.

Podpira detektor za aktiviranje Amazon Echo / Dot za utišanje / utišanje takoj, ko je izgovorjena beseda za aktiviranje.

Ukazi so bodisi posamezni ukazi ali zaporedja. Zaporedja lahko shranite kot poimenovane makre, ki jih lahko nato uporabite kot ukaze ali v drugih zaporedjih.

Nedavno zgodovino in seznam makrov lahko dobite prek spletnega vmesnika

Podpira nalaganje nove vdelane programske opreme OTA in uporablja knjižnico WifiManager za začetno nastavitev WiFi

1. korak: Strojna oprema

Strojna oprema
Strojna oprema
Strojna oprema
Strojna oprema

Uporablja naslednje komponente

  • Modul ESP-12F
  • Regulator 3.3V (regulator mini buck MP2307)
  • Stikala MOSFET (AO3400)
  • Infra rdeči oddajnik (3 mm)
  • Od svetlobe odvisen upor GL2258 (izbirni detektor aktivnosti Alexa)
  • Upori
  • Kondenzator za ločevanje (20uF)
  • Ženska vtičnica USB (po možnosti spajkanje z rokavom)
  • 3 -polni IC vtični trak za detektor Alexa
  • Mehanski deli (lahko jih 3D natisnete)

Lahko se sestavi v projektno škatlo ESP-12F

  • Regulator pritrdite na priključek USB in ga vstavite v škatlo
  • Pripravite IR gonilnik na majhen kos plošče vero (3 žice, +5V, 0V vhod)
  • Priključite IR gonilnik na USB +5V, 0V
  • Če uporabljate Alexa detektor, vstavite 3 -polno IC vtičnico v projektni okvir. Priključite na +3.3V, 0V in žico za vhod
  • Pripravite ESP-12F z 2,2 K od GPIO15 do GND, EN do Vdd, 4K7 GPIO13 do Vdd, Alexa vhod do GPIO13, IR gonilnik do GPIO14, 0 V in Vdd do 3,3 V
  • Po potrebi sestavite detektor Alexa in podporni vmesnik.

Upoštevajte, da je lahko najprej lažje programirati ESP-12F, če imate za povezovanje s serijskimi vrati kakšno možnost serijskega programiranja ali začasno zasnovo, kot je ta.

Naknadno programiranje lahko izvedete z vgrajeno posodobitvijo OTA.

2. korak: Programska oprema

Ir Blaster uporablja skico Arduino, ki je na voljo na githubu

To je treba prilagoditi lokalnim razmeram in nato zbrati v okolju esp8266 Arduino.

Potrebne so naslednje knjižnice, večina jih je standardnih ali jih je mogoče dodati. Zadnja dva sta vključena v git.

  • ESP8266WiFi
  • ESP8266Spletni strežnik
  • FS.h
  • Strežnik DNS
  • ESP8266mDNS
  • ESP8266HTTPUpdateServer
  • ArduinoJson
  • BitTx (vključen v Git)
  • BitMessages (vključeno v Git)

Elementi na skici, ki jih je treba spremeniti, vključujejo

  • Avtorizacijska koda za spletni dostop AP_AUTHID
  • Geslo upravitelja Wfi WM_PASSWORD
  • geslo OTA za vdelano programsko opremo update_password
  • Nove IR naprave / kode gumbov (glej kasneje)

Ko je to storjeno, ga je treba najprej naložiti z običajnim serijskim nalaganjem.

Ker se uporablja SPIFFS, je treba pomnilnik pripraviti z namestitvijo in uporabo orodja za nalaganje podatkov skice arduino ESP8266. To bo naložilo podatkovno mapo kot začetno vsebino SPIFFS

Ko se naprava ne more povezati z lokalnim omrežjem (kot se bo zgodilo prvič), bo upravitelj Wifi ustvaril dostopno točko (192.168.4.1). Povežite se s tem omrežjem iz telefona ali tabličnega računalnika in poiščite 192.168.4.1 Dobili boste spletni vmesnik za povezavo z lokalnim wifi. To bodo uporabili kasnejši dostopi. Če se lokalno omrežje spremeni, se bo preklopilo nazaj v ta način konfiguracije.

Kasnejšo posodobitev lahko naredite tako, da sestavite izvozno binarno datoteko v okolju Arduino in nato dostopate do vmesnika OTA v ip/firmware.

Korak: Dodajte kode naprav / gumbov

Opomba: Ta razdelek se je spremenil od prejšnje metode, kjer je bila konfiguracija, ki je bila prej prevedena v kodo. Zdaj uporablja datoteke, ki so naložene iz zbirke datotek SPIFF. Tako je veliko lažje naložiti nove definicije.

Opredelitve gumbov so vključene v datoteko buttonnames.txt. To je globalni seznam imen na vseh daljinskih upravljalnikih, ki so v uporabi, saj je veliko imen običajno skupnih. Kot je priloženo, vsebuje podrobnosti o daljinskih upravljalnikih, ki jih uporabljam. Dodate lahko nove vnose. Na voljo je skupaj 160 imen, vendar jih je mogoče povečati s prilagajanjem konstant v bitMessages.h in ponovnim prevajanjem. Tu določena imena so imena, ki jih je treba uporabiti pri pošiljanju ukazov.

Vsaka oddaljena naprava je definirana v datoteki z imenom dev_remotename. Sestavljen je iz konfiguracijskega razdelka na vrhu in nato tabele preslikave od imen gumbov do kod, ki so šestnajsti nizi, ki vsebujejo bite, ki jih je treba poslati. Določiti je treba le potrebna imena gumbov.

Razdelek konfiguracije na začetku datoteke naprave vsebuje parametre, ki jih je treba uporabiti pri pošiljanju kode. Prvi vnos je ime naprave, ki se uporablja pri pošiljanju ukaza. Drugi parametri so opisani v readme na kodnem mestu.

Večina daljincev spada v eno od treh kategorij protokolov (nec, rc5 in rc6). nec je verjetno najpogostejši in ima preprosto strukturo glave in čas bitov. Obstaja majhna varianta tega, ki se razlikuje le v časovnem impulzu glave. rc5 in rc6 sta protokola, ki jih je definiral Philips, uporabljajo pa jih tudi nekateri drugi proizvajalci. So nekoliko bolj zapleteni in še posebej ima rc6 posebno časovno zahtevo za enega od bitov.

Za zajem kod za nov daljinski upravljalnik uporabljam IR sprejemnik (TSOP), ki ga običajno uporabljamo z daljinskimi sprejemniki. To naredi osnovno dekodiranje in daje izhod na logični ravni. Običajno imajo 3,5 mm vtičnico s priključki +5V, GND, DATA. Žrtvoval sem enega, skrajšal vodnik in ga dal skozi obrnjen 3.3V vmesnik, da napajam pin GPIO na Raspberry Pi.

Nato za zajem kod uporabim orodje python rxir.py (v mapi git tools). Za lažje zajemanje velikega števila gumbov orodje za definiranje gumbov na daljinskem upravljalniku uporablja datoteko z definicijo besedila in je samo ime gumba v skupini na daljinskem upravljalniku. Na primer, lahko imate nov daljinski upravljalnik Sony in nastavite 3 besedilne datoteke, imenovane sonytv-cursor, sonytv-numbers, sonytv-playcontrols, vsaka z ustreznimi imeni gumbov. Orodje bo zahtevalo napravo (sonytv), razdelek (kazalec) in kateri protokol uporabiti (nec, nec1, rc5, rc6). Nato bo zaporedno pozval za vsak pritisk gumba in zapisal rezultate v datoteko sonytv-ircodes. Odseke lahko ponovite, če je potrebno, da preverite, ali so posnetki dobri. Bite iz datoteke.ircodes lahko uredite v tabele BitDevices.

4. korak: Spletni nadzor in makri

Osnovni spletni nadzor je bodisi en sam get ali json post, ki lahko vsebuje zaporedje.

Dostop do /ir ima 6 parametrov

  • auth - vsebuje avtorizacijsko kodo
  • naprava - ime oddaljene naprave
  • parameter - ime gumba
  • bitov - izbirno število bitov
  • repeat - neobvezno štetje ponovitev
  • wait - zakasnitev v msekundah pred izvedbo naslednjega ukaza.

Naprava je lahko tudi „ničelna“, da dobite samo zamudo, „makro“za uporabo makra, na katerega se sklicuje parameter, ali „zaznavanje“za uporabo funkcije zaznavanja Alexa (glej kasneje).

Objava za /irjson je sestavljena iz jsonove strukture, podobne

{

"auth": "1234", "ukazi": [{"device": "yamahaAV", "parameter": "hdmi4", "wait": "5000", "bits": "0", "repeat": "1"}, {"device": "yamahaAV", "parameter": "mute", "wait": "100", "bits": "0", "repeat": "1"}]

}

Zaporedje je lahko poljubne dolžine, naprave pa so lahko sklici na makro.

Ista struktura se lahko uporablja za opredelitev makrov. Vključite samo makro: "makroime", na najvišji ravni npr. po avt. Dejanska vsebina je shranjena v datoteki, imenovani macroname.txt

Makre lahko izbrišete tako, da jih definirate brez "ukazov".

Drugi spletni ukazi

  • /nedavno (našteva nedavne dejavnosti)
  • /check (prikazuje osnovni status)
  • / (naloži spletni obrazec za ročno pošiljanje ukazov)
  • / uredi (naloži spletni obrazec za ogled seznama datotek in brisanje/ nalaganje datotek)
  • /edit? file = ime datoteke (ogled vsebine določene datoteke)
  • /reload (naloži imena gumbov in datotek naprav. Uporabi po spremembi katerega koli od teh)

5. korak: Glasovni nadzor Alexa z uporabo IFTTT

Najpreprostejši način uporabe ir Blasterja z Alexa je uporaba IFTTT kot prehoda.

Najprej prenesite vrata, ki so bila uporabljena za vaš blaster v usmerjevalniku, tako da so dostopna iz interneta. Uporabite lahko storitev dns, kot je Freedns, da usmerjevalnikom dodelite ime zunanjega ip -ja in ga olajšate, če se ta ip spremeni.

Nastavite račun IFTTT in omogočite kanal Maker Webhooks in kanal Alexa. Pri tem se morate prijaviti na spletno mesto Amazon, da omogočite dostop IFTT.

Ustvarite sprožilec IF s kanalom Alexa IFTTT, izberite dejanje na podlagi fraze in vnesite želeno frazo (npr. Povečanje glasnosti).

Ustvarite dejanje tako, da izberete kanal za ustvarjanje spletnih klikov. V polje URL vnesite nekaj takega

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

To dejanje bo poslano v ir blaster, kjer bo poskušal izvesti povečanje obsega makra. Tu je lahko določena naprava/gumbi, če želite, vendar se mi zdi bolje, da opredelimo in uporabimo makre, ker lahko nato zaporedje dejanj preprosto spremenimo samo z redefiniranjem makra.

Za vsak ukaz je potreben ločen programček IFTTT.

Korak 6: Native Alexa glasovna spretnost

Namesto IFTTT lahko znotraj razvoja Alexa zgradite spretnost po meri. To centralizira vso obdelavo na enem mestu in pomeni, da vam ni treba ustvariti ločenih dejanj za vsak gumb.

Registrirati se morate kot razvijalec Amazon Alexa in registrirati se morate pri storitvi lambda za konzolo Amazon AWS. Če želite malo razumeti postopek, boste morali pogledati tudi vaje.

Na strani razvijalca Alexa morate ustvariti novo spretnost po meri, vnesti njeno sprožilno besedo in ustvariti seznam ukaznih besed, kot so povečanje glasnosti, vodnik itd.

Alexa nato frazo pošlje programu, ki se izvaja v storitvi lamda, ki interpretira frazo in pokliče URL k blasterju Ir, da jo izvede.

V git sem vključil shemo namena Alexa in lambda funkcijo konzole, ki jo uporabljam. URL bo treba spremeniti, da se bo skliceval na ustrezen IP in imel ustrezno pooblastilo. Da bi bilo lažje, lambda funkcije pokličejo makro, ki ima majhno različico fraze, odstranjene s presledkom. Prav tako poskuša odstraniti ključno besedo sprožilca, ki jo je včasih mogoče vključiti. Npr. blaster VOLUME up bo poklical makro, imenovan volumeup, če je bila sprožilna beseda blaster.

Korak 7: Alexa aktivira detektor

Čeprav je prepoznavanje glasu Echo / Dot dobro, se lahko včasih zmoti, če se zvok predvaja s televizorja, razen če se približate in glasno govorite.

Da bi to izboljšal, sem svoji piki dodal detektor za aktiviranje. Takoj, ko ključna beseda (rečeno je Alexa) zasveti obroč LED. Detektor to vnese v blaster, kjer bo z makrom alexaon utišal televizor, podobno na koncu obdelave ukaza lučke ugasnejo in makro alexaoff obnovi zvok.

Za vklop in izklop lahko uporabite tudi ukaz 'zaznavanje'. Tako na primer uporabljam začetni makro za izklop, da omogočim zaznavanje, in makro za izklop, da ga onemogočim. To lahko uporabimo tudi v makrih dejanj za podporo pravemu ukazu za izklop in vklop zvoka, ki bi bil sicer problematičen.

Fizični detektor je svetlobno odvisen upor, ki ga vezje podpira. Svojega na Dot pritrdim s 3D tiskanim nosilcem

Priporočena: