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, Juli
Anonim
ESP-12 Infra Red Blaster
ESP-12 Infra Red Blaster

Infra crveni daljinski upravljač 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 imenovani makroi koji se zatim mogu koristiti kao naredbe ili u drugim nizovima.

Najnovija historija i lista makroa mogu se dobiti putem web sučelja

Podržava OTA učitavanje novog firmvera i koristi biblioteku WifiManager za početno postavljanje WiFi mreže

Korak 1: Hardver

Hardver
Hardver
Hardver
Hardver

Koristi sljedeće komponente

  • ESP-12F modul
  • 3.3V regulator (MP2307 mini buck regulator)
  • MOSFET prekidači (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 sa rukavom)
  • 3 -polna IC utičnica za Alexa detektor
  • Mehanički dijelovi (mogu se štampati 3D)

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

  • Priključite regulator na USB konektor i umetnite ga u kutiju
  • Napravite IC 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 sa 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 programa za serijsko programiranje ili privremenu matičnu ploču poput ove za povezivanje sa serijskim portovima.

Naknadno programiranje se može 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 esp8266 Arduino okruženju.

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

  • ESP8266WiFi
  • ESP8266WebServer
  • FS.h
  • DNSServer
  • 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 menadžera WM_PASSWORD
  • OTA lozinka za firmver update_password
  • Novi IC uređaji / kodovi dugmadi (pogledajte kasnije)

Kada se to učini, prvo ga treba učitati uobičajenim serijskim otpremanjem.

Kako se koristi SPIFFS, memoriju treba pripremiti instaliranjem i upotrebom arduino ESP8266 alata za prijenos podataka skice. Ovo će učitati mapu podataka kao početni SPIFFS sadržaj

Kada 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. Ovo ć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 interfejsu na ip/firmware -u.

Korak 3: Dodajte kodove uređaja / dugmeta

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

Definicije dugmeta su uključene u datoteku buttonnames.txt. To je globalna lista imena na svim daljinskim upravljačima koji se koriste jer su mnogi nazivi uobičajeni. Kako je isporučeno, ovo sadrži detalje o daljinskim upravljačima koje koristim. Mogu se dodati novi unosi. Ima prostora za ukupno 160 imena, ali se to može povećati prilagođavanjem konstanti u bitMessages.h i ponovnim kompajliranjem. Ovdje definirana imena su imena koja se koriste pri slanju naredbi.

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

Odeljak za konfiguraciju 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 su opisani 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 po vremenu impulsa zaglavlja. rc5 i rc6 su protokoli koje je definirao Philips, ali ih koriste i neki drugi proizvođači. Oni su malo kompliciraniji i 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 sa priključnim daljinskim prijemnicima. Ovo radi osnovno dekodiranje i daje izlaz na logičkom nivou. Obično dolaze s priključkom od 3,5 mm s priključcima +5V, GND, DATA. Žrtvovao sam jedan, skratio vod i provukao ga kroz invertirajući 3.3V bafer za napajanje GPIO pina na Raspberry Pi.

Zatim koristim python alat rxir.py (u mapi git tools) za hvatanje kodova. Da bi se olakšalo korištenje pri snimanju velikog broja gumba, tada alat koristi datoteku za definiciju teksta za definiranje gumba na daljinskom upravljaču i samo su nazivi gumba u grupi na daljinskom upravljaču. Na primjer, neko može imati novi Sony daljinski upravljač i postavlja 3 tekstualne datoteke pod nazivom sonytv-cursor, sonytv-numbers, sonytv-playcontrols svaka sa 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 na dugme i upisivati rezultate u datoteku sonytv-ircodes. Odeljci se mogu ponoviti ako je potrebno da se proveri da li su snimci dobri. Bitovi iz.ircodes datoteke mogu se uređivati u tablice BitDevices.

Korak 4: Web kontrola i makroi

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

Get to /ir ima 6 parametara

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

Uređaj može biti i "null" da dobije samo kašnjenje, "macro" za korištenje makroa na koji se parametar odnosi, ili "detect" za korištenje funkcije Alexa detekcije (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"}]

}

Niz može biti bilo koje dužine, a uređaji mogu biti makro reference.

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

Makroi se mogu izbrisati definiranjem bez "naredbi".

Ostale web komande

  • /recent (navodi nedavne aktivnosti)
  • /check (prikazuje osnovni status)
  • / (učitava web obrazac za ručno slanje naredbi)
  • / uredi (učitava web obrazac za pregled liste datoteka i brisanje/ otpremanje datoteka)
  • /edit? file = naziv datoteke (prikaz sadržaja određene datoteke)
  • /ponovno učitavanje (ponovo učitava nazive dugmadi i datoteke uređaja. Koristite nakon promjene bilo čega od ovoga)

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 proslijedite port 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 ime 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. Morat ćete se prijaviti na web lokaciju Amazon kako biste to učinili kako biste omogućili IFTT pristup.

Kreirajte IF okidač pomoću IFTTT Alexa kanala, odaberite radnju na osnovu fraze i unesite frazu koju želite (npr. Pojačavanje zvuka).

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

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

Ova radnja će biti poslana na ir blaster gdje će pokušati izvršiti povećanje volumena makroa. Ovdje mogu biti određeni uređaji/tipke ako se želi, ali smatram da je bolje definirati i koristiti makroe jer se tada niz akcija može lako promijeniti samo redefiniranjem makronaredbe.

Za svaku naredbu potreban je poseban IFTTT aplet.

Korak 6: Native 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 svako dugme.

Morate se registrirati kao programer Amazon Alexa i registrirati se na lambda servisu Amazon AWS konzole. Morat ćete pogledati i vodiče da biste malo razumjeli proces.

Na strani programera Alexa morate stvoriti novu prilagođenu vještinu, unijeti pokretačku riječ i stvoriti popis naredbenih riječi kao što su pojačavanje zvuka, vodič itd.

Alexa zatim šalje frazu u program koji radi na lamda servisu koji tumači frazu i upućuje URL poziv Ir blasteru da je aktivira.

Uključio sam šemu namjere Alexa i lambda funkciju konzole koju koristim u git. URL će biti potrebno izmijeniti kako bi se odnosio na odgovarajući ip i imao pravo ovlaštenja. Da pojednostavimo, lambda funkcije pozivaju makro koji u verziji fraze ima mala slova. Također pokušava ukloniti ključnu riječ pokretača koja se ponekad može uključiti. Npr. blaster VOLUME up će pozvati makro koji se zove volumeup ako je pokretačka riječ 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 televizora, osim ako se ne približite i ne progovorite glasno.

Da bih to poboljšao, dodao sam detektor za aktiviranje na moju Točku. Čim ključna reč (kaže se Alexa) zasvetli prsten LED dioda. Detektor šalje ovo u blaster gdje će koristiti alexaon makro za isključivanje zvuka na televizoru, slično na kraju obrade naredbe svjetla se isključuju, a alexaoff makro vraća zvuk.

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

Fizički detektor je otpornik ovisan o svjetlosti koji krug podržava. Montiram svoj na Dot pomoću 3D štampanog držača

Preporučuje se: