Innehållsförteckning:
- Steg 1: Hårdvara
- Steg 2: Programvara
- Steg 3: Lägg till enhets- / knappkoder
- Steg 4: Webbkontroll och makron
- Steg 5: Alexa Voice Control med IFTTT
- Steg 6: Native Alexa Voice Skill
- Steg 7: Alexa Aktivera detektor
Video: ESP-12 Infra Red Blaster: 7 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:46
Infra Red fjärrkontroll blaster med esp8266
Sänder fjärrkontrollkoder mottagna från webben som stöder flera utdataenheter.
Inbyggd enkel webbsida främst för testning.
Normal användning sker via POST -meddelanden som kan komma från webbsidor eller från röststyrning IFTTT / Alexa.
Stöder en Amazon Echo / Dot -aktiveringsdetektor för att stänga av / tysta så fort aktiveringsord talas.
Kommandon är antingen enskilda kommandon eller sekvenser. Sekvenser kan lagras som namngivna makron som sedan kan användas som kommandon eller i andra sekvenser.
Ny historik och lista över makron kan erhållas via webbgränssnittet
Stöder OTA -uppladdning av ny firmware och använder WifiManager -biblioteket för första wifi -installation
Steg 1: Hårdvara
Använder följande komponenter
- ESP-12F-modul
- 3.3V regulator (MP2307 mini buck regulator)
- MOSFET -omkopplare (AO3400)
- Infra Red emitter (3mm)
- Ljusberoende motstånd GL2258 (valfri Alexa aktivitetsdetektor)
- Motstånd
- Avkopplingskondensator (20uF)
- USB honauttag (helst lödvänligt med hylsa
- 3 -stifts IC -uttagslist för Alexa -detektor
- Mekaniska delar (kan skrivas ut i 3D)
Kan monteras i ESP-12F projektlåda
- Anslut regulatorn till USB -kontakten och sätt in den i lådan
- Fyll på IR -drivrutinen på en liten bit verobord (3 trådar, +5V, 0V grindingång)
- Anslut IR -drivrutinen till USB +5V, 0V
- Sätt i 3 -stifts IC -uttag i projektlådan om du använder Alexa -detektor. Anslut till +3.3V, 0V och kabel för ingång
- Gör upp ESP-12F med 2,2K från GPIO15 till GND, EN till Vdd, 4K7 GPIO13 till Vdd, Alexa ingång till GPIO13, IR-drivrutin till GPIO14, 0V och Vdd till 3,3V
- Skapa Alexa -detektor och stödbuffert vid behov.
Observera att det kan vara lättare att programmera ESP-12F först om du har någon form av seriell programmeringsfunktion eller tillfällig breadboarding som denna för att ansluta till seriella portar.
Efterföljande programmering kan göras med den inbyggda OTA -uppdateringen.
Steg 2: Programvara
Ir Blaster använder en Arduino -skiss tillgänglig på github
Detta måste justeras för att passa lokala förhållanden och sedan sammanställas i en esp8266 Arduino -miljö.
Följande bibliotek behövs, de flesta är standard eller kan läggas till. De två sista ingår i git.
- ESP8266WiFi
- ESP8266WebServer
- FS.h
- DNSServer
- ESP8266mDNS
- ESP8266HTTPUpdateServer
- ArduinoJson
- BitTx (ingår i Git)
- BitMessages (ingår i Git)
Objekt i skissen som ska ändras inkluderar
- Behörighetskod för webbåtkomst AP_AUTHID
- Wfi -chefslösenord WM_PASSWORD
- firmware OTA lösenord update_password
- Nya IR -enheter / knappkoder (se senare)
När detta är gjort bör det först laddas upp med konventionell serieöverföring.
Eftersom SPIFFS används bör minnet förberedas genom att installera och använda arduino ESP8266 Sketch Data uppladdningsverktyg. Detta laddar upp datamappen som initialt SPIFFS -innehåll
När enheten inte kan ansluta till det lokala nätverket (som kommer att hända första gången) skapar Wifi Manager en åtkomstpunkt (192.168.4.1). Anslut till detta nätverk från en telefon eller surfplatta och bläddra sedan till 192.168.4.1 Du får ett webbgränssnitt för att ansluta till det lokala wifi. Senare åtkomst kommer att använda detta. Om det lokala nätverket ändras går det tillbaka till detta konfigurationsläge.
Efterföljande uppdatering kan göras genom att sammanställa en exportbinär i Arduino -miljö och sedan komma åt OTA -gränssnittet på ip/firmware.
Steg 3: Lägg till enhets- / knappkoder
Obs: Det här avsnittet har ändrats från tidigare metod där konfiguration som tidigare kompilerades i koden. Den använder nu filer som laddas från SPIFFs arkiveringssystem. Detta gör det mycket lättare att ladda upp nya definitioner.
Knappdefinitionerna ingår i filen buttonnames.txt. Det är en global namnlista över alla fjärrkontroller som används eftersom många namn tenderar att vara vanliga. Som levererad innehåller den information om de fjärrkontroller jag använder. Nya poster kan läggas till. Det finns plats för totalt 160 namn men detta kan ökas genom att justera konstanter i bitMessages.h och kompilera om. Namnen som definieras här är namnen som ska användas när du skickar kommandon.
Varje fjärrenhet definieras i en fil som heter dev_remotename. Den består av en konfigurationssektion högst upp och sedan en mappningstabell från knappnamn till koder som är hexsträngar som innehåller bitarna som ska skickas. Endast de knappar som krävs behöver definieras.
Konfigurationsdelen i början av en enhetsfil innehåller parametrar som ska användas när en kod skickas. Den första posten är enhetsnamnet som används när du skickar ett kommando. Andra parametrar beskrivs i readme på kodwebbplatsen.
De flesta fjärrkontroller tillhör en av tre protokollkategorier (nec, rc5 och rc6). nec är förmodligen den vanligaste och har en enkel rubrikstruktur och bit timing. Det finns en liten variant av detta som endast skiljer sig i rubrikpulstiden. rc5 och rc6 är protokoll som definieras av Philips men också används av vissa andra tillverkare. De är lite mer komplicerade och särskilt rc6 har ett speciellt tidskrav för en av bitarna.
För att fånga koder för en ny fjärrkontroll använder jag en IR -mottagare (TSOP) som vanligtvis används med anslutna fjärrmottagare. Detta gör den grundläggande avkodningen och ger en logisk nivåutmatning. De levereras normalt med ett 3,5 mm -uttag med +5V, GND, DATA -anslutningar. Jag offrade en, förkortade ledningen och lade den genom en inverterande 3.3V -buffert för att mata en GPIO -pin på en Raspberry Pi.
Jag använder sedan ett pythonverktyg rxir.py (i mappen git tools) för att fånga koder. För att göra det enklare att använda för att fånga ett stort antal knappar använder verktyget en textdefinitionsfil för att definiera knapparna på fjärrkontrollen och är bara namnen på knapparna i en grupp på fjärrkontrollen. Till exempel kan en ha en ny Sony-fjärrkontroll och en ställer in tre textfiler som heter sonytv-cursor, sonytv-numbers, sonytv-playcontrols var och en med relevanta knappnamn i. Verktyget frågar efter enheten (sonytv), avsnittet (markör) och vilket protokoll som ska användas (nec, nec1, rc5, rc6). Den kommer sedan att uppmanas att ordna varje knapptryckning och skriva resultat till en sonytv-ircodes-fil. Avsnitt kan upprepas om det behövs för att kontrollera att fångster är bra. Bitar från.ircodes -filen kan redigeras i BitDevices -tabellerna.
Steg 4: Webbkontroll och makron
Den grundläggande webbkontrollen är antingen en enda get eller ett json -inlägg som kan innehålla en sekvens.
Get to /ir har 6 parametrar
- auth - som innehåller behörighetskoden
- enhet - namnet på fjärrenheten
- parameter - namnet på knappen
- bitar - ett valfritt bitantal
- repeat - ett valfritt antal repetitioner
- vänta - en fördröjning i msekunder innan nästa kommando kan köras.
Enheten kan också vara "null" för att bara få en fördröjning, "makro" för att använda makrot som parametern refererar till, eller "detektera" för att använda Alexa -detekteringsfunktionen (se senare).
Inlägget till /irjson består av en json -struktur som
{
"auth": "1234", "kommandon": [{"device": "yamahaAV", "parameter": "hdmi4", "wait": "5000", "bits": "0", "repeat": "1"}, {"device": "yamahaAV", "parameter": "mute", "wait": "100", "bits": "0", "repeat": "1"}]
}
Sekvensen kan vara vilken längd som helst och enheter kan vara makroreferenser.
Samma struktur kan användas för att definiera makron. Inkludera bara makro: "makronamn", på översta nivån t.ex. efter aut. Det faktiska innehållet lagras i en fil som heter macroname.txt
Makron kan raderas genom att definiera dem utan några "kommandon".
Andra webbkommandon
- /recent (listar ny aktivitet)
- /check (visar grundstatus)
- / (läser in ett webbformulär för att skicka kommandon manuellt)
- / redigera (läser in ett webbformulär för att visa fillista och ta bort/ ladda upp filer)
- /edit? file = filnamn (visa innehållet i en specifik fil)
- /reload (laddar om namn och enhetsfiler. Använd efter att någon av dessa har ändrats)
Steg 5: Alexa Voice Control med IFTTT
Det enklaste sättet att använda ir Blaster med Alexa är att använda IFTTT som en gateway.
Porta först porten som används till din blaster i din router så att den är tillgänglig från internet. Det kan vara bra att använda en dns -tjänst som freedns för att ge dina routers externa ip ett namn och göra det lättare att hantera om denna ip ändras.
Skapa ett IFTTT -konto och aktivera Maker Webhooks -kanalen och Alexa -kanalen. Du måste logga in på Amazonas webbplats när du gör detta för att aktivera IFTT -åtkomst.
Skapa en IF -utlösare med hjälp av IFTTT Alexa -kanalen, välj åtgärden baserat på en fras och ange den fras du vill ha (t.ex. volym upp).
Skapa åtgärden genom att välja Maker webhooks -kanalen. Ange något i URL -fältet
myip: port/irjson? plain = {"auth": "1234", "comm …
Denna åtgärd kommer att skickas till ir blaster där den kommer att försöka utföra makrovolymen. Man kan vara specifik enhet/knappar här om så önskas men jag tycker att det är bättre att definiera och använda makron för då kan åtgärdssekvensen enkelt ändras genom att omdefiniera makrot.
En separat IFTTT -applet behövs för varje kommando.
Steg 6: Native Alexa Voice Skill
Istället för IFTTT kan man bygga en anpassad färdighet inom Alexa -utveckling. Detta centraliserar all behandling på ett ställe och innebär att du inte behöver skapa separata åtgärder för varje knapp.
Du måste registrera dig som en Amazon Alexa -utvecklare och du måste registrera dig hos Amazon AWS -konsolens lambda -tjänst. Du måste också titta på självstudierna för att förstå processen lite.
På Alexa -utvecklarsidan måste du skapa en ny anpassad färdighet, ange dess triggerord och skapa en lista med kommandord som volym upp, guide etc.
Alexa skickar sedan frasen till ett program som körs på lamda -tjänsten som tolkar frasen och gör ett URL -anrop till Ir blaster för att utföra den.
Jag har inkluderat Alexa intention -schemat och konsolens lambda -funktion som jag använder i git. Webbadressen måste ändras för att referera till lämplig ip och ha rätt behörighet. För att hålla det enkelt kallar lambda -funktionerna ett makro som har en mellanslagsversion av frasen med mellanslag. Det försöker också ta bort triggerordet som ibland kan inkluderas. T.ex. blaster VOLUME up kallar ett makro som kallas volym upp om triggerordet var blaster.
Steg 7: Alexa Aktivera detektor
Även om Echo / Dot -röstigenkänningen är bra kan det ibland bli förvirrat om ljudet spelas från säg en TV om du inte kommer nära och pratar högt.
För att förbättra detta lade jag till en aktiveringsdetektor till min prick. Så snart sökordet (Alexa sägs) lyser ringen av lysdioder. Detektorn matar detta in i blastern där den kommer att använda alexaon -makrot för att stänga av TV: n, på samma sätt i slutet av behandlingen av ett kommando slocknar lamporna och alexaoff -makrot återställer ljudet.
Kommandot 'detect' kan också användas för att slå på och av detta. Så till exempel använder jag det första turnon -makrot för att aktivera detektering och avstängningsmakro för att inaktivera det. Detta kan också användas inom åtgärdsmakronen för att stödja en verklig tyst och avstängd coomand som annars skulle vara problematisk.
Den fysiska detektorn är ett ljusberoende motstånd som kretsen stöder. Jag monterar min på pricken med en 3D -tryckt konsol
Rekommenderad:
Bubble Blaster: 7 steg
Bubble Blaster: i denna instruerbara kommer du att lära dig att göra en bubbla blaster. Detta är baserat på bubbelflöjten. Glöm inte att rösta på det här instruerbara, jag hoppas att du gillar det
INFRA RÖD FJÄRRKONTROLLerad ROBOCAR MED AVR (ATMEGA32) MCU: 5 steg
INFRA RÖD FJÄRRKONTROLLerad ROBOCAR ANVÄNDNING AVR (ATMEGA32) MCU: Föreliggande PROJEKT beskriver en design och implementering av en infraröd (IR) fjärrstyrd RoboCar som kan användas för olika automatiska obemannade kontrollapplikationer. Jag har designat fjärrstyrd RoboCar (vänster-höger/fram-bak-rörelse). T
Komma igång med Esp 8266 Esp-01 Med Arduino IDE - Installera Esp -kort i Arduino Ide och Programmering Esp: 4 steg
Komma igång med Esp 8266 Esp-01 Med Arduino IDE | Installera Esp-kort i Arduino Ide och programmera Esp: I dessa instruktioner lär vi oss hur man installerar esp8266-kort i Arduino IDE och hur man programmerar esp-01 och laddar upp kod i den. Eftersom esp-kort är så populära så jag tänkte rätta till en instruktionsför detta och de flesta människor har problem
Récupérer Les Codes Infra-Rouge Et 433mhz: 4 steg
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
Infra-röd paneltimer: 4 steg (med bilder)
Infra-röd panel timer: I ett av rummen på övervåningen i mitt hus har jag en Infra Red panel. När jag är i det rummet och jag slår på den här panelen glömmer jag ibland att stänga av den, vilket är slöseri med värdefull energi. För att förhindra detta byggde jag denna Infra Red Panel Ti