Obsah:

ESP-12 Infra Red Blaster: 7 kroků
ESP-12 Infra Red Blaster: 7 kroků

Video: ESP-12 Infra Red Blaster: 7 kroků

Video: ESP-12 Infra Red Blaster: 7 kroků
Video: DIY CC1101 tool - RF jammer, replay attack, sniffer - cheap & easy tool for radio pen testing 2024, Listopad
Anonim
Infračervený blaster ESP-12
Infračervený blaster ESP-12

Infračervený dálkový ovladač blaster pomocí esp8266

Přenáší kódy dálkového ovládání přijaté z webu podporující více výstupních zařízení.

Vestavěná jednoduchá webová stránka hlavně pro testování.

Běžné použití je prostřednictvím zpráv POST, které mohou pocházet z webových stránek nebo z hlasového ovládání IFTTT / Alexa.

Podporuje detektor aktivace Amazon Echo / Dot pro ztlumení / ztlumení, jakmile je vysloveno aktivační slovo.

Příkazy jsou buď jednotlivé příkazy, nebo sekvence. Sekvence mohou být uloženy jako pojmenovaná makra, která pak mohou být použita jako příkazy nebo v jiných sekvencích.

Nedávnou historii a seznam maker lze získat prostřednictvím webového rozhraní

Podporuje nahrávání nového firmwaru OTA a pro počáteční nastavení wifi používá knihovnu WifiManager

Krok 1: Hardware

Hardware
Hardware
Hardware
Hardware

Používá následující komponenty

  • Modul ESP-12F
  • 3,3 V regulátor (MP2307 mini buck regulátor)
  • Přepínače MOSFET (AO3400)
  • Infračervený vysílač (3 mm)
  • Světelně závislý odpor GL2258 (volitelný detektor aktivity Alexa)
  • Rezistory
  • Oddělovací kondenzátor (20uF)
  • Zásuvka USB (nejlépe pájená s pouzdrem
  • 3pinový IC zásuvkový proužek pro detektor Alexa
  • Mechanické části (lze vytisknout 3D)

Lze sestavit do projektového boxu ESP-12F

  • Připojte regulátor k USB konektoru a vložte do krabice
  • Doplňte ovladač IR na malý kousek desky vero (3 vodiče, +5 V, vstup brány 0 V)
  • Připojte IR ovladač k USB +5V, 0V
  • Pokud používáte detektor Alexa, vložte 3pólovou zásuvku IC do projektového pole. Připojte na +3,3 V, 0 V a kabel pro vstup
  • Doplňte ESP-12F s 2,2K z GPIO15 na GND, EN na Vdd, 4K7 GPIO13 na Vdd, vstup Alexa na GPIO13, IR ovladač na GPIO14, 0V a Vdd na 3,3 V
  • V případě potřeby doplňte detektor Alexa a podpůrný buffer.

Všimněte si, že může být jednodušší nejprve naprogramovat ESP-12F, pokud máte nějaký druh zařízení pro sériové programování nebo dočasné zařízení pro provázání, jako je toto, pro připojení k sériovým portům.

Následné programování lze provést pomocí vestavěné aktualizace OTA.

Krok 2: Software

Ir Blaster používá skicu Arduino dostupnou na githubu

To je třeba upravit tak, aby vyhovovalo místním podmínkám, a poté zkompilováno v prostředí esp8266 Arduino.

Následující potřebné knihovny, většina je standardní nebo je lze přidat. Poslední dva jsou zahrnuty v git.

  • ESP8266 Wi -Fi
  • Webový server ESP8266
  • FS.h
  • DNS server
  • ESP8266mDNS
  • Server ESP8266HTTPUpdateServer
  • ArduinoJson
  • BitTx (součástí Git)
  • BitMessages (zahrnuty v Gitu)

Položky ve skice, které mají být změněny, zahrnují

  • Autorizační kód pro přístup na web AP_AUTHID
  • Heslo správce Wfi WM_PASSWORD
  • firmware OTA heslo update_password
  • Nová IR zařízení / kódy tlačítek (viz později)

Jakmile je toto provedeno, mělo by být nejprve nahráno pomocí konvenčního sériového nahrávání.

Protože se používá SPIFFS, měla by být paměť připravena instalací a použitím nástroje pro načtení dat arduino ESP8266 Sketch Data. Tím se nahraje datová složka jako počáteční obsah SPIFFS

Když se zařízení nemůže připojit k místní síti (jak se to stane poprvé), pak Wifi manager vytvoří přístupový bod (192.168.4.1). Připojte se k této síti z telefonu nebo tabletu a poté přejděte na adresu 192.168.4.1 Získáte webové rozhraní pro připojení k místní síti Wi -Fi. Následné přístupy toho využijí. Pokud se místní síť změní, přepne se zpět do tohoto konfiguračního režimu.

Následnou aktualizaci lze provést kompilací exportního binárního souboru v prostředí Arduino a poté přístupem k rozhraní OTA na adrese ip/firmware.

Krok 3: Přidejte kódy zařízení / tlačítek

Poznámka: Tato část se změnila z předchozí metody, kde konfigurace, která byla dříve kompilována do kódu. Nyní používá soubory načtené ze systému souborů SPIFF. Díky tomu je mnohem snazší nahrávat nové definice.

Definice tlačítek jsou součástí souboru buttonnames.txt. Jedná se o globální seznam jmen napříč všemi používanými dálkovými ovladači, protože mnoho jmen bývá běžných. V dodávce obsahuje podrobnosti o dálkových ovladačích, které používám. Lze přidat nové položky. K dispozici je prostor pro celkem 160 jmen, ale toto lze zvýšit úpravou konstant v bitMessages.h a překompilováním. Zde definovaná jména jsou jména, která se mají použít při odesílání příkazů.

Každé vzdálené zařízení je definováno v souboru s názvem dev_remotename. Skládá se z konfigurační části v horní části a poté mapovací tabulky od názvů tlačítek po kódy, které jsou hexadecimálními řetězci obsahujícími bity, které mají být odeslány. Je třeba definovat pouze požadované názvy tlačítek.

Sekce config na začátku souboru zařízení obsahuje parametry, které mají být použity při odesílání kódu. První položka je název zařízení, které se používá při odesílání příkazu. Další parametry jsou popsány v souboru readme na stránce kódu.

Většina dálkových ovladačů patří do jedné ze 3 kategorií protokolů (jn, rc5 a rc6). nec je pravděpodobně nejběžnější a má jednoduchou strukturu záhlaví a bitové časování. Existuje malá varianta, která se liší pouze v časování pulsů záhlaví. rc5 a rc6 jsou protokoly definované společností Philips, ale používají je i někteří jiní výrobci. Jsou trochu komplikovanější a zejména RC6 má speciální požadavek na načasování jednoho z bitů.

K zachycení kódů pro nové dálkové ovládání používám infračervený přijímač (TSOP) běžně používaný u zásuvných dálkových přijímačů. To provede základní dekódování a poskytne výstup logické úrovně. Obvykle se dodávají s 3,5mm konektorem s připojením +5 V, GND, DATA. Obětoval jsem jeden, zkrátil svod a vložil ho přes invertující 3,3V vyrovnávací paměť, abych napájel GPIO pin na Raspberry Pi.

K zachycení kódů pak používám nástroj python rxir.py (ve složce git tools). Aby bylo možné snáze použít k zachycení velkého počtu tlačítek, pak nástroj používá k definování tlačítek na dálkovém ovladači soubor definice textu a jsou to pouze názvy tlačítek ve skupině na dálkovém ovladači. Například může mít nový dálkový ovladač Sony a jeden nastaví 3 textové soubory s názvem sonytv-cursor, sonytv-numbers, sonytv-playcontrols, každý s příslušnými názvy tlačítek v. Nástroj vyzve k zadání zařízení (sonytv), sekce (kurzor) a jaký protokol použít (nec, nec1, rc5, rc6). Poté bude postupně vyzývat ke každému stisknutí tlačítka a zapíše výsledky do souboru sonytv-ircodes. Sekce se mohou opakovat, pokud je to nutné pro kontrolu, zda jsou záběry dobré. Bity ze souboru.ircodes lze upravovat do tabulek BitDevices.

Krok 4: Ovládání webu a makra

Základní webový ovládací prvek je buď jeden get nebo příspěvek json, který může obsahovat sekvenci.

Get to /ir má 6 parametrů

  • auth - obsahující autorizační kód
  • zařízení - název vzdáleného zařízení
  • parametr - název tlačítka
  • bits - volitelný počet bitů
  • opakovat - volitelný počet opakování
  • čekat - zpoždění v msekundách před provedením dalšího příkazu.

Zařízení může být také „nulové“pro získání pouze zpoždění, „makro“pro použití makra uvedeného parametrem nebo „detekovat“pro použití funkce detekce Alexa (viz dále).

Příspěvek do /irjson se skládá ze struktury json jako

{

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

}

Sekvence může mít libovolnou délku a zařízení mohou být odkazy na makra.

Stejnou strukturu lze použít k definování maker. Stačí zahrnout makro: „macroname“, na nejvyšší úrovni, např. po autorizaci Skutečný obsah je uložen v souboru s názvem macroname.txt

Makra lze odstranit jejich definováním bez „příkazů“.

Další webové příkazy

  • /recent (uvádí nedávnou aktivitu)
  • /check (ukazuje základní stav)
  • / (načte webový formulář pro ruční odeslání příkazů)
  • / upravit (načte webový formulář pro zobrazení seznamu souborů a odstranění/ nahrání souborů)
  • /edit? soubor = název souboru (zobrazit obsah konkrétního souboru)
  • /reload (znovu načte názvy tlačítek a soubory zařízení. Použijte po změně kteréhokoli z nich)

Krok 5: Hlasové ovládání Alexa pomocí IFTTT

Nejjednodušší způsob, jak používat ir Blaster s Alexou, je použít IFTTT jako bránu.

První port přesměruje port použitý pro váš blaster ve vašem routeru, aby byl přístupný z internetu. Může být dobré použít službu dns, jako je freedns, aby vaše směrovače získaly název externí IP a usnadnily manipulaci, pokud se tato IP změní.

Nastavte si účet IFTTT a povolte kanál Maker Webhooks a kanál Alexa. Když to uděláte, budete se muset přihlásit k povolení přístupu IFTT.

Vytvořte spouštěč IF pomocí kanálu IFTTT Alexa, vyberte akci na základě fráze a zadejte požadovanou frázi (např. Zvýšení hlasitosti).

Vytvořte akci výběrem kanálu webhooks Maker. Zadejte do pole URL něco jako

myip: port/irjson? plain = {"auth": "1234", "komunikační …

Tato akce bude odeslána do ir blasteru, kde se pokusí provést zvýšení hlasitosti makra. V případě potřeby zde může být konkrétní zařízení/tlačítka, ale považuji za lepší definovat a používat makra, protože sekvenci akcí lze snadno změnit pouhým předefinováním makra.

Pro každý příkaz je potřeba samostatný IFTTT aplet.

Krok 6: Nativní hlasová dovednost Alexa

Místo IFTTT lze ve vývoji Alexa vybudovat vlastní dovednost. To centralizuje veškeré zpracování na jednom místě a znamená, že nemusíte pro každé tlačítko vytvářet samostatné akce.

Musíte se zaregistrovat jako vývojář Amazon Alexa a musíte se zaregistrovat u lambda služby konzoly Amazon AWS. Budete se také muset podívat na výukové programy, abyste trochu porozuměli procesu.

Na straně vývojáře Alexa musíte vytvořit novou vlastní dovednost, zadat její spouštěcí slovo a vytvořit seznam příkazových slov, jako je zvýšení hlasitosti, průvodce atd.

Alexa poté frázi odešle do programu běžícího na službě lamda, který tuto frázi interpretuje a provede URL volání Ir blasteru, aby akci provedl.

Do git jsem zahrnul schéma záměru Alexa a funkci lambda konzoly, kterou používám. Adresu URL bude nutné upravit tak, aby odkazovala na příslušnou IP adresu a měla správnou autorizaci. Aby to bylo jednoduché, funkce lambda volá makro, které má mezeru zbavenou malé verze fráze. Pokouší se také odstranit klíčové slovo spouště, které může být někdy zahrnuto. Např. blaster VOLUME up vyvolá makro s názvem volumeup, pokud bylo spouštěcím slovem blaster.

Krok 7: Alexa Activate Detector

Ačkoli je rozpoznávání hlasu Echo / Dot dobré, někdy může být zmatené, pokud zvuk hraje například z televize, pokud se nepřiblížíte a nebudete mluvit nahlas.

Abych to vylepšil, přidal jsem do svého Dot aktivační detektor. Jakmile se klíčové slovo (říká se Alexa) rozsvítí prstenec LED. Detektor to přivede do blasteru, kde použije alexaonské makro ke ztlumení televize, podobně na konci zpracování příkazu zhasnou světla a makro alexaoff obnoví zvuk.

Příkaz 'detekovat' lze také použít k zapnutí a vypnutí. Například například používám počáteční makro otočení, které umožňuje detekci, a makro odbočení jej deaktivuje. To lze také použít v akčních makrech k podpoře skutečného ztlumení a zapnutí zvuku, což by jinak bylo problematické.

Fyzický detektor je odpor závislý na světle, který obvod podporuje. Namontuji svůj na Tečku pomocí 3D tištěného držáku

Doporučuje: