ESP8266 WiFi gecontroleerd airco externe (2 / 15 stap)

Stap 2: Registreren de IR-opdrachten gebruikt om controle van de airco


De ESP8266 simuleert de afstandsbediening om te schakelen aan/uit de airco en verschillende functies selecteren. Om te kunnen doen, zodat we de verschillende IR moet vastleggen sturen signalen van de afstandsbediening.

Eerst is een apparaat om vast te leggen van de IR-signalen nodig. Ik heb een Arduino Uno die ik altijd gebruik te maken van snelle tests. Ik aangesloten de IR ontvanger op de Arduino, zoals hierboven getoond in het schema en breadboard schets. Ik aangesloten de Fritzing bestanden (DumpIR.fzz). Ik had een bedieningspaneel van een oude kabel TV ontvanger rond leggend. Ik gebruikte de IR ontvanger gemonteerd op dit controlepaneel voor de opname. (Ik zal later delen een instructable over het gebruik van dit controle paneel ook).

Voor de opname gebruikte ik de Multi-Protocol infrarood externe bibliotheek voor de Arduino. Deze bibliotheek bevat een voorbeeldprogramma (IRrecvDumpV2.ino) om op te nemen van IR-signalen. Ik gebruikte IRrecvDumpV2 te krijgen een eerste idee van hoe de IR-commando's er hetzelfde uitzien. De output van het programma ziet er als:

 Encoding : NEC<br>Code : 8E76897 (32 bits) Timing[67]: +8900, -4450 + 600, - 450 + 600, - 550 + 550, - 550 + 550, - 550 + 550, -1700 + 550, - 550 + 550, - 600 + 500, - 550 + 550, -1700 + 500, -1700 + 550, -1700 + 600, - 500 + 550, - 600 + 550, -1600 + 650, -1600 + 550, -1650 + 600, - 500 + 550, -1700 + 600, -1600 + 650, - 450 + 650, -1600 + 550, - 550 + 600, - 500 + 650, - 450 + 650, -1600 + 550, - 550 + 650, - 450 + 650, -1550 + 600, - 550 + 600, -1600 + 650, -1600 + 600, -1600 + 600 unsigned int rawData[67] = {8900,4450, 600,450, 600,550, 550,550, 550,550, 550,1700, 550,550, 550,600, 500,550, 550,1700, 500,1700, 550,1700, 600,500, 550,600, 550,1600, 650,1600, 550,1650, 600,500, 550,1700, 600,1600, 650,450, 650,1600, 550,550, 600,500, 650,450, 650,1600, 550,550, 650,450, 650,1550, 600,550, 600,1600, 650,1600, 600,1600, 600}; // NEC 8E76897 unsigned int data = 0x8E76897; 

Deze uitgang is een beetje cryptisch, dus heb ik besloten om te "verbeteren" van de uitvoer en het gebruik van dit programma voor mijn persoonlijke opnamen. Het nieuwe programma heet DumpIR en de verbeteringen zijn

  • Kortere uitgang met extra informatie welke functie werd opgenomen
  • Uitgang met geteste knop commentaar en opmaken als Byte-matrix, zodat het gebruikt kan worden rechtstreeks in de ESP8266 toepassing
  • Elke knop 3 keer opnemen om ervoor te zorgen dat de opname correct is.
  • Gebruiker vertellen welke knop drukken om te registreren

De uitvoer van DumpIR ziet er als:

 Start testing, now press H-FAN====================H-FANEncoding : NEC Code : B1000111001110110100010010111 (32 bits)unsigned int data = 0x8E76897unsigned int rawData[67] = {8950,4350, 650,450, 650,500, 600,500, 650,450, 600,1600, 650,500, 600,500, 600,500, 650,1600, 600,1600, 600,1600, 650,450, 650,500, 600,1600, 650,1550, 650,1600, 600,500, 650,1600, 600,1600, 600,500, 650,1550, 650,500, 600,500, 650,450, 650,1550, 650,500, 600,500, 650,1550, 650,500, 600,1600, 600,1600, 650,1600, 600}; // NEC B1000111001110110100010010111 unsigned int data = 0x8E76897; {B00001000,B11100111,B01101000,B10010111}Encoding : NEC Code : B1000111001110110100010010111 (32 bits) unsigned int data = 0x8E76897 unsigned int rawData[67] = {8950,4400, 600,500, 650,450, 650,450, 650,500, 600,1600, 600,500, 650,450, 650,500, 600,1600, 650,1550, 650,1600, 600,500, 650,450, 650,1600, 600,1600, 600,1600, 650,500, 600,1600, 650,1600, 600,450, 650,1600, 650,450, 650,450, 650,500, 600,1600, 600,500, 650,450, 650,1600, 600,500, 650,1600, 600,1600, 600,1600, 650}; // NEC B1000111001110110100010010111 unsigned int data = 0x8E76897; {B00001000,B11100111,B01101000,B10010111} Encoding : NEC Code : B1000111001110110100010010111 (32 bits) unsigned int data = 0x8E76897 unsigned int rawData[67] = {9000,4350, 650,450, 650,450, 650,450, 650,500, 600,1600, 650,450, 650,500, 600,500, 650,1550, 650,1550, 650,1600, 650,450, 650,450, 650,1600, 600,1600, 650,1600, 600,500, 600,1600, 650,1550, 650,500, 600,1600, 650,450, 650,450, 650,500, 600,1600, 550,550, 650,500, 600,1600, 600,500, 650,1600, 600,1600, 650,1550, 650}; // NEC B1000111001110110100010010111 unsigned int data = 0x8E76897; {B00001000,B11100111,B01101000,B10010111} ==================== Command finished, now press M-FAN 

De byte-array {B00001000, B11100111, B01101000, B10010111} worden rechtstreeks in de toepassing van de ESP8266 gebruikt voor het verzenden van de opdracht "overgang naar high fan modus" naar de airco.

De DumpIR.ino moet sommige aangepast voor verschillende airco afstandsbedieningen. Bijvoorbeeld mijn FujiDenzo airco externe heeft 10 knoppen, de vervoerder airco 14 knoppen. Als je naar de DumpIR.ino kijkt kunt u de definitie voor 2 aircons:

 //------------------------------------------------------------------------------// This example code is for 2 different aircons // 1) manufacturer FujiDenzo // 2) manufacturer Carrier // These aircons have different command sets // Use #define FUJIDENZO for recording the FujiDenzo commands // Use #define CARRIER for recording the Carrier commands #define FUJIDENZO // #define CARRIER 

Als ik wil opnemen signalen van de afstandsbediening van de FujiDenzo, de #define FUJIDENZO wordt gebruikt, wanneer de afstandsbediening van de vervoerder is vastgelegd de #define vervoerder wordt gebruikt.

De verschillende opdrachten en het aantal beschikbare opdrachten voor de beide afstandsbedieningen worden gedefinieerd in [cmdList] en endCmdIndex:

 #ifdef FUJIDENZO<br>// FujiDenzo remote has 10 buttons int endCmdIndex = 10; // Sequence of commands on the FujiDenzo remote String cmdList[] = {"H-FAN", "M-FAN", "L-FAN", "TIMER", "TEMP+", "TEMP-", "COOL", "DRY", "FAN", "POWER"}; #endif #ifdef CARRIER // Carrier remote has 14 buttons int endCmdIndex = 14; // Sequence of commands on the Carrier remote String cmdList[] = {"POWER", "SWEEP", "TEMP+", "TEMP-", "FANSPEED", "TURBO", "TIMER", "DRY", "SLEEP", "ION", "HEAT", "COOL", "FAN", "AUTO"}; #endif 

Zoals u de definities FUJIDENZO en drager worden gebruikt om de juiste lijst en aantal opdrachten te selecteren zien kunt.

Met DumpIR ik opgenomen van alle commando's voor de twee aircons van de FujiDenzo en de vervoerder en de resultaten worden opgeslagen in tekstbestanden.

U zal moeten aanpassen van de DumpIR om te werken met de fabrikant van uw specifieke airco.

LET OP:

Ik vastleggen, elke knop (minstens) 3 keer omdat tijdens dit project heb ik geleerd dat sommige afstandsbedieningen Stuur geen hetzelfde IR signaal voor een commando elke keer. Ik moest leren door proef en fout dat de Carrier-airco daadwerkelijk 3 verschillende IR-signalen voor dezelfde opdracht heeft. Als u een opdracht op de afstandsbediening herhalen (zoals temperatuur omhoog) de afstandsbediening doorlopen van de 3 IR-signalen en stuurt elke keer een andere naam. De cyclus wordt opnieuw ingesteld als een andere knop werd ingedrukt. In het volgende voorbeeld:

  • Druk temperatuur omhoog knop = > IR signaal #1 voor temperatuur omhoog wordt verzonden.
  • Druk temperatuur omhoog knop weer = > IR signaal #2 voor temperatuur omhoog wordt verzonden
  • Druk op-temperatuur omlaag knop = > IR signaal #1 voor de temperatuur naar beneden wordt verzonden
  • Druk temperatuur omhoog knop weer = > IR signaal #1 voor temperatuur omhoog wordt verzonden

Ik moest implementeren dit gedrag ook in de code voor de ESP8266 code, maar meer hierover in een latere stap.

Extra commentaar:

In de bijgevoegde foto's ziet u dat ik geen gebruik van een enkele IR-ontvanger om vast te leggen van de IR-signalen. Ik had een oude dash board van een kabel-TV rond leggend. Als dit dash board had een IR ontvanger gemonteerd, besloten heb ik om het te gebruiken in plaats van het kopen van een IR-ontvanger. Ik zal later een andere Instructable posten hoe ik dit dash board aangesloten op de Arduino Uno.

Alle bronnen van de software en alle schema's zijn beschikbaar in mijn Github repository

Gerelateerde Artikelen

Internet gecontroleerde lamp met ESP8266 wifi relay IoT

Internet gecontroleerde lamp met ESP8266 wifi relay IoT

ESP8266 wifi relay (ESP01) IoT controle per lampInternet gecontroleerde elektrische lamp met ESP8266 wifi (ESP01) IoTInternet gecontroleerde lamp met ESP8266 wifi relay IoTESP8266 (ESP01) is een zeer goedkope WiFi-transceiver die kan worden toegevoeg
WiFi gecontroleerd tuin licht met ESP8266

WiFi gecontroleerd tuin licht met ESP8266

Ik heb een beetje een ding voor verlichting en zijnde kundig voor ver zeggenschap hen. Ik vooral als dit in de tuin en zelfs beter als ik kan zonne macht hen. Ik heb enkele van de pond/dollar winkel spel lichten, maar ze zijn nogal zwak, dus begon ik
ESP 8266 Wifi gecontroleerd Home Automation

ESP 8266 Wifi gecontroleerd Home Automation

ESP8266 is een groot ding voor het beginnen met Wifi en IOTHet is ook goedkoop en worden gebruikt voor het maken van coole projecten die zijn verbonden met het Internet. Leer hoe te maken van een eenvoudig Project van de IOT mee. De ESP8266 WiFi Modu
Arduino IOT: Temperatuur en luchtvochtigheid (met ESP8266 WiFi)

Arduino IOT: Temperatuur en luchtvochtigheid (met ESP8266 WiFi)

Hallo iedereen! Ik ben Michalis Vasilakis uit www.ardumotive.com en in deze Instructables zal ik u tonen hoe te maken van uw eigen Internet van dingen (IOT) thermometer met behulp van de Arduino uno board.U kunt thuis, op kantoor of ergens is er een
ESP8266 WiFi touch screen thermostaat

ESP8266 WiFi touch screen thermostaat

In deze tutorial zullen we laten zien hoe te bouwen gecontroleerd WiFi thermostaat met ESP8266, Arduino en touch-screen display. Thermostaat leert ook andere informatie, zoals de weersvoorspelling en temperatuur buiten. Totale kosten voor thermostaat
K-9 2.0. WiFi gecontroleerde en autonome Robot hond.

K-9 2.0. WiFi gecontroleerde en autonome Robot hond.

OPMERKING:In stap 22, heb ik gepost een update, verklaren sommige recente veranderingen/verbeteringen die ik, voornamelijk K-9 van elektrische systeem gemaakt heb en de sensor array, die u kunt nuttig vinden.FunctiesStevige houten (MDF) en acryl desi
De temperatuur en vochtigheid sensor ESP8266 WiFi

De temperatuur en vochtigheid sensor ESP8266 WiFi

In deze tutorial zullen we bouwen ESP8266 WiFi Arduino temperatuur en vocht datalogger. Gegevens worden opgeslagen op de server van de EasyIoT en weergegeven in de webbrowser op de externe computer of mobiele telefoon. Met ESP8266 EasyIoT Arduino bib
ESP8266 WiFi relay switch

ESP8266 WiFi relay switch

In deze tutorial zullen we laten zien hoe bouwen ESP8266 WiFi relay switch met Arduino en EasyIoT server. Kunt u op afstand relay switch aan (computer of mobiele smartphone) bedienen van uw apparaten zoals licht, kachel, garagepoort,... U kunt de rel
Gemakkelijk ESP8266 WiFi met Python Debugging

Gemakkelijk ESP8266 WiFi met Python Debugging

De nieuwe sub 5 dollar ESP8266 WiFi module maakt goedkope IoT manier meer mogelijk en gemakkelijk voor gewone stervelingen zoals ik. In feite, ik heb een zoekopdracht op AliExpress.com en ik vond dezelfde module voor $3,25 (gratis verzending, maar na
WiFi gecontroleerd lichtschakelaar

WiFi gecontroleerd lichtschakelaar

In dit instructable, ik zal u tonen hoe te maken van een WiFi-gecontroleerde lichtschakelaar. Ik weet dat ik een relais gebruikt hebben kon, maar ik wilde niet te wijzigen van alle elektrische dingen in het huis.Stap 1: Onderdelen en Tools Hier zijn
ESP8266 WiFi DHT22 vochtigheid sensor (Plug and Play)

ESP8266 WiFi DHT22 vochtigheid sensor (Plug and Play)

In deze tutorial zullen we laten zien how to build "Plug en Play" WiFi vochtigheid en temperatuursensor aangesloten in EasyIoT wolk. Het laat zien hoe te sturen twee parameters met één verzoek met REST API V1. Wij zullen gebruiken ESP8266 DHT22
WiFi-gecontroleerde LED-display

WiFi-gecontroleerde LED-display

Bijna alle winkels hebben een een LED-display. Zij zijn de perfecte aantrekkelijke en goedkope reclame-instrument. De meeste van hen hebben echter een beperking. Ze zijn statisch. Dit betekent dat je niet kunt veranderen wat op hen wordt weergegeven.
ESP8266 WiFI water lek sensor

ESP8266 WiFI water lek sensor

In deze tutorial zullen we laten zien hoe ESP8266 WiFi water lek sensor te bouwen met ESP8266, Arduino en EasyIoT server. We kunnen deze sensor ook gebruiken als bodem vocht sensor of als regen sensor. U kunt meer verschillende sensor aan EasyIoT ser
ESP8266 WiFi DS18B20 temperatuursensor (ESP8266 Arduino IDE zonder Arduino)

ESP8266 WiFi DS18B20 temperatuursensor (ESP8266 Arduino IDE zonder Arduino)

In deze tutorial zullen we laten zien hoe bouwen ESP8266 WiFi temperatuursensor met DB18B20. Zullen we gebruik maken van Arduino IDE, maar zonder Arduino. Gegevens zal worden verzonden naar EasyIoT server (Windows of Raspberry Pi) op het mooi scherm