Obsah:

Infračervený blaster ESP-12: 7 krokov
Infračervený blaster ESP-12: 7 krokov

Video: Infračervený blaster ESP-12: 7 krokov

Video: Infračervený blaster ESP-12: 7 krokov
Video: СБЕГАЮ от КРЫСЫ - ВТОРАЯ ГЛАВА ► ROBLOX 2024, Júl
Anonim
Infračervený blaster ESP-12
Infračervený blaster ESP-12

Blaster diaľkového ovládača Infra Red pomocou esp8266

Vysiela kódy diaľkového ovládania prijaté z webu s podporou viacerých výstupných zariadení.

Vstavaná jednoduchá webová stránka hlavne na testovanie.

Bežné používanie je prostredníctvom správ POST, ktoré môžu pochádzať z webových stránok alebo z hlasového ovládania IFTTT / Alexa.

Podporuje detektor aktivácie Amazon Echo / Dot na stlmenie / stlmenie zvuku, hneď ako vyslovíte aktivačné slovo.

Príkazy sú buď jednotlivé príkazy, alebo sekvencie. Sekvencie môžu byť uložené ako pomenované makrá, ktoré potom môžu byť použité ako príkazy alebo v iných sekvenciách.

Najnovšiu históriu a zoznam makier je možné získať prostredníctvom webového rozhrania

Podporuje nahrávanie nového firmvéru OTA a na počiatočné nastavenie wifi používa knižnicu WifiManager

Krok 1: Hardvér

Hardvér
Hardvér
Hardvér
Hardvér

Používa nasledujúce komponenty

  • Modul ESP-12F
  • 3,3 V regulátor (MP2307 mini buck regulátor)
  • Prepínače MOSFET (AO3400)
  • Infračervený vysielač (3 mm)
  • Svetlo závislý odpor GL2258 (voliteľný detektor aktivity Alexa)
  • Rezistory
  • Oddeľovací kondenzátor (20uF)
  • Zásuvka USB (najlepšie spájkovacia s puzdrom
  • 3 -pinový zásuvkový pásik IC pre detektor Alexa
  • Mechanické časti (dajú sa vytlačiť 3D)

Môže byť zostavený do projektového boxu ESP-12F

  • Pripojte regulátor k USB konektoru a vložte ho do krabice
  • Doplňte IR ovládač na malý kúsok vero dosky (3 vodiče, +5 V, vstup brány 0 V)
  • Pripojte IR ovládač k USB +5V, 0V
  • Ak používate detektor Alexa, vložte 3 -kolíkovú zásuvku IC do krabice projektu. Pripojte na +3,3 V, 0 V a vodič pre vstup
  • Doplňte ESP-12F s 2,2K od GPIO15 do GND, EN až Vdd, 4K7 GPIO13 až Vdd, vstup Alexa do GPIO13, IR ovládač do GPIO14, 0V a Vdd do 3,3V
  • V prípade potreby doplňte detektor Alexa a podporný buffer.

Všimnite si toho, že najskôr môže byť jednoduchšie naprogramovať ESP-12F, ak máte nejaký druh zariadenia na sériové programovanie alebo dočasné zariadenie na chválenie, ako je toto, na pripojenie k sériovým portom.

Následné programovanie je možné vykonať pomocou vstavanej aktualizácie OTA.

Krok 2: Softvér

Ir Blaster používa skicu Arduino, ktorá je k dispozícii na github

Toto je potrebné prispôsobiť miestnym podmienkam a potom skompilovať v prostredí esp8266 Arduino.

Potrebné sú nasledujúce knižnice, väčšina z nich je štandardná alebo ich možno pridať. Posledné dve sú zahrnuté v git.

  • ESP8266 Wi -Fi
  • Webový server ESP8266
  • FS.h
  • Server DNS
  • ESP8266mDNS
  • Server ESP8266HTTPUpdateServer
  • ArduinoJson
  • BitTx (zahrnuté v Git)
  • BitMessages (zahrnuté v Git)

Položky v náčrte, ktoré sa majú zmeniť, zahŕňajú

  • Autorizačný kód pre prístup na web AP_AUTHID
  • Heslo správcu Wfi WM_PASSWORD
  • firmware OTA heslo update_password
  • Nové IR zariadenia / kódy tlačidiel (pozri neskôr)

Akonáhle je to hotové, malo by byť najskôr nahrané pomocou konvenčného sériového nahrávania.

Pretože sa používa SPIFFS, pamäť by mala byť pripravená inštaláciou a použitím nástroja na nahrávanie údajov arduino ESP8266 Sketch Data. Odošle sa údajový priečinok ako pôvodný obsah SPIFFS

Keď sa zariadenie nemôže pripojiť k miestnej sieti (ako sa to stane prvýkrát), potom správca WiFi vytvorí prístupový bod (192.168.4.1). Pripojte sa k tejto sieti z telefónu alebo tabletu a potom prejdite na stránku 192.168.4.1 Získate webové rozhranie na pripojenie k miestnej sieti Wi -Fi. Nasledujúce prístupy to využijú. Ak sa lokálna sieť zmení, prepne sa späť do tohto konfiguračného režimu.

Následnú aktualizáciu je možné vykonať zostavením exportnej binárnej karty v prostredí Arduino a následným prístupom k rozhraniu OTA na adrese ip/firmware.

Krok 3: Pridajte kódy zariadení / tlačidiel

Poznámka: Táto časť sa zmenila oproti predchádzajúcej metóde, kde konfigurácia, ktorá bola predtým skompilovaná do kódu. Teraz používa súbory, ktoré sú načítané z registračného systému SPIFF. Vďaka tomu je nahrávanie nových definícií oveľa jednoduchšie.

Definície tlačidiel sú súčasťou súboru buttonnames.txt. Je to globálny zoznam mien vo všetkých používaných diaľkových ovládačoch, pretože mnohé názvy sú bežné. Ako je súčasťou dodávky, obsahuje podrobnosti o diaľkových ovládačoch, ktoré používam. Je možné pridať nové záznamy. Existuje priestor pre celkom 160 mien, ale toto je možné zvýšiť úpravou konštánt v bitMessages.h a prekompilovaním. Tu definované názvy sú názvy, ktoré sa majú použiť pri odosielaní príkazov.

Každé vzdialené zariadenie je definované v súbore s názvom dev_remotename. Pozostáva z konfiguračnej sekcie v hornej časti a potom z mapovacej tabuľky od názvov tlačidiel po kódy, ktoré sú hexadecimálnymi reťazcami obsahujúcimi bity, ktoré sa majú odoslať. Je potrebné definovať iba požadované názvy tlačidiel.

Sekcia konfigurácie na začiatku súboru zariadenia obsahuje parametre, ktoré sa majú použiť pri odosielaní kódu. Prvá položka je názov zariadenia, ktoré sa používa pri odosielaní príkazu. Ostatné parametre sú popísané v súbore readme na stránke kódu.

Väčšina diaľkových ovládačov patrí do jednej z 3 kategórií protokolov (nec, rc5 a rc6). nec je pravdepodobne najbežnejší a má jednoduchú štruktúru hlavičky a bitové načasovanie. Existuje malý variant, ktorý sa líši iba v impulznom načasovaní hlavičky. rc5 a rc6 sú protokoly definované spoločnosťou Philips, ale používajú ich aj niektorí iní výrobcovia. Sú trochu komplikovanejšie a najmä RC6 má špeciálnu požiadavku na časovanie pre jeden z bitov.

Na zachytenie kódov pre nové diaľkové ovládanie používam infračervený prijímač (TSOP), ktorý sa bežne používa so zásuvnými diaľkovými prijímačmi. Toto robí základné dekódovanie a dáva výstup logickej úrovne. Bežne sa dodávajú s 3,5 mm konektorom s pripojením +5 V, GND, DATA. Jeden som obetoval, skrátil som zvod a previedol som ho cez invertujúci 3,3 V buffer, aby som napájal GPIO pin na Raspberry Pi.

Potom na zachytenie kódov použijem nástroj python rxir.py (v priečinku git tools). Na uľahčenie zachytenia veľkého počtu tlačidiel potom nástroj pomocou súboru definície textu definuje tlačidlá na diaľkovom ovládači a sú to iba názvy tlačidiel v skupine na diaľkovom ovládači. Jeden môže mať napríklad nový diaľkový ovládač Sony a jeden nastaví 3 textové súbory s názvom sonytv-cursor, sonytv-numbers, sonytv-playcontrols, každý s príslušnými názvami tlačidiel. Nástroj zobrazí výzvu pre zariadenie (sonytv), sekciu (kurzor) a ktorý protokol použiť (nec, nec1, rc5, rc6). Potom bude postupne vyzvať na každé stlačenie tlačidla a zapíše výsledky do súboru sonytv-ircodes. Sekcie sa môžu opakovať, ak je to potrebné na kontrolu správnosti zachytení. Bity zo súboru.ircodes je možné upravovať v tabuľkách BitDevices.

Krok 4: Webové ovládanie a makrá

Základným webovým ovládaním je buď jeden príspevok, alebo príspevok json, ktorý môže obsahovať sekvenciu.

Prístup k /ir má 6 parametrov

  • auth - obsahujúci autorizačný kód
  • zariadenie - názov vzdialeného zariadenia
  • parameter - názov tlačidla
  • bity - voliteľný počet bitov
  • opakovať - voliteľný počet opakovaní
  • čakať - oneskorenie v ms, než bude možné vykonať ďalší príkaz.

Zariadenie môže byť tiež „nulové“, aby dosiahlo iba oneskorenie, „makro“na použitie makra uvedeného parametrom alebo „detekovať“na použitie funkcie zisťovania Alexa (pozri neskôr).

Príspevok do /irjson pozostáva zo štruktúry json ako

{

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

}

Sekvencia môže mať ľubovoľnú dĺžku a zariadenia môžu byť referencie na makro.

Na definovanie makier je možné použiť rovnakú štruktúru. Stačí zahrnúť makro: „macroname“, na najvyššej úrovni napr. po autorizácii Skutočný obsah je uložený v súbore s názvom macroname.txt

Makrá je možné odstrániť tak, že ich definujete bez „príkazov“.

Ďalšie webové príkazy

  • /recent (uvádza nedávnu aktivitu)
  • /skontrolovať (zobrazuje základný stav)
  • / (načítava webový formulár na manuálne odosielanie príkazov)
  • / upraviť (načítava webový formulár na zobrazenie zoznamu súborov a odstraňovanie/ nahrávanie súborov)
  • /edit? file = názov súboru (zobraziť obsah konkrétneho súboru)
  • /reload (znova načíta názvy tlačidiel a súbory zariadenia. Použite po zmene ktoréhokoľvek z nich)

Krok 5: Hlasové ovládanie Alexa pomocou IFTTT

Najjednoduchší spôsob, ako používať ir Blaster s Alexou, je použiť IFTTT ako bránu.

Prvý port presmeruje port použitý na váš blaster vo vašom smerovači, aby bol prístupný z internetu. Môže byť dobré použiť službu dns, ako napríklad freedns, na pomenovanie externých ip smerovačov a uľahčenie ovládania, ak sa táto ip zmení.

Založte si účet IFTTT a povoľte kanál Maker Webhooks a kanál Alexa. Na to, aby ste povolili prístup IFTT, sa budete musieť prihlásiť na web Amazon.

Vytvorte spúšťač IF pomocou kanála IFTTT Alexa, vyberte akciu na základe frázy a zadajte požadovanú frázu (napr. Zvýšenie hlasitosti).

Akciu vytvorte kliknutím na kanál webhooks Maker. Do poľa pre adresu URL zadajte niečo ako

myip: port/irjson? plain = {"auth": "1234", "komunikácia …

Táto akcia bude odoslaná do zariadenia ir blaster, kde sa pokúsi vykonať zväčšenie makra. V prípade potreby tu môže byť konkrétne zariadenie/tlačidlá, ale považujem za lepšie definovať a používať makrá, pretože sekvenciu akcií je možné ľahko zmeniť predefinovaním makra.

Pre každý príkaz je potrebný samostatný aplet IFTTT.

Krok 6: Natívna hlasová zručnosť Alexa

Namiesto IFTTT je možné vo vývoji Alexa vybudovať vlastnú zručnosť. Toto sústredí všetky procesy na jednom mieste a znamená to, že nemusíte vytvárať samostatné akcie pre každé tlačidlo.

Musíte sa zaregistrovať ako vývojár Amazon Alexa a musíte sa zaregistrovať v službe lambda konzoly Amazon AWS. Tiež si budete musieť pozrieť návody, aby ste procesu trochu porozumeli.

Na strane vývojára Alexa musíte vytvoriť novú vlastnú zručnosť, zadať spúšťacie slovo a vytvoriť zoznam príkazových slov, ako napríklad zvýšenie hlasitosti, sprievodca atď.

Alexa potom pošle frázu do programu spusteného na službe lamda, ktorý ju interpretuje a zavolá URL na Ir blaster, aby ju vykonal.

Do súboru git som zahrnul schému zámeru Alexa a funkciu lambda konzoly, ktorú používam. Webovú adresu bude potrebné upraviť tak, aby odkazovala na príslušnú IP adresu a mala správnu autorizáciu. Aby to bolo jednoduché, funkcie lambda volajú makro, ktorého verzia frázy je zbavená medzier. Pokúša sa tiež odstrániť spúšťacie kľúčové slovo, ktoré môže byť niekedy zahrnuté. Napr. blaster VOLUME up vyvolá makro s názvom volumeup, ak bolo spúšťacím slovom blaster.

Krok 7: Detektor aktivujte Alexa

Aj keď je rozpoznávanie hlasu Echo / Dot dobré, niekedy môže dôjsť k zámene, ak zvuk znie napríklad z televízora, pokiaľ sa nepriblížite a nehovoríte nahlas.

Aby sa to zlepšilo, pridal som k svojmu Dot aktivačný detektor. Hneď ako sa rozsvieti kľúčové slovo (hovorí sa Alexa), krúžok diód LED. Detektor to vloží do blastera, kde použije alexaonské makro na stlmenie televízora, podobne na konci spracovania príkazu zhasnú svetlá a makro alexaoff obnoví zvuk.

Na jeho zapnutie a vypnutie je možné použiť aj príkaz „zistiť“. Napríklad napríklad používam počiatočné makro zapnutia na detekciu a makro vypnutia ho deaktivujem. To sa dá použiť aj v rámci akčných makier na podporu skutočného stlmenia a zapnutia zvuku, čo by inak bolo problematické.

Fyzický detektor je odpor závislý od svetla, ktorý obvod podporuje. Ten svoj namontujem na Bodku pomocou 3D tlačenej konzoly

Odporúča: