Tartalomjegyzék:

ESP-12 infravörös robbantó: 7 lépés
ESP-12 infravörös robbantó: 7 lépés

Videó: ESP-12 infravörös robbantó: 7 lépés

Videó: ESP-12 infravörös robbantó: 7 lépés
Videó: Esp12F Smart Switch Making + Tutorial how to setup Raspbian & mosquito broker on Raspberry PI. 2024, November
Anonim
ESP-12 infravörös robbantó
ESP-12 infravörös robbantó

Infravörös távirányító robbantó az esp8266 segítségével

Több kimeneti eszközt támogató webes távvezérlő kódokat továbbít.

Beépített egyszerű weboldal főleg tesztelésre.

A normál használat POST üzeneteken keresztül történik, amelyek weboldalakról vagy IFTTT / Alexa hangvezérlésből származhatnak.

Támogatja az Amazon Echo / Dot aktiválás érzékelőt, hogy elnémítsa / elhallgassa, amint az aktivált szó kimondásra kerül.

A parancsok egyes parancsok vagy sorozatok. A szekvenciák elnevezett makróként tárolhatók, amelyeket aztán parancsként vagy más sorozatokban lehet használni.

A legújabb előzmények és makrók listája a webes felületen keresztül érhető el

Támogatja az új firmware OTA feltöltését, és a WifiManager könyvtárat használja a kezdeti wifi beállításhoz

1. lépés: Hardver

Hardver
Hardver
Hardver
Hardver

A következő összetevőket használja

  • ESP-12F modul
  • 3.3V szabályozó (MP2307 mini bak szabályozó)
  • MOSFET kapcsolók (AO3400)
  • Infravörös sugárzó (3 mm)
  • Fényfüggő ellenállás GL2258 (opcionális Alexa aktivitásérzékelő)
  • Ellenállások
  • Leválasztó kondenzátor (20uF)
  • USB női aljzat (lehetőleg forrasztásbarát, hüvellyel
  • 3 tűs IC aljzatcsík az Alexa érzékelőhöz
  • Mechanikus alkatrészek (3D nyomtatható)

ESP-12F projektdobozba szerelhető

  • Csatlakoztassa a szabályozót az USB csatlakozóhoz, és helyezze be a dobozba
  • Töltse fel az IR meghajtót egy kis darab vero kártyára (3 vezeték, +5 V, 0 V kapu bemenet)
  • Csatlakoztassa az IR meghajtót az USB +5V, 0V -hoz
  • Helyezze be a 3 tűs IC aljzatot a projektdobozba, ha Alexa érzékelőt használ. Csatlakoztassa a +3.3V, 0V és a vezetéket a bemenethez
  • Töltse fel az ESP-12F-t 2.2K-val GPIO15-ről GND-re, EN-ről Vdd-re, 4K7 GPIO13-ról Vdd-re, Alexa-bemenetről GPIO13-ra, IR-illesztőprogramról GPIO14-re, 0V-ról és Vdd-ről 3.3V-ra
  • Töltse fel az Alexa érzékelőt és szükség esetén támogassa a puffert.

Ne feledje, hogy könnyebb lehet először az ESP-12F programozása, ha rendelkezik valamilyen soros programozási lehetőséggel vagy ideiglenes kenyeretáblázó eszközzel, mint ez a soros portokhoz való csatlakozáshoz.

A későbbi programozás elvégezhető a beépített OTA frissítés használatával.

2. lépés: Szoftver

Az ir Blaster a githubon elérhető Arduino vázlatot használja

Ezt a helyi körülményekhez kell igazítani, majd esp8266 Arduino környezetben kell összeállítani.

A következő könyvtárak szükségesek, a legtöbb szabványos vagy hozzáadható. Az utolsó kettő benne van a gitben.

  • ESP8266WiFi
  • ESP8266WebServer
  • FS.h
  • DNS -kiszolgáló
  • ESP8266mDNS
  • ESP8266HTTPUddateServer
  • ArduinoJson
  • BitTx (a Git tartalmazza)
  • BitMessages (a Git tartalmazza)

A vázlat módosítandó elemei közé tartozik

  • Az AP_AUTHID webes hozzáférés engedélyezési kódja
  • Wfi kezelői jelszó WM_PASSWORD
  • firmware OTA jelszó update_password
  • Új IR eszközök / gombkódok (lásd később)

Ha ez megtörtént, akkor először a hagyományos soros feltöltéssel kell feltölteni.

SPIFFS használata esetén a memóriát az arduino ESP8266 Sketch Data feltöltő eszköz telepítésével és használatával kell előkészíteni. Ez feltölti az adatmappát kezdeti SPIFFS -tartalomként

Ha az eszköz nem tud csatlakozni a helyi hálózathoz (mint az első alkalommal), akkor a Wifi manager létrehoz egy hozzáférési pontot (192.168.4.1). Csatlakozzon ehhez a hálózathoz telefonról vagy táblagépről, majd keresse meg a 192.168.4.1 webes felületet. Kap egy webes felületet a helyi wifi -hez való csatlakozáshoz. A későbbi hozzáférések ezt fogják használni. Ha a helyi hálózat megváltozik, akkor visszakapcsol ebbe a konfigurációs módba.

A későbbi frissítés elvégezhető export bináris összeállításával Arduino környezetben, majd az OTA interfész elérésével az ip/firmware címen.

3. lépés: Eszköz / gomb kódok hozzáadása

Megjegyzés: Ez a szakasz megváltozott a korábbi módszerhez képest, ahol a konfigurációt korábban a kódba fordították. Most az SPIFF -fájlrendszerből betöltött fájlokat használja. Ez sokkal könnyebbé teszi az új definíciók feltöltését.

A gombdefiníciókat a buttonnames.txt fájl tartalmazza. Ez egy globális névlista az összes használt távirányítón, mivel sok név gyakori. A mellékelt tartalmazza az általam használt távirányítók adatait. Új bejegyzések adhatók hozzá. Összesen 160 név áll rendelkezésre, de ez növelhető a bitMessages.h állandóinak beállításával és az újrafordítással. Az itt definiált nevek a parancsok küldésekor használandó nevek.

Minden távoli eszközt a dev_remotename nevű fájl definiál. Ez egy konfigurációs részből áll a tetején, majd egy leképezési táblázatból, amely a gombnevekről a kódokra vonatkozik, amelyek hexadecimális karakterláncok, amelyek az elküldendő biteket tartalmazzák. Csak a szükséges gombneveket kell megadni.

Az eszközfájl elején található konfigurációs szakasz tartalmazza a kód küldésekor használandó paramétereket. Az első bejegyzés a készülék neve, amelyet a parancs küldésekor használnak. Más paramétereket a kódoldalon található readme ismertet.

A legtöbb távirányító a 3 protokollkategória egyikébe tartozik (máshova, rc5 és rc6). A nec valószínűleg a leggyakoribb, egyszerű fejlécszerkezettel és bitidőzítéssel rendelkezik. Ennek van egy kis változata, amely csak a fejléc impulzus időzítésében különbözik. Az rc5 és rc6 a Philips által meghatározott protokollok, de néhány más gyártó is használja. Ezek egy kicsit bonyolultabbak, és különösen az rc6 -nak van egy speciális időzítési követelménye az egyik bithez.

Egy új távirányító kódjainak rögzítéséhez egy IR vevőt (TSOP) használok, amelyet általában a távoli vevőkészülékhez csatlakoztatnak. Ez elvégzi az alapvető dekódolást, és logikai szintű kimenetet ad. Általában 3,5 mm -es jack +5V, GND, DATA csatlakozóval rendelkeznek. Feláldoztam egyet, lerövidítettem az elvezetést, és átfordított 3,3 V -os pufferre tettem, hogy egy GPIO -tápot tápláljak egy Raspberry Pi -n.

Ezután az rxir.py python eszközt használom (a git tools mappában) a kódok rögzítéséhez. A nagyszámú gomb rögzítésének megkönnyítése érdekében az eszköz egy szövegdefiníciós fájl segítségével határozza meg a távvezérlő gombjait, és csak a gombok nevei a távirányító egy csoportjában. Például egy új Sony távirányítóval rendelkezhet, és egy 3 szöveges fájlt állíthat be, amelyeket sonytv-kurzornak, sonytv-számoknak, sonytv-playcontroloknak neveznek, mindegyikben a megfelelő gombnevek szerepelnek. Az eszköz megkérdezi az eszközt (sonytv), a (kurzor) és melyik protokollt kell használni (máshová nem sorolt, máshova nem sorolt, rc5, rc6). Ezt követően minden gombnyomás után sorban kéri, és írja be az eredményeket egy sonytv-ircodes fájlba. A szakaszok megismételhetők, ha szükséges, hogy ellenőrizzék, hogy a rögzítések jók. Az.ircodes fájl bitjei szerkeszthetők a BitDevices táblákban.

4. lépés: Webvezérlés és makrók

Az alap webvezérlés vagy egyetlen lekérés, vagy egy json bejegyzés, amely tartalmazhat egy sorozatot.

A get to /ir 6 paraméterrel rendelkezik

  • auth - tartalmazza az engedélyezési kódot
  • eszköz - a távoli eszköz neve
  • paraméter - a gomb neve
  • bit - opcionális bitszám
  • ismétlés - opcionális ismétlésszámlálás
  • várjon - késleltetés msecundban a következő parancs végrehajtása előtt.

Az eszköz lehet „null”, hogy csak késleltetést kapjon, „makró” lehet a paraméter által hivatkozott makró használatához, vagy „észlelhető” az Alexa észlelési funkció használatához (lásd később).

A /irjson bejegyzés egy olyan json szerkezetből áll, mint

{

"auth": "1234", "parancsok": [{"device": "yamahaAV", "paraméter": "hdmi4", "wait": "5000", "bit": "0", "ismételje": "1"}, {"device": "yamahaAV", "paraméter": "némítás", "várj": "100", "bit": "0", "ismételje": "1"}]

}

A szekvencia bármilyen hosszúságú lehet, az eszközök pedig makróhivatkozások.

Ugyanez a szerkezet használható a makrók meghatározására is. Csak adja hozzá a makrót: "macroname", a legfelső szinten pl. hitelesítés után A tényleges tartalmat a macroname.txt nevű fájl tárolja

A makrók törölhetők úgy, hogy "parancsok" nélkül határozzák meg őket.

Egyéb webes parancsok

  • /Recent (felsorolja a legutóbbi tevékenységeket)
  • /check (az alapállapotot mutatja)
  • / (betölt egy webes űrlapot a parancsok manuális küldéséhez)
  • / edit (betölti a webes űrlapot a fájlok megtekintéséhez és a fájlok törléséhez/ feltöltéséhez)
  • /edit? file = fájlnév (egy adott fájl tartalmának megtekintése)
  • /reload (újratölti a gombneveket és az eszközfájlokat. Használja ezek módosítása után)

5. lépés: Alexa hangvezérlés az IFTTT használatával

Az ir Blaster legegyszerűbb módja az Alexával az IFTTT átjáróként való használata.

Az első port továbbítsa a robbantójához használt portot az útválasztóban, hogy az internetről elérhető legyen. Jó lehet olyan dns szolgáltatást használni, mint a freedns, hogy nevet adjon az útválasztóinak a külső ip -nek, és megkönnyítse a kezelést, ha ez az IP megváltozik.

Állítson be IFTTT -fiókot, és engedélyezze a Maker Webhooks csatornát és az Alexa csatornát. Az IFTT -hozzáférés engedélyezéséhez be kell jelentkeznie az Amazon webhelyére.

Hozzon létre IF trigger -t az IFTTT Alexa csatorna használatával, válassza ki a műveletet egy kifejezés alapján, és írja be a kívánt kifejezést (pl. Hangerő növelése).

Hozza létre a műveletet a Maker webhooks csatornájának kiválasztásával. Írjon be valamit az URL mezőbe

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

Ezt a műveletet elküldi az ir blaster, ahol megpróbálja végrehajtani a makró hangerejét. Lehet itt egy adott eszköz/gomb, ha akarjuk, de jobbnak látom a makrók definiálását és használatát, mert akkor a műveletsor egyszerűen megváltoztatható a makró újradefiniálásával.

Minden parancshoz külön IFTTT kisalkalmazás szükséges.

6. lépés: Natív Alexa Voice Skill

Az IFTTT helyett egyéni készséget építhet az Alexa fejlesztésébe. Ez az összes feldolgozást egy helyre központosítja, és azt jelenti, hogy nem kell külön műveleteket létrehoznia minden egyes gombhoz.

Regisztrálnia kell magát Amazon Alexa fejlesztőként, és regisztrálnia kell az Amazon AWS konzol lambda szolgáltatásával. Meg kell néznie az oktatóanyagokat is, hogy egy kicsit megértse a folyamatot.

Az Alexa fejlesztői oldalán új egyéni készséget kell létrehoznia, be kell írnia a kiváltó szót, és létre kell hoznia a parancsszavak listáját, például hangerőt, útmutatót stb.

Ezután Alexa elküldi a kifejezést a lamda szolgáltatáson futó programnak, amely értelmezi a kifejezést, és URL -hívást intéz az Ir blasterhez, hogy cselekedjen.

Az Alexa szándékos sémát és a konzol lambda függvényét használtam a gitbe. Az URL -t módosítani kell, hogy a megfelelő IP -re hivatkozzon, és megfelelő jogosultsággal rendelkezzen. Az egyszerűség kedvéért a lambda függvények meghívnak egy makrót, amelynek a szóköz kisbetűs változata a kifejezésből áll. Ezenkívül megpróbálja eltávolítani az aktiváló kulcsszót, amely néha szerepelhet. Például. A blaster VOLUME up meghívja a volumeup nevű makrót, ha a kiváltó szó blaster volt.

7. lépés: Alexa aktiválja az érzékelőt

Bár az Echo / Dot hangfelismerés jó, néha zavarba jöhet, ha a hang mondjuk egy TV -ből szól, hacsak nem közelít és hangosan beszél.

Ennek javítása érdekében hozzáadtam egy aktiváló detektort a Dot -hoz. Amint a kulcsszó (Alexa mondják), felgyullad a LED -ek gyűrűje. Az érzékelő ezt betáplálja a blasterbe, ahol az alexaon makrót használja a TV némítására, hasonlóan a parancs feldolgozásának végén a lámpák kialszanak, és az alexaoff makró visszaállítja a hangot.

A „felismerés” paranccsal ezt is be- és kikapcsolhatja. Így például a kezdeti bekapcsolási makrót használom az észlelés engedélyezéséhez, és a kikapcsolási makrót annak letiltásához. Ez a műveleti makrókban is használható egy valódi némítás és némítás megszüntetéséhez, amely egyébként problémás lenne.

A fizikai érzékelő fényfüggő ellenállás, amelyet az áramkör támogat. Az enyémet a 3D -s nyomtatott konzol segítségével rögzítem a pontra

Ajánlott: