Innholdsfortegnelse:
- Trinn 1: Maskinvare
- Trinn 2: Programvare
- Trinn 3: Legg til enhets- / knappekoder
- Trinn 4: Nettkontroll og makroer
- Trinn 5: Alexa Voice Control ved hjelp av IFTTT
- Trinn 6: Native Alexa Voice Skill
- Trinn 7: Alexa Aktiver detektor
Video: ESP-12 Infra Red Blaster: 7 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:25
Infra Red fjernkontroll blaster med esp8266
Overfører fjernkontrollkoder mottatt fra web som støtter flere utdataenheter.
Bygget i enkel webside hovedsakelig for testing.
Normal bruk er via POST -meldinger som kan komme fra nettsider eller fra IFTTT / Alexa -talekontroll.
Støtter en Amazon Echo / Dot -aktiveringsdetektor for å dempe / dempe så snart aktiveringsordet er talt.
Kommandoer er enten enkeltkommandoer eller sekvenser. Sekvenser kan lagres som navngitte makroer som deretter kan brukes som kommandoer eller i andre sekvenser.
Nyere historie og liste over makroer kan fås via webgrensesnittet
Støtter OTA -opplasting av ny fastvare og bruker WifiManager -bibliotek for første oppsett av wifi
Trinn 1: Maskinvare
Bruker følgende komponenter
- ESP-12F-modul
- 3.3V regulator (MP2307 mini buck regulator)
- MOSFET -brytere (AO3400)
- Infra Red emitter (3mm)
- Lysavhengig motstand GL2258 (valgfri Alexa aktivitetsdetektor)
- Motstander
- Frakoblingskondensator (20uF)
- USB hunkontakt (helst loddetinnvennlig med hylse
- 3 -pinners IC -kontaktlist for Alexa -detektor
- Mekaniske deler (kan skrives ut i 3D)
Kan monteres i ESP-12F prosjektboks
- Fest regulatoren til USB -kontakten og sett den inn i esken
- Gjør IR -driveren på et lite verobord (3 ledninger, +5V, 0V gateinngang)
- Koble IR -driveren til USB +5V, 0V
- Sett inn 3 -pinners IC -kontakt i prosjektboksen hvis du bruker Alexa -detektor. Koble til +3.3V, 0V og ledning for inngang
- Lag ESP-12F med 2,2K fra GPIO15 til GND, EN til Vdd, 4K7 GPIO13 til Vdd, Alexa-inngang til GPIO13, IR-driver til GPIO14, 0V og Vdd til 3,3V
- Lag Alexa -detektor og støtt buffer hvis nødvendig.
Vær oppmerksom på at det kan være lettere å programmere ESP-12F først hvis du har en slags seriell programmeringsfunksjon eller midlertidig brødbrett som dette for å koble til serielle porter.
Påfølgende programmering kan gjøres ved hjelp av den innebygde OTA -oppdateringen.
Trinn 2: Programvare
Ir Blaster bruker en Arduino -skisse tilgjengelig på github
Dette må justeres for å passe lokale forhold og deretter kompileres i et esp8266 Arduino -miljø.
Følgende biblioteker trengs, de fleste er standard eller kan legges til. De to siste er inkludert i git.
- ESP8266WiFi
- ESP8266WebServer
- FS.h
- DNSServer
- ESP8266mDNS
- ESP8266HTTPUpdateServer
- ArduinoJson
- BitTx (inkludert i Git)
- BitMessages (inkludert i Git)
Elementer i skissen som skal endres inkluderer
- Autorisasjonskode for nettilgang AP_AUTHID
- Wfi manager passord WM_PASSWORD
- fastvare OTA passord update_password
- Nye IR -enheter / knappekoder (se senere)
Når dette er gjort, bør det først lastes opp ved hjelp av vanlig seriell opplasting.
Siden SPIFFS brukes, bør minnet forberedes ved å installere og bruke arduino ESP8266 Sketch Data -opplastingsverktøyet. Dette vil laste opp datamappen som innledende SPIFFS -innhold
Når enheten ikke kan koble til det lokale nettverket (som vil skje første gang), vil Wifi Manager opprette et tilgangspunkt (192.168.4.1). Koble til dette nettverket fra en telefon eller et nettbrett, og bla deretter til 192.168.4.1 Du får et webgrensesnitt for å koble til det lokale wifi. Senere tilganger vil bruke dette. Hvis det lokale nettverket endres, vil det gå tilbake til denne konfigurasjonsmodusen.
Etterfølgende oppdatering kan gjøres ved å kompilere en eksportbinari i Arduino -miljø og deretter få tilgang til OTA -grensesnittet på ip/firmware.
Trinn 3: Legg til enhets- / knappekoder
Merk: Denne delen har endret seg fra forrige metode der konfigurasjon som tidligere ble kompilert i koden. Den bruker nå filer som er lastet fra SPIFFs arkivsystem. Dette gjør det mye lettere å laste opp nye definisjoner.
Knappdefinisjonene er inkludert i filen buttonnames.txt. Det er en global navneliste på tvers av alle fjernkontroller som brukes, da mange navn pleier å være vanlige. Som levert inneholder dette detaljer for fjernkontrollene jeg bruker. Nye oppføringer kan legges til. Det er plass til totalt 160 navn, men dette kan økes ved å justere konstanter i bitMessages.h og kompilere på nytt. Navnene som er definert her er navnene som skal brukes når du sender kommandoer.
Hver ekstern enhet er definert i en fil som heter dev_remotename. Den består av en konfigurasjonsseksjon øverst og deretter en kartleggingstabell fra knappnavn til koder som er hex -strenger som inneholder bitene som skal sendes. Bare de nødvendige knappnavnene må defineres.
Konfigurasjonsdelen i begynnelsen av en enhetsfil inneholder parametere som skal brukes når du sender en kode. Den første oppføringen er enhetsnavnet som brukes når du sender en kommando. Andre parametere er beskrevet i readme på kodesiden.
De fleste fjernkontrollene tilhører en av tre protokollkategorier (nec, rc5 og rc6). nec er trolig den vanligste og har en enkel topptekststruktur og bit timing. Det er en liten variant av dette som bare er forskjellig i overskriftens puls -timing. rc5 og rc6 er protokoller definert av Philips, men brukes også av noen andre produsenter. De er litt mer kompliserte og spesielt rc6 har et spesielt timingkrav for en av bitene.
For å fange kodene for en ny fjernkontroll bruker jeg en IR -mottaker (TSOP) som vanligvis brukes med pluggbare fjernmottakere. Dette gjør den grunnleggende dekodingen og gir en logisk nivåutgang. De kommer vanligvis med en 3,5 mm jack med +5V, GND, DATA -tilkoblinger. Jeg ofret en, forkortet ledningen og satte den gjennom en inverterende 3.3V buffer for å mate en GPIO -pin på en Raspberry Pi.
Jeg bruker deretter et python -verktøy rxir.py (i mappen git tools) for å fange koder. For å gjøre det lettere å bruke for å fange et stort antall knapper, bruker verktøyet en tekstdefinisjonsfil for å definere knappene på fjernkontrollen og er bare navnene på knappene i en gruppe på fjernkontrollen. For eksempel kan en ha en ny Sony-fjernkontroll og en sette opp 3 tekstfiler som heter sonytv-cursor, sonytv-numbers, sonytv-playcontrols hver med de relevante knappene i. Verktøyet vil be om enheten (sonytv), delen (markør) og hvilken protokoll som skal brukes (nec, nec1, rc5, rc6). Den vil deretter spørre sekvensielt for hvert knappetrykk og skrive resultater til en sonytv-ircodes-fil. Delene kan gjentas hvis det er nødvendig for å kontrollere at fangster er gode. Biter fra.ircodes -filen kan redigeres i BitDevices -tabellene.
Trinn 4: Nettkontroll og makroer
Den grunnleggende webkontrollen er enten et enkelt get eller et json -innlegg som kan inneholde en sekvens.
Get to /ir har 6 parametere
- auth - som inneholder autorisasjonskoden
- enhet - navnet på den eksterne enheten
- parameter - navnet på knappen
- bits - et valgfritt bittall
- gjenta - en valgfri gjentattelling
- vent - en forsinkelse i msekunder før neste kommando kan utføres.
Enheten kan også være 'null' for å få bare en forsinkelse, 'makro' for å bruke makroen referert til av parameteren, eller 'detektere' for å bruke Alexa detekteringsfunksjonen (se senere).
Innlegget til /irjson består av en json -struktur som
{
"auth": "1234", "kommandoer": [{"device": "yamahaAV", "parameter": "hdmi4", "wait": "5000", "bits": "0", "repeat": "1"}, {"device": "yamahaAV", "parameter": "mute", "wait": "100", "bits": "0", "repeat": "1"}]
}
Sekvensen kan være hvilken som helst lengde, og enheter kan være makrohenvisninger.
Den samme strukturen kan brukes til å definere makroer. Bare ta med makro: "makronavn", på øverste nivå f.eks. etter autorisasjon. Det faktiske innholdet er lagret i en fil som heter macroname.txt
Makroer kan slettes ved å definere dem uten "kommandoer".
Andre webkommandoer
- /recent (viser nylig aktivitet)
- /sjekk (viser grunnleggende status)
- / (laster inn et nettskjema for å sende kommandoer manuelt)
- / rediger (laster inn et webskjema for å se fillisten og slette/ laste opp filer)
- /edit? file = filnavn (se innholdet i en bestemt fil)
- /reload (laster inn nytt navn og enhetsfiler. Brukes etter endring av noen av disse)
Trinn 5: Alexa Voice Control ved hjelp av IFTTT
Den enkleste måten å bruke ir Blaster med Alexa er å bruke IFTTT som en gateway.
Porten først porten som ble brukt til blasteren din i ruteren, så den er tilgjengelig fra internett. Det kan være bra å bruke en dns -tjeneste som freedns for å gi ruterne ekstern ip et navn og gjøre det lettere å håndtere hvis denne ip -en endres.
Sett opp en IFTTT -konto og aktiver Maker Webhooks -kanalen og Alexa -kanalen. Du må logge deg på Amazon -nettstedet når du gjør dette for å aktivere IFTT -tilgangen.
Lag en IF -utløser ved hjelp av IFTTT Alexa -kanalen, velg handlingen basert på en setning og skriv inn setningen du vil ha (f.eks. Volum opp).
Lag handlingen ved å velge Maker webhooks -kanalen. Skriv inn nettadressefeltet slik
myip: port/irjson? plain = {"auth": "1234", "comm …
Denne handlingen vil bli sendt til ir blaster der den vil prøve å utføre makrovolumet. Man kan være spesifikk enhet/knapper her hvis det er ønskelig, men jeg synes det er bedre å definere og bruke makroer, for da kan handlingssekvensen enkelt endres bare ved å definere makroen på nytt.
En separat IFTTT -applet er nødvendig for hver kommando.
Trinn 6: Native Alexa Voice Skill
I stedet for IFTTT kan man bygge en tilpasset ferdighet i Alexa -utvikling. Dette sentraliserer all behandling på ett sted og betyr at du ikke trenger å opprette separate handlinger for hver knapp.
Du må registrere deg som en Amazon Alexa -utvikler, og du må registrere deg hos Amazon AWS -konsollen lambda -tjenesten. Du må også se på opplæringsprogrammene for å forstå prosessen litt.
På Alexa -utviklersiden må du opprette en ny tilpasset ferdighet, skrive inn triggerordet og lage en liste over kommandoord som volum opp, guide osv.
Alexa sender deretter uttrykket til et program som kjører på lamda -tjenesten som tolker uttrykket og ringer et URL -nummer til Ir -blaster for å utføre det.
Jeg har inkludert Alexa intention -skjemaet og konsoll -lambda -funksjonen jeg bruker i git. Nettadressen må endres for å referere til den aktuelle ip -en og ha den riktige autorisasjonen. For å gjøre det enkelt kaller lambda -funksjonene en makro som har en mellomstor versjon av uttrykket med mellomrom. Den prøver også å fjerne utløserordet som noen ganger kan inkluderes. F.eks. blaster VOLUME up vil kalle en makro som kalles volumeup hvis triggerordet var blaster.
Trinn 7: Alexa Aktiver detektor
Selv om Echo / Dot -stemmegjenkjenning er bra, kan det noen ganger bli forvirret hvis lyden spilles fra si en TV med mindre du kommer nær og snakker høyt.
For å forbedre dette la jeg til en aktiveringsdetektor i Dot. Så snart søkeordet (Alexa er sagt) lyser ringen av LED -er. Detektoren mater dette inn i blasteren der den vil bruke alexaon -makroen for å dempe TV -en, på samme måte ved slutten av behandlingen av en kommando slukker lysene og alexaoff -makroen gjenoppretter lyden.
Kommandoen 'detekter' kan også brukes til å slå denne på og av. Så for eksempel bruker jeg den første turnon -makroen for å aktivere deteksjonen og avstengningsmakroen for å deaktivere den. Dette kan også brukes i handlingsmakroene for å støtte en ekte dempet og dempende komand som ellers ville være problematisk.
Den fysiske detektoren er en lysavhengig motstand som kretsen støtter. Jeg monterer min på prikken med en 3D -trykt brakett
Anbefalt:
Bubble Blaster: 7 trinn
Bubble Blaster: i denne instruktive vil du lære å lage en bubble blaster. Dette er basert på boblefløyten. Ikke glem å stemme på dette instruerbare, jeg håper du liker det
INFRA RØD FJERNKONTROLLERT ROBOCAR SOM BRUKER AVR (ATMEGA32) MCU: 5 trinn
INFRA RØD FJERNKONTROLLERT ROBOCAR SOM BRUKER AVR (ATMEGA32) MCU: Det nåværende PROJEKT beskriver en design og implementering av en infrarød (IR) fjernstyrt RoboCar som kan brukes til forskjellige automatiserte ubemannede kontrollapplikasjoner. Jeg har designet fjernstyrt RoboCar (venstre-høyre/for-bak-bevegelse). T
Komme i gang med Esp 8266 Esp-01 Med Arduino IDE - Installere Esp -kort i Arduino Ide og Programmering Esp: 4 trinn
Komme i gang med Esp 8266 Esp-01 Med Arduino IDE | Installere Esp Boards i Arduino Ide og Programmering Esp: I denne instruksjonene skal vi lære hvordan du installerer esp8266 boards i Arduino IDE og hvordan du programmerer esp-01 og laster opp kode i den. Siden esp boards er så populære, så jeg tenkte på å rette opp en instruks for dette og de fleste mennesker står overfor problemer
Bluetooth -aktivert Nerf Blaster: 7 trinn
Bluetooth -aktivert Nerf Blaster: Jeg følte meg inspirert av Colin Furzes prosjekt, og bestemte meg for å lage min egen gjengivelse for Remix Challenge. Designet jeg brukte er likt, men mer amatøraktig, og har en Bluetooth -modul som lar deg kontrollere tårnet fra telefonen min. Dette er
Récupérer Les Codes Infra-Rouge Et 433mhz: 4 trinn
Récupérer Les Codes Infra-Rouge Et 433mhz: Le but est d ’ afficher les codes des t é l é commandes du style commande de lampe, porte de garage et autre fonctionnant sous 433 mhz (RX433) mais aussi ceux des t é l é infra-rouge de t é l é vision au a