#include #include #include #include #include "PinDefinitionsAndMore.h" #include #define NO_LED_FEEDBACK_CODE // saves 418 bytes program memory #define IR_SEND_PIN 12 // Pin number (GPIO pin ref, this matches D5 of the ESP8266) // 2D array of devices and codes per device uint32_t device[3][10] = { {0x23DCFD01, 0x6A95FD01, 0x3AC5FD01, 0x22DDFD01, 0x738CFD01, 0x7B84FD01, 0x38C7FD01,0x35CAFD01,0x35CAFD01},//dishtv (on/off,ch+.ch-,v+.v-,prgm,exit,menu+,menu-) {0xFE015343, 0xEE115343, 0xCC335343, 0xC43B5343}, //samsung (on/off,source,v+,v-) {0xF708FB04, 0xF40BFB04, 0xBB44FB04, 0xF807FB04, 0xF906FB04, 0xA45BFB04} // lgtv (on/off,input,ok,sel-L,sel-R,exit) }; uint8_t sRepeats = 0; // IR sender function, transmit twice which seems to be how many times it recorded on a single push void transmit(int d, int i,int del) { IrSender.sendNECRaw(device[d][i], 0); delayMicroseconds(96800); // delay must be greater than 5 ms (RECORD_GAP_MICROS), otherwise the receiver sees it as one long signal IrSender.sendNECRaw(device[d][i], 0); } const char *ssid = "[your ssid]"; const char *password = "[your password"; ESP8266WebServer server ( 80 ); // HTML page code, incl CSS and javascript const char MAIN_page[] PROGMEM = R"=====( Our Remotes

Multi-Remote











)====="; // What do show on server root void handleRoot() { server.send ( 200, "text/html", MAIN_page ); } void handleNotFound() { String message = "File Not Found\n\n"; message += "URI: "; message += server.uri(); message += "\nMethod: "; message += ( server.method() == HTTP_GET ) ? "GET" : "POST"; message += "\nArguments: "; message += server.args(); message += "\n"; for ( uint8_t i = 0; i < server.args(); i++ ) { message += " " + server.argName ( i ) + ": " + server.arg ( i ) + "\n"; } server.send ( 404, "text/plain", message ); } void setup ( void ) { Serial.begin ( 115200 ); WiFi.begin ( ssid, password ); // Wait for connection while ( WiFi.status() != WL_CONNECTED ) { delay ( 500 ); } //Serial.println ( WiFi.localIP() ); if ( MDNS.begin ( "esp8266" ) ) { Serial.println ( "MDNS responder started" ); } server.on ( "/", handleRoot ); server.on ( "/godata", []() { transmit(server.arg(0).toInt(),server.arg(1).toInt()); server.send ( 200, "text/html", MAIN_page ); } ); server.onNotFound ( handleNotFound ); server.begin(); IrSender.begin(); } void loop ( void ) { server.handleClient(); }