Sisällysluettelo:

ESP-12-infrapunapuhallin: 7 vaihetta
ESP-12-infrapunapuhallin: 7 vaihetta

Video: ESP-12-infrapunapuhallin: 7 vaihetta

Video: ESP-12-infrapunapuhallin: 7 vaihetta
Video: ДЕТИ ЛЕДИБАГ И СУПЕР-КОТА 😱 Сказки на ночь от Маринетт Miraculous Ladybug & Cat Noir in real life 2024, Heinäkuu
Anonim
ESP-12 Infrapuna-Blaster
ESP-12 Infrapuna-Blaster

Infrapunakaukosäädin, joka käyttää esp8266: ta

Lähettää Webistä vastaanotettuja kauko -ohjainkoodeja, jotka tukevat useita tulostuslaitteita.

Sisäänrakennettu yksinkertainen verkkosivu lähinnä testausta varten.

Normaali käyttö tapahtuu POST -viestien kautta, jotka voivat tulla verkkosivuilta tai IFTTT / Alexa -puheohjauksesta.

Tukee Amazon Echo / Dot -aktivointitunnistinta mykistääksesi / hiljentääksesi heti, kun aktivointisana on puhuttu.

Komennot ovat joko yksittäisiä komentoja tai jaksoja. Sekvenssit voidaan tallentaa nimettyinä makroina, joita voidaan sitten käyttää komentoina tai muissa jaksoissa.

Lähihistoria ja makrojen luettelo voidaan hakea verkkokäyttöliittymän kautta

Tukee uusien laiteohjelmistojen lataamista OTA: lle ja käyttää WifiManager -kirjastoa wifi: n käyttöönotossa

Vaihe 1: Laitteisto

Laitteisto
Laitteisto
Laitteisto
Laitteisto

Käyttää seuraavia komponentteja

  • ESP-12F-moduuli
  • 3,3 V: n säädin (MP2307 mini -buck -säädin)
  • MOSFET -kytkimet (AO3400)
  • Infrapunasäteilijä (3mm)
  • Valosta riippuva vastus GL2258 (valinnainen Alexa -aktiivisuustunnistin)
  • Vastukset
  • Kytkentäkondensaattori (20uF)
  • USB -naarasliitin (mieluiten juotosystävällinen holkilla
  • 3 -nastainen IC -liitäntäliuska Alexa -ilmaisimelle
  • Mekaaniset osat (voidaan tulostaa 3D -muodossa)

Voidaan koota ESP-12F-projektirasiaan

  • Kiinnitä säädin USB -liittimeen ja aseta se laatikkoon
  • Täytä infrapunaohjain pieneen palaan vero -korttia (3 johtoa, +5 V, 0 V porttitulo)
  • Liitä infrapuna -ohjain USB +5V, 0V
  • Aseta 3 -nastainen IC -liitin projektikoteloon, jos käytät Alexa -tunnistinta. Liitä +3.3V, 0V ja johto tuloa varten
  • Täytä ESP-12F 2,2K: lla GPIO15-GND, EN-Vdd, 4K7 GPIO13-Vdd, Alexa-tulo GPIO13: lle, IR-ohjain GPIO14: lle, 0V ja Vdd-3,3V
  • Täytä Alexa -ilmaisin ja tukipuskuri tarvittaessa.

Huomaa, että ESP-12F: n ohjelmointi voi olla helpompaa ensin, jos sinulla on jonkinlainen sarjaohjelmointitoiminto tai tällainen tilapäinen leipälautaustoiminto, jolla voit muodostaa yhteyden sarjaportteihin.

Myöhempi ohjelmointi voidaan tehdä käyttämällä sisäänrakennettua OTA -päivitystä.

Vaihe 2: Ohjelmisto

Ir Blaster käyttää Arduinon luonnosta, joka on saatavana githubista

Tämä täytyy säätää paikallisten olosuhteiden mukaan ja koota sitten esp8266 Arduino -ympäristöön.

Seuraavia kirjastoja tarvitaan, useimmat ovat vakio- tai lisättävissä. Kaksi viimeistä sisältyvät gitiin.

  • ESP8266WiFi
  • ESP8266WebServer
  • FS.h
  • DNS -palvelin
  • ESP8266mDNS
  • ESP8266HTTPPäivityspalvelin
  • ArduinoJson
  • BitTx (sisältyy Gitiin)
  • BitMessages (sisältyy Gitiin)

Luonnoksen muutettavat kohteet sisältävät

  • Verkkokäytön valtuutuskoodi AP_AUTHID
  • Wfi -hallintaohjelman salasana WM_PASSWORD
  • laiteohjelmiston OTA -salasana update_password
  • Uudet IR -laitteet / painikekoodit (katso myöhemmin)

Kun tämä on tehty, se on ensin ladattava käyttämällä tavanomaista sarjalatausta.

Kun käytetään SPIFFS -muistia, muisti on valmisteltava asentamalla ja käyttämällä arduino ESP8266 Sketch Data upload -työkalua. Tämä lähettää datakansion alkuperäisenä SPIFFS -sisällönä

Kun laite ei voi muodostaa yhteyttä paikalliseen verkkoon (kuten tapahtuu ensimmäistä kertaa), Wifi -hallinta luo tukiaseman (192.168.4.1). Muodosta yhteys tähän verkkoon puhelimella tai tabletilla ja selaa sitten osoitteeseen 192.168.4.1 Saat verkkokäyttöliittymän, jolla voit muodostaa yhteyden paikalliseen wifi -verkkoon. Myöhemmät käyttöoikeudet käyttävät tätä. Jos paikallinen verkko muuttuu, se vaihtaa takaisin tähän asetustilaan.

Myöhempi päivitys voidaan tehdä kääntämällä vientibinääri Arduino -ympäristössä ja siirtymällä sitten OTA -käyttöliittymään osoitteessa ip/firmware.

Vaihe 3: Lisää laite- / painikekoodit

Huomautus: Tämä osio on muuttunut edellisestä menetelmästä, jossa kokoonpano, joka on aiemmin koottu koodiksi. Se käyttää nyt SPIFF -tiedostojärjestelmästä ladattuja tiedostoja. Tämä helpottaa uusien määritelmien lataamista.

Painikkeiden määritelmät sisältyvät buttonnames.txt -tiedostoon. Se on maailmanlaajuinen luettelo kaikista käytössä olevista kaukosäätimistä, koska monet nimet ovat yleensä yleisiä. Toimituksen mukana tämä sisältää tietoja käyttämistäni kaukosäätimistä. Uusia merkintöjä voidaan lisätä. Tilaa on yhteensä 160 nimelle, mutta tätä voidaan lisätä säätämällä vakioita bitMessages.h -tiedostossa ja kääntämällä uudelleen. Tässä määritellyt nimet ovat komentoja lähetettäessä käytettäviä nimiä.

Jokainen etälaite on määritetty tiedostossa nimeltä dev_remotename. Se koostuu kokoonpano -osasta yläosassa ja sitten kartoitustaulukosta painikkeiden nimistä koodeihin, jotka ovat heksadesimaalijonoja, jotka sisältävät lähetettävät bitit. Vain tarvittavat painikkeiden nimet on määritettävä.

Laitetiedoston alussa oleva määritysosio sisältää parametreja, joita käytetään koodin lähettämisessä. Ensimmäinen merkintä on laitteen nimi, jota käytetään komennon lähettämisessä. Muut parametrit on kuvattu koodisivuston readme -ohjelmassa.

Useimmat kaukosäätimet kuuluvat johonkin kolmesta protokollaluokasta (muualle, rc5 ja rc6). Nec on luultavasti yleisin ja sillä on yksinkertainen otsikkorakenne ja bittien ajoitus. Tästä on pieni muunnelma, joka eroaa vain otsikon pulssiajoituksesta. rc5 ja rc6 ovat Philipsin määrittämiä protokollia, mutta myös jotkin muut valmistajat käyttävät niitä. Ne ovat hieman monimutkaisempia ja erityisesti rc6: lla on erityinen ajoitusvaatimus yhdelle bitistä.

Uuden kauko -ohjaimen koodien tallentamiseen käytän IR -vastaanotinta (TSOP), jota käytetään yleisesti kytkettyjen etävastaanottimien kanssa. Tämä suorittaa perusdekoodauksen ja antaa loogisen tason lähdön. Niissä on yleensä 3,5 mm: n liitin, jossa on +5 V, GND, DATA -liitännät. Uhrasin yhden, lyhensin johtoa ja laitoin sen käänteisen 3,3 V: n puskurin läpi syöttämään GPIO -nasta Raspberry Pi: lle.

Käytän sitten python -työkalua rxir.py (git tools -kansiossa) koodien tallentamiseen. Suuren määrän painikkeiden kaappaamisen helpottamiseksi työkalu käyttää tekstin määritystiedostoa kauko -ohjaimen painikkeiden määrittämiseen ja on vain kaukosäätimen ryhmän painikkeiden nimet. Esimerkiksi jollakin voi olla uusi Sony-kaukosäädin ja yksi määrittää kolme tekstitiedostoa nimeltä sonytv-kohdistin, sonytv-numerot, sonytv-playcontrols, joissa kussakin on painikkeiden nimet. Työkalu kysyy laitetta (sonytv), (kohdistin) ja mitä protokollaa käytetään (muualla luokittelematon, muualla1, rc5, rc6). Se pyytää sitten peräkkäin jokaista painikkeen painallusta ja kirjoittaa tulokset sonytv-ircodes-tiedostoon. Osat voidaan toistaa tarvittaessa, jotta voidaan varmistaa, että sieppaukset ovat hyviä.. Ircodes -tiedoston bittejä voidaan muokata BitDevices -taulukoihin.

Vaihe 4: Web -ohjaus ja makrot

Verkon perusohjaus on joko yksittäinen hankinta tai json -viesti, joka voi sisältää sekvenssin.

Get to /ir: ssa on 6 parametria

  • auth - sisältää valtuutuskoodin
  • laite - etälaitteen nimi
  • parametri - painikkeen nimi
  • bittiä - valinnainen bittiluku
  • toista - valinnainen toistoluku
  • odota - viive msekunteina, ennen kuin seuraava komento voidaan suorittaa.

Laite voi myös olla 'nolla' saadakseen vain viiveen, 'makro' käyttää parametrin tarkoittamaa makroa tai 'havaita' käyttääkseen Alexa -tunnistusominaisuutta (katso myöhemmin).

/Irjson -viesti koostuu json -rakenteesta, kuten

{

"auth": "1234", "komennot": [{"device": "yamahaAV", "parametri": "hdmi4", "odota": "5000", "bittiä": "0", "toista": "1"}, {"device": "yamahaAV", "parametri": "mykistys", "odota": "100", "bittiä": "0", "toista": "1"}]

}

Sarja voi olla mikä tahansa pituus ja laitteet voivat olla makroviittauksia.

Samaa rakennetta voidaan käyttää makrojen määrittämiseen. Sisällytä vain makro: "macroname", ylätasolla esim. todennuksen jälkeen Todellinen sisältö tallennetaan tiedostoon nimeltä macroname.txt

Makrot voidaan poistaa määrittelemällä ne ilman "komentoja".

Muut verkkokomennot

  • /viimeaikainen (luettelee viimeaikaiset toiminnot)
  • /check (näyttää perustilan)
  • / (lataa verkkolomakkeen komentojen lähettämiseksi manuaalisesti)
  • / edit (lataa verkkolomakkeen tiedostojen luettelon katsomiseen ja tiedostojen poistamiseen/ lataamiseen)
  • /edit? file = tiedostonimi (tarkista tietyn tiedoston sisältö)
  • /reload (lataa uudelleen painikkeiden nimet ja laitetiedostot. Käytä minkä tahansa näiden muuttamisen jälkeen)

Vaihe 5: Alexa -ääniohjaus IFTTT: n avulla

Yksinkertaisin tapa käyttää ir Blasteria Alexan kanssa on käyttää IFTTT: tä yhdyskäytävänä.

Siirrä portti ensin reitittimessäsi käytettävään porttiin, jotta se on käytettävissä Internetistä. Voi olla hyvä käyttää dns -palvelua, kuten freedns, antaa reitittimillesi ulkoisen IP -nimen ja helpottaa sen käsittelyä, jos tämä IP -osoite muuttuu.

Luo IFTTT -tili ja ota käyttöön Maker Webhooks -kanava ja Alexa -kanava. Sinun on kirjauduttava sisään Amazon -sivustoon, kun teet tämän, jotta IFTT -yhteys voidaan ottaa käyttöön.

Luo IF -laukaisin IFTTT Alexa -kanavan avulla, valitse lauseeseen perustuva toiminto ja kirjoita haluamasi lause (esim. Äänenvoimakkuuden lisääminen).

Luo toiminto valitsemalla Maker -webhooks -kanava. Kirjoita URL -kenttään jotain

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

Tämä toiminto lähetetään ir blasterille, jossa se yrittää suorittaa makron äänenvoimakkuuden lisäämisen. Yksi voi olla tietty laite/painikkeet täällä, jos halutaan, mutta minusta on parempi määritellä ja käyttää makroja, koska silloin toimintajärjestystä voidaan helposti muuttaa vain määrittämällä makro uudelleen.

Jokaista komentoa varten tarvitaan erillinen IFTTT -sovelma.

Vaihe 6: Alkuperäinen Alexa Voice Skill

IFTTT: n sijasta voit rakentaa mukautetun taidon Alexa -kehitykseen. Tämä keskittää kaiken käsittelyn yhteen paikkaan, eikä sinun tarvitse luoda erillisiä toimintoja kullekin painikkeelle.

Sinun on rekisteröidyttävä Amazon Alexa -kehittäjäksi ja rekisteröidyttävä Amazon AWS -konsolin lambda -palveluun. Sinun on myös tarkasteltava opetusohjelmia ymmärtääksesi prosessia hieman.

Alexa -kehittäjäpuolella sinun on luotava uusi mukautettu taito, kirjoitettava sen laukaisusana ja luotava luettelo komentosanoista, kuten äänenvoimakkuuden lisäys, opas jne.

Sitten Alexa lähettää lauseen lamda -palvelussa käynnissä olevaan ohjelmaan, joka tulkitsee lauseen ja soittaa URL -kutsun Ir -blasterille toimimaan.

Olen sisällyttänyt gitassa Alexan aikomusmallin ja konsolin lambda -toiminnon. URL -osoitetta on muutettava viittaamaan sopivaan IP -osoitteeseen ja sillä on oltava oikea valtuutus. Yksinkertaisuuden vuoksi lambda -funktiot kutsuvat makron, jossa on välilyönnillä lauseen pieni kirjain. Se yrittää myös poistaa käynnistysavainsanan, joka joskus voidaan sisällyttää. Esim. blaster VOLUME up kutsuu makron nimeltä volumeup, jos laukaisusana oli blaster.

Vaihe 7: Alexa Aktivoi ilmaisin

Vaikka Echo / Dot -puheentunnistus on hyvä, se voi joskus hämmentyä, jos ääni toistetaan esimerkiksi televisiosta, ellet pääse lähelle ja puhu ääneen.

Tämän parantamiseksi lisäsin pisteeseeni aktivointitunnistimen. Heti kun avainsana (Alexa sanotaan), LED -valot syttyvät. Ilmaisin syöttää tämän blasteriin, jossa se mykistää television alexaon -makron avulla, samoin komennon käsittelyn lopussa valot sammuvat ja alexaoff -makro palauttaa äänen.

Tunnista -komennolla voidaan myös kytkeä tämä päälle ja pois päältä. Joten esimerkiksi käytän alkuperäistä käännösmakroa havainnon käyttöön ottamiseksi ja sammutusmakro sen poistamiseksi käytöstä. Tätä voidaan käyttää myös toimintamakroissa tukemaan todellista mykistystä ja mykistyksen poistamista, mikä muuten olisi ongelmallista.

Fyysinen ilmaisin on valosta riippuvainen vastus, jota piiri tukee. Asennan omani pisteeseen 3D -tulostetulla kiinnikkeellä

Suositeltava: