{"id":1656,"date":"2019-05-02T07:26:04","date_gmt":"2019-05-02T12:26:04","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/edelros\/?p=1656"},"modified":"2026-07-24T07:43:29","modified_gmt":"2026-07-24T12:43:29","slug":"control-remoto-it-esp8266","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/girni\/control-remoto-it-esp8266\/","title":{"rendered":"Control Remoto IR - ESP8266"},"content":{"rendered":"\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p>ESP8266:<\/p>\n\n\n\n<p><a href=\"#emisorir\">Emisor IR<\/a><\/p>\n\n\n\n<p><a href=\"#detectorir\">Detector IR<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">1. ESP8266 con Emisor IR<\/h2>\n\n\n\n<p id=\"emisorir\">El circuito permite la emisi\u00f3n de una se\u00f1al infrarroja semejante a un control remoto usando el m\u00f3dulo ESP07-ESP8266. El c\u00f3digo infrarrojo emitido corresponde al obtenido en el ejemplo del receptor infrarrojo.<\/p>\n\n\n\n<p>Como emisor se usa un LED IR, complementado con un transistor para aumentar la cantidad de corriente. El el puerto GPIO05 no es suficiente para obtener distancias de transmisi\u00f3n de la se\u00f1al muy lejanas.<\/p>\n\n\n\n<p>El esquem\u00e1tico muestra lo sencillo de la conexi\u00f3n del emisor infrarrojo:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2019\/05\/SensorIR_Emisor_ESP07_v1esquem.png\"><img loading=\"lazy\" decoding=\"async\" width=\"672\" height=\"390\" src=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2019\/05\/SensorIR_Emisor_ESP07_v1esquem.png\" alt=\"\" class=\"wp-image-2036\" srcset=\"https:\/\/blog.espol.edu.ec\/girni\/files\/2019\/05\/SensorIR_Emisor_ESP07_v1esquem.png 672w, https:\/\/blog.espol.edu.ec\/girni\/files\/2019\/05\/SensorIR_Emisor_ESP07_v1esquem-300x174.png 300w\" sizes=\"auto, (max-width: 672px) 100vw, 672px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Protoboard<\/h3>\n\n\n\n<p>Como referencia de la conexiones en tambi\u00e9n se adjunta la conexi\u00f3n usando un protoboard.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2019\/05\/SensorIR_Emisor_ESP07_v1Proto.png\"><img loading=\"lazy\" decoding=\"async\" width=\"803\" height=\"517\" src=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2019\/05\/SensorIR_Emisor_ESP07_v1Proto.png\" alt=\"\" class=\"wp-image-1657\" srcset=\"https:\/\/blog.espol.edu.ec\/girni\/files\/2019\/05\/SensorIR_Emisor_ESP07_v1Proto.png 803w, https:\/\/blog.espol.edu.ec\/girni\/files\/2019\/05\/SensorIR_Emisor_ESP07_v1Proto-300x193.png 300w, https:\/\/blog.espol.edu.ec\/girni\/files\/2019\/05\/SensorIR_Emisor_ESP07_v1Proto-768x494.png 768w\" sizes=\"auto, (max-width: 803px) 100vw, 803px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Instrucciones<\/h3>\n\n\n\n<p>Se usan las librer\u00edas Arduino <strong>IRremoteESP8266<\/strong> como base para un dispositivo de control remoto con Home Assistant.<\/p>\n\n\n\n<p>El pin del emisor infrarrojo se lo toma de la hoja de datos para el ESP8266 donde se indica usar el pin 5 para receptor y el 14 para emisor. Secci\u00f3n 4.4.Interfaces, p\u00e1gina 12.<\/p>\n\n\n\n<p><a href=\"https:\/\/www.mikrocontroller.net\/attachment\/338570\/Ai-thinker_ESP-07_WIFI_Module-EN.pdf\">https:\/\/www.mikrocontroller.net\/attachment\/338570\/Ai-thinker_ESP-07_WIFI_Module-EN.pdf<\/a><\/p>\n\n\n\n<p>4.8. IR Remote Control pag 16<\/p>\n\n\n\n<p><a href=\"https:\/\/www.espressif.com\/sites\/default\/files\/documentation\/0a-esp8266ex_datasheet_en.pdf\">https:\/\/www.espressif.com\/sites\/default\/files\/documentation\/0a-esp8266ex_datasheet_en.pdf<\/a><\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>#include &lt;IRremoteESP8266.h&gt;\n#include &lt;IRsend.h&gt;\n#include &lt;IRrecv.h&gt;\n\n#define LED_pin 2\n#define IR_LED 14\nIRsend irsend(IR_LED);  \/\/ configura emisor\nuint32_t enciendeapaga = 0xFF5AA5; \/\/ c\u00f3digo de control\n\nvoid setup() {\n    Serial.begin(115200);\n    pinMode(LED_pin, OUTPUT);\n    \n    irsend.begin();\n}\n\nvoid loop() {\n    Serial.println(\"Enciende\/Apaga control remoto Avanti\");\n    \/\/ Parpadeo LED interno\n    digitalWrite(LED_pin, LOW);\n    delay(1000); \/\/ Esperar un segundo\n    digitalWrite(LED_pin, HIGH);\n    delay(1000); \/\/ Esperar un segundo\n  \n    irsend.sendNEC(enciendeapaga ,32);\n    delay(4000);\/\/ tiempo antes de apagar dispositivo\n}<\/code><\/pre>\n\n\n\n<p>Las pruebas de funcionamiento se realizan de dos formas:<\/p>\n\n\n\n<p>1. Usando una c\u00e1mara digital del m\u00f3vil celular, para verificar que el LED IR parpadea, se puede ver en la pantalla que el LED enciende.<\/p>\n\n\n\n<p>2. apuntando el led al dispositivo que activa el control remoto y usado en el ejemplo del receptor.<\/p>\n\n\n\n<p>El siguiente paso es integrar el receptor y el emisor para el control mediante el servidor MQTT-Mosquitto.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p>ESP8266:<\/p>\n\n\n\n<p><a href=\"#emisorir\">Emisor IR<\/a><\/p>\n\n\n\n<p><a href=\"#detectorir\">Detector IR<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"detectorir\">2. ESP8266 con detector IR\/de-modulador<\/h2>\n\n\n\n<figure class=\"wp-block-image alignright\"><a href=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2019\/04\/SensorInfrarojo01.png\"><img loading=\"lazy\" decoding=\"async\" width=\"287\" height=\"300\" src=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2019\/04\/SensorInfrarojo01-287x300.png\" alt=\"\" class=\"wp-image-2033\" srcset=\"https:\/\/blog.espol.edu.ec\/girni\/files\/2019\/04\/SensorInfrarojo01-287x300.png 287w, https:\/\/blog.espol.edu.ec\/girni\/files\/2019\/04\/SensorInfrarojo01.png 358w\" sizes=\"auto, (max-width: 287px) 100vw, 287px\" \/><\/a><\/figure>\n\n\n\n<p>El ejemplo realiza la detecci\u00f3n de se\u00f1al de un control remoto infrarrojo con el m\u00f3dulo ESP07-ESP8266 y muestra el resultado Hexadecimal en el Monitor Serial.<\/p>\n\n\n\n<p>Cada tecla del control remoto genera un c\u00f3digo \u00fanico que es detectado con el sensor.<\/p>\n\n\n\n<p>Para el ejemplo se usa un <span class=\"irc_su\">HX1838, sin embargo tambi\u00e9n funciona&nbsp; un <\/span>TSOP382.., TSOP384, o alguna versi\u00f3n que incluya el circuito de de-modulaci\u00f3n.<\/p>\n\n\n\n<p>La versi\u00f3n del sensor infrarrojo con detecci\u00f3n y de-modulaci\u00f3n simplifica el circuito a un pin digital configurado como entrada en el m\u00f3dulo a usar, adem\u00e1s de Vcc y Gnd.<\/p>\n\n\n\n<p>El esquem\u00e1tico muestra lo sencillo de la conexi\u00f3n del sensor infrarrojo para su lectura.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2019\/04\/SensorIR_Receptor_ESP07_v1esquem.png\"><img loading=\"lazy\" decoding=\"async\" width=\"713\" height=\"399\" src=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2019\/04\/SensorIR_Receptor_ESP07_v1esquem.png\" alt=\"\" class=\"wp-image-1652\" srcset=\"https:\/\/blog.espol.edu.ec\/girni\/files\/2019\/04\/SensorIR_Receptor_ESP07_v1esquem.png 713w, https:\/\/blog.espol.edu.ec\/girni\/files\/2019\/04\/SensorIR_Receptor_ESP07_v1esquem-300x168.png 300w\" sizes=\"auto, (max-width: 713px) 100vw, 713px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Protoboard<\/h3>\n\n\n\n<p>Como referencia de la conexiones en tambi\u00e9n se adjunta la conexi\u00f3n usando un protoboard.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2019\/04\/SensorIR_Receptor_ESP07_v1Proto.png\"><img loading=\"lazy\" decoding=\"async\" width=\"790\" height=\"502\" src=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2019\/04\/SensorIR_Receptor_ESP07_v1Proto.png\" alt=\"\" class=\"wp-image-1651\" srcset=\"https:\/\/blog.espol.edu.ec\/girni\/files\/2019\/04\/SensorIR_Receptor_ESP07_v1Proto.png 790w, https:\/\/blog.espol.edu.ec\/girni\/files\/2019\/04\/SensorIR_Receptor_ESP07_v1Proto-300x191.png 300w, https:\/\/blog.espol.edu.ec\/girni\/files\/2019\/04\/SensorIR_Receptor_ESP07_v1Proto-768x488.png 768w\" sizes=\"auto, (max-width: 790px) 100vw, 790px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Lectura de datos<\/h3>\n\n\n\n<p>Para un control remoto dado, por ejemplo el b\u00e1sico para Arduino, se obtienen los diferentes c\u00f3digos en Hexadecimal de las teclas presionadas usando el monitor serial.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>FF5AA5\nFF5AA5<\/code><\/pre>\n\n\n\n<p>Si usa un ESP07 en versi\u00f3n 8285, puede ser necesario configurar los baudios a 74880 baudios, si los s\u00edmbolos que llegan no son legibles.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Instrucciones<\/h3>\n\n\n\n<p>Se usan las librer\u00edas Arduino <strong>IRremoteESP8266<\/strong> como base para un dispositivo de control remoto con Home Assistant.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2019\/04\/IRremoteESP8266ArduinoLib01.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1185\" height=\"272\" src=\"http:\/\/blog.espol.edu.ec\/girni\/files\/2019\/04\/IRremoteESP8266ArduinoLib01.png\" alt=\"\" class=\"wp-image-2187\" srcset=\"https:\/\/blog.espol.edu.ec\/girni\/files\/2019\/04\/IRremoteESP8266ArduinoLib01.png 1185w, https:\/\/blog.espol.edu.ec\/girni\/files\/2019\/04\/IRremoteESP8266ArduinoLib01-300x69.png 300w, https:\/\/blog.espol.edu.ec\/girni\/files\/2019\/04\/IRremoteESP8266ArduinoLib01-768x176.png 768w, https:\/\/blog.espol.edu.ec\/girni\/files\/2019\/04\/IRremoteESP8266ArduinoLib01-1024x235.png 1024w\" sizes=\"auto, (max-width: 1185px) 100vw, 1185px\" \/><\/a><\/figure>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>\/* IRremoteESP8266: Demo Receptor Infrarojo\n * Debe usar un sensor detector\/demodulador conectado al Receptor_Pin.\n *  Based on Mark Szabo's Version 0.2 June, 2017 and\n *  Ken Shirriff's IrsendDemo Version 0.1 July, 2009\n *  https:\/\/github.com\/markszabo\/IRremoteESP8266\n *\/\n\n#include &lt;IRremoteESP8266.h&gt;\n#include &lt;IRrecv.h&gt;\n#include &lt;IRutils.h&gt;\n\n\/\/ Sensor IR en GPIO05\nconst uint16_t Receptor_Pin = 5;\n\nIRrecv irrecv(Receptor_Pin);\ndecode_results lectura;\n\nvoid setup() {\n    Serial.begin(74880);\/\/74880, 115200\n    while (!Serial){delay(50);}\n    \n    \/\/ Inicia receptor\n    irrecv.enableIRIn();\n    \n    Serial.println(\"\\n Demo: Receptor de IR en espera de mensaje\");\n}\n\nvoid loop() {\n    if (irrecv.decode(&amp;lectura)) {\n        \/\/ print() &amp; println() no maneja enteros largos(uint64_t)\n        serialPrintUint64(lectura.value, HEX);\n        Serial.println(\"\");\n        \n        \/\/ Prepara pr\u00f3ximo valor\n        irrecv.resume();\n    }\n    delay(100);\n}\n<\/code><\/pre>\n\n\n\n<p>Con los c\u00f3digos obtenidos, el siguiente paso consiste en generar los c\u00f3digos usando un LED IR para activar el dispositivo o equipo que se controlaba con el control remoto. Observe y seleccione un c\u00f3digo del ejercicio realizado con el control remoto que haya seleccionado, el dato sirve para el pr\u00f3ximo ejemplo como IR_Emisor.<\/p>\n\n\n\n<p><em><strong>Referencia<\/strong><\/em>:<br><a href=\"https:\/\/learn.sparkfun.com\/tutorials\/ir-communication\/all#hardware-hookup\">https:\/\/learn.sparkfun.com\/tutorials\/ir-communication\/all#hardware-hookup<\/a><br><a href=\"https:\/\/github.com\/markszabo\/IRremoteESP8266\">https:\/\/github.com\/markszabo\/IRremoteESP8266<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Decodificando<\/h3>\n\n\n\n<p>Una versi\u00f3n para obtener m\u00e1s detalles de los c\u00f3digos la presenta en el ejemplo version 2 de Mark Sabo en:<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/markszabo\/IRremoteESP8266\/blob\/master\/examples\/IRrecvDumpV2\/IRrecvDumpV2.ino\">https:\/\/github.com\/markszabo\/IRremoteESP8266\/blob\/master\/examples\/IRrecvDumpV2\/IRrecvDumpV2.ino<\/a><\/p>\n\n\n\n<p>Solo se requiere hacer el ajuste en el pin de sensor al GIPO0<strong>5<\/strong>, con lo que se obtiene para el ejemplo anterior:<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>Timestamp : 000446.026\nEncoding  : NEC\nCode      : FF5AA5 (32 bits)\nLibrary   : v2.6.0\n\nRaw Timing&#091;71]:\n   +  9024, -  4556,    +   548, -   594,    +   546, -   568,    +   544, -   594, \n   +   548, -   592,    +   548, -   568,    +   546, -   594,    +   548, -   592, \n   +   548, -   566,    +   546, -  1738,    +   548, -  1710,    +   550, -  1710, \n   +   544, -  1740,    +   548, -  1712,    +   546, -  1712,    +   546, -  1740, \n   +   546, -  1712,    +   548, -   592,    +   548, -  1710,    +   548, -   592, \n   +   548, -  1710,    +   548, -  1712,    +   546, -   594,    +   548, -  1712, \n   +   544, -   596,    +   548, -  1712,    +   546, -   596,    +   548, -  1710, \n   +   546, -   594,    +   548, -   594,    +   548, -  1712,    +   548, -   592, \n   +   548, -  1710,    +   548, - 40334,    +  9024, -  2294,    +   550\n\nuint16_t rawData&#091;71] = {9024, 4556,  548, 594,  546, 568,  544, 594,  548, 592,  548, 568,  546, 594,  548, 592,  548, 566,  546, 1738,  548, 1710,  550, 1710,  544, 1740,  548, 1712,  546, 1712,  546, 1740,  546, 1712,  548, 592,  548, 1710,  548, 592,  548, 1710,  548, 1712,  546, 594,  548, 1712,  544, 596,  548, 1712,  546, 596,  548, 1710,  546, 594,  548, 594,  548, 1712,  548, 592,  548, 1710,  548, 40334,  9024, 2294,  550};  \/\/ NEC FF5AA5\nuint32_t address = 0x0;\nuint32_t command = 0x5A;\nuint64_t data = 0xFF5AA5;\n<\/code><\/pre>\n\n\n\n<p>La informaci\u00f3n de Code, \"32 bits\" Es necesaria si requiere reproducir la instrucci\u00f3n on irsend.sendNEC(codigo,32).<\/p>\n\n\n\n<p>En el caso de usar otro control remoto se debe disponer del n\u00famero de bits.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p>ESP8266:<\/p>\n\n\n\n<p><a href=\"#emisorir\">Emisor IR<\/a><\/p>\n\n\n\n<p><a href=\"#detectorir\">Detector IR<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n","protected":false},"excerpt":{"rendered":"<p>ESP8266: Emisor IR Detector IR 1. ESP8266 con Emisor IR El circuito permite la emisi\u00f3n de una se\u00f1al infrarroja semejante a un control remoto usando el m\u00f3dulo ESP07-ESP8266. El c\u00f3digo infrarrojo emitido corresponde al obtenido en el ejemplo del receptor infrarrojo. Como emisor se usa un LED IR, complementado con un transistor para aumentar la [&hellip;]<\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1446430],"tags":[],"class_list":["post-1656","post","type-post","status-publish","format-standard","hentry","category-dispositivos-wifi"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/posts\/1656","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/users\/8043"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/comments?post=1656"}],"version-history":[{"count":3,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/posts\/1656\/revisions"}],"predecessor-version":[{"id":4447,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/posts\/1656\/revisions\/4447"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/media?parent=1656"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/categories?post=1656"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/girni\/wp-json\/wp\/v2\/tags?post=1656"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}