Sadržaj:

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

Video: ESP-12 Infra Red Blaster: 7 koraka

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

Infracrveni blaster za daljinsko upravljanje pomoću esp8266

Prenosi kodove za daljinsko upravljanje primljene s weba koji podržavaju više izlaznih uređaja.

Ugrađena jednostavna web stranica uglavnom za testiranje.

Normalno se koristi putem POST poruka koje mogu doći s web stranica ili iz IFTTT / Alexa glasovne kontrole.

Podržava detektor aktiviranja Amazon Echo / Dot za isključivanje / utišavanje čim se izgovori riječ za aktiviranje.

Naredbe su ili pojedinačne naredbe ili sekvence. Nizovi se mogu pohraniti kao imenovane makronaredbe koje se zatim mogu koristiti kao naredbe ili u drugim nizovima.

Najnovija povijest i popis makronaredbi mogu se dobiti putem web sučelja

Podržava OTA učitavanje novog firmvera i koristi knjižnicu WifiManager za početno postavljanje WiFi -ja

Korak 1: Hardver

Hardver
Hardver
Hardver
Hardver

Koristi sljedeće komponente

  • ESP-12F modul
  • Regulator od 3,3 V (regulator min. MP2307)
  • MOSFET sklopke (AO3400)
  • Infracrveni odašiljač (3 mm)
  • Otpornik ovisan o svjetlu GL2258 (opcijski Alexa detektor aktivnosti)
  • Otpornici
  • Kondenzator za odvajanje (20uF)
  • USB ženska utičnica (po mogućnosti lemljenje s rukavom)
  • 3 pinska IC utičnica za Alexa detektor
  • Mehanički dijelovi (mogu se ispisati 3D)

Može se sastaviti u projektnu kutiju ESP-12F

  • Priključite regulator na USB priključak i umetnite ga u kutiju
  • Napravite infracrveni upravljački program na mali komad vero ploče (3 žice, +5V, 0V ulaz vrata)
  • Priključite IC upravljački program na USB +5V, 0V
  • Umetnite 3 -polnu IC utičnicu u projektnu kutiju ako koristite Alexa detektor. Spojite na +3.3V, 0V i žicu za ulaz
  • Napravite ESP-12F s 2,2K od GPIO15 do GND, EN do Vdd, 4K7 GPIO13 do Vdd, Alexa ulaz do GPIO13, IR upravljački program do GPIO14, 0V i Vdd do 3,3 V
  • Napravite Alexa detektor i međuspremnik za podršku ako je potrebno.

Imajte na umu da bi moglo biti lakše prvo programirati ESP-12F ako imate neku vrstu uređaja za serijsko programiranje ili privremenu matičnu ploču poput ove za spajanje na serijske portove.

Naknadno programiranje može se obaviti pomoću ugrađenog OTA ažuriranja.

Korak 2: Softver

Ir Blaster koristi Arduino skicu dostupnu na githubu

To je potrebno prilagoditi lokalnim uvjetima, a zatim sastaviti u okruženju esp8266 Arduino.

Potrebne su sljedeće biblioteke, većina je standardnih ili se mogu dodati. Posljednja dva su uključena u git.

  • ESP8266WiFi
  • ESP8266WebServer
  • FS.h
  • DNS poslužitelj
  • ESP8266mDNS
  • ESP8266HTTPUpdateServer
  • ArduinoJson
  • BitTx (uključeno u Git)
  • BitMessages (uključeno u Git)

Stavke na skici koje treba promijeniti uključuju

  • Autorizacijski kôd za pristup internetu AP_AUTHID
  • Lozinka Wfi upravitelja WM_PASSWORD
  • OTA lozinka za firmver update_password
  • Novi IC uređaji / kodovi gumba (pogledajte kasnije)

Nakon što se to učini, prvo ga treba učitati uobičajenim serijskim učitavanjem.

Kako se koristi SPIFFS, memoriju treba pripremiti instaliranjem i korištenjem arduino ESP8266 alata za prijenos podataka skica. To će prenijeti podatkovnu mapu kao početni sadržaj SPIFFS

Kad se uređaj ne može povezati s lokalnom mrežom (što će se dogoditi prvi put), Wifi upravitelj će stvoriti pristupnu točku (192.168.4.1). Povežite se na ovu mrežu s telefona ili tableta, a zatim idite na 192.168.4.1 Dobit ćete web sučelje za povezivanje s lokalnim WiFi -jem. To će koristiti sljedeći pristupi. Ako se lokalna mreža promijeni, vratit će se na ovaj način konfiguracije.

Naknadno ažuriranje može se izvršiti sastavljanjem izvozne binarne datoteke u Arduino okruženju, a zatim pristupom OTA sučelju na ip/firmware -u.

Korak 3: Dodajte kodove uređaja / gumba

Napomena: Ovaj odjeljak se promijenio u odnosu na prethodnu metodu u kojoj je konfiguracija prethodno kompilirana u kôd. Sada koristi datoteke koje se učitavaju iz sustava arhiviranja SPIFF -ova. To uvelike olakšava prijenos novih definicija.

Definicije gumba uključene su u datoteku buttonnames.txt. To je globalni popis imena na svim daljinskim upravljačima koji se koriste jer su mnogi nazivi uobičajeni. Kako je isporučeno, ovo sadrži pojedinosti o daljinskim upravljačima koje koristim. Mogu se dodati novi unosi. Ima mjesta za ukupno 160 imena, ali to se može povećati prilagodbom konstanti u bitMessages.h i ponovnim sastavljanjem. Ovdje definirani nazivi nazivi su koji se koriste pri slanju naredbi.

Svaki udaljeni uređaj definiran je u datoteci pod nazivom dev_remotename. Sastoji se od odjeljka konfiguracije na vrhu, a zatim tablice preslikavanja od naziva gumba do kodova koji su šesterokutni nizovi koji sadrže bitove za slanje. Potrebno je definirati samo potrebne nazive gumba.

Odjeljak konfiguracije na početku datoteke uređaja sadrži parametre koje treba koristiti pri slanju koda. Prvi unos je naziv uređaja koji se koristi pri slanju naredbe. Ostali parametri opisani su u readme -u na mjestu koda.

Većina daljinskih upravljača pripada jednoj od 3 kategorije protokola (nec, rc5 i rc6). nec je vjerojatno najčešći i ima jednostavnu strukturu zaglavlja i vrijeme bitova. Postoji mala varijanta ovoga koja se razlikuje samo u vremenu impulsa zaglavlja. rc5 i rc6 protokoli su koje je definirao Philips, ali ih koriste i neki drugi proizvođači. Oni su malo kompliciraniji, a rc6 posebno ima poseban zahtjev za određivanje vremena za jedan od bitova.

Za snimanje kodova za novi daljinski upravljač koristim IC prijemnik (TSOP) koji se obično koristi s priključnim daljinskim prijemnicima. Time se vrši osnovno dekodiranje i daje izlaz na logičkoj razini. Obično dolaze s priključkom od 3,5 mm s priključcima +5V, GND, DATA. Žrtvovao sam jedan, skratio vodstvo i provukao ga kroz obrnuti 3.3V međuspremnik za napajanje GPIO pina na Raspberry Pi.

Zatim koristim python alat rxir.py (u mapi git tools) za hvatanje kodova. Kako bi olakšao snimanje velikog broja gumba, alat koristi datoteku za definiranje teksta za definiranje gumba na daljinskom upravljaču i samo su nazivi gumba u grupi na daljinskom upravljaču. Na primjer, netko može imati novi daljinski upravljač Sony i postavlja 3 tekstualne datoteke pod nazivom sonytv-cursor, sonytv-numbers, sonytv-playcontrols svaka s odgovarajućim imenima gumba. Alat će zatražiti uređaj (sonytv), odjeljak (pokazivač) i koji protokol koristiti (nec, nec1, rc5, rc6). Zatim će se uzastopno pitati za svaki pritisak gumba i upisivati rezultate u datoteku sonytv-ircodes. Odjeljci se mogu ponoviti ako je potrebno za provjeru dobrog snimanja. Bitovi iz.ircode datoteke mogu se uređivati u tablice BitDevices.

Korak 4: Kontrola weba i makronaredbe

Osnovna web kontrola je ili jedan get ili json post koji može sadržavati niz.

Dolazak do /ir ima 6 parametara

  • auth - sadrži autorizacijski kod
  • uređaj - naziv udaljenog uređaja
  • parametar - naziv gumba
  • bitovi - izborni broj bitova
  • repeat - izborni broj ponavljanja
  • wait - kašnjenje u msekundama prije nego što se sljedeća naredba može izvršiti.

Uređaj također može biti "null" za dobivanje samo odgode, "macro" za korištenje makronaredbe na koju se odnosi parametar, ili "detect" za korištenje značajke za otkrivanje Alexa (vidi kasnije).

Post na /irjson sastoji se od json strukture poput

{

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

}

Slijed može biti bilo koje duljine, a uređaji mogu biti makro reference.

Ista se struktura može koristiti za definiranje makronaredbi. Samo uključite makro: "makronaziv", na najvišoj razini, npr. nakon aut. Stvarni sadržaj pohranjen je u datoteci koja se zove macroname.txt

Makroe možete izbrisati definirajući ih bez "naredbi".

Ostale web naredbe

  • /recent (popis nedavnih aktivnosti)
  • /check (prikazuje osnovni status)
  • / (učitava web obrazac za ručno slanje naredbi)
  • / edit (učitava web obrazac za pregled popisa datoteka i brisanje/ prijenos datoteka)
  • /edit? file = naziv datoteke (prikaz sadržaja određene datoteke)
  • /ponovno učitavanje (ponovno učitava nazive gumba i datoteke uređaja. Upotrijebite nakon promjene bilo kojeg od ovih)

Korak 5: Alexa glasovna kontrola pomoću IFTTT -a

Najjednostavniji način korištenja ir Blastera s Alexa je korištenje IFTTT -a kao pristupnika.

Prvi port prema naprijed na portu koji se koristi za vaš blaster na usmjerivaču tako da je dostupan s interneta. Može biti dobro upotrijebiti dns uslugu kao što je Freedns kako biste usmjerivačima dali naziv vanjskog ip -a i olakšali rukovanje ako se ovaj ip promijeni.

Postavite IFTTT račun i omogućite Maker Webhooks kanal i Alexa kanal. To ćete morati prijaviti na web mjesto Amazon kako biste omogućili IFTT pristup.

Izradite IF okidač pomoću IFTTT Alexa kanala, odaberite radnju na temelju fraze i unesite izraz koji želite (npr. Pojačavanje glasnoće).

Izradite radnju odabirom kanala Maker webhooks. Unesite u polje URL nešto poput

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

Ova će radnja biti poslana na ir blaster gdje će pokušati izvesti povećanje volumena makronaredbi. Ovdje mogu biti određeni uređaji/gumbi ako se želi, ali smatram da je bolje definirati i koristiti makronaredbe jer se tada slijed radnji može lako promijeniti samo redefiniranjem makronaredbe.

Za svaku naredbu potreban je zaseban IFTTT applet.

Korak 6: Nativna Alexa glasovna vještina

Umjesto IFTTT -a, unutar Alexa razvoja možete izgraditi prilagođenu vještinu. Ovo centralizira svu obradu na jednom mjestu i znači da ne morate stvarati zasebne radnje za svaki gumb.

Morate se registrirati kao programer Amazon Alexa i registrirati se na lambda usluzi Amazon AWS konzole. Također ćete morati pogledati tutorijale da biste malo razumjeli proces.

Na strani programera Alexa morate stvoriti novu prilagođenu vještinu, unijeti njezinu pokretačku riječ i stvoriti popis naredbenih riječi poput pojačavanja zvuka, vodiča itd.

Alexa zatim šalje izraz u program koji radi na usluzi lamda koji tumači izraz i upućuje URL poziv Ir blasteru kako bi ga aktivirao.

Uključio sam shemu namjere Alexa i lambda funkciju konzole koju koristim u git. URL će morati biti izmijenjen kako bi se odnosio na odgovarajući IP i imao pravo autorizacije. Da pojednostavimo, lambda funkcije pozivaju makronaredbu koja sadrži malu verziju izraza izraza. Također pokušava ukloniti ključnu riječ pokretača koja se ponekad može uključiti. Npr. blaster VOLUME up će pozvati makronaredbu koja se zove volumeup ako je riječ okidača bila blaster.

Korak 7: Alexa aktivirajte detektor

Iako je prepoznavanje glasa Echo / Dot dobro, ponekad se može zbuniti ako se zvuk reproducira s recimo TV -a, osim ako se ne približite i ne progovorite glasno.

Da bih to poboljšao, svojoj sam Točki dodao detektor za aktiviranje. Čim ključna riječ (kaže se Alexa) zasvijetli prsten LED dioda. Detektor to šalje u blaster gdje će upotrijebiti makronaredbu alexaon za isključivanje televizora, slično na kraju obrade naredbe svjetla se isključuju, a makronaredba alexaoff vraća zvuk.

Naredba 'detektiraj' također se može koristiti za uključivanje i isključivanje ovoga. Tako, na primjer, koristim početnu makro skretanja za omogućavanje otkrivanja, a makro isključenja da je onemogućim. Ovo se također može koristiti unutar makronaredbi za podršku stvarnoj naredbi za isključivanje i uključivanje zvuka koja bi inače bila problematična.

Fizički detektor je otpornik ovisan o svjetlu koji krug podržava. Ja svoje montiram na Dot s 3D tiskanim nosačem

Preporučeni: