Skip to content

Instantly share code, notes, and snippets.

@milankragujevic
Created October 5, 2017 17:09
Show Gist options
  • Save milankragujevic/38d51d89a746538f79d9ed82ca646500 to your computer and use it in GitHub Desktop.
Save milankragujevic/38d51d89a746538f79d9ed82ca646500 to your computer and use it in GitHub Desktop.
mts Huawei EC2108v5 IR remote ESP8266
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
#include <IRremoteESP8266.h>
#include <IRsend.h>
#include <WiFiClient.h>
MDNSResponder mdns;
IRsend irsend(14);
ESP8266WebServer server(80);
const char* ssid = "[WIFI NAME]";
const char* password = "[WIFI PASS]";
const char* mDNSName = "esp8266";
const uint32_t chUp = 0xCD32A15E;
const uint32_t chDown = 0xCD32619E;
const uint32_t btn1 = 0xCD3249B6;
const uint32_t btn2 = 0xCD32C936;
const uint32_t btn3 = 0xCD3233CC;
const uint32_t btn4 = 0xCD32718E;
const uint32_t btn5 = 0xCD32F10E;
const uint32_t btn6 = 0xCD3213EC;
const uint32_t btn7 = 0xCD3251AE;
const uint32_t btn8 = 0xCD32D12E;
const uint32_t btn9 = 0xCD3223DC;
const uint32_t btn0 = 0xCD32E11E;
const uint32_t pwr = 0xCD32817E;
const uint32_t ok = 0xCD32738C;
const uint32_t up = 0xCD32738C;
const uint32_t down = 0xCD324BB4;
const uint32_t left = 0xCD329966;
const uint32_t right = 0xCD32837C;
const uint32_t info = 0xCD32C33C;
const uint32_t back = 0xCD32A35C;
const uint32_t home = 0xCD3211EE;
const uint32_t volUp = 0xCD3201FE;
const uint32_t volDown = 0xCD32817E;
void handleRequest() {
String message = "";
if(server.arg("code") == "") {
message = "MISSING_PARAM_CODE";
} else {
message = "HARDWARE_ERROR";
}
if(server.arg("code") == "chUp") {
irsend.sendNEC(chUp, 32);
message = "OK";
}
if(server.arg("code") == "chDown") {
irsend.sendNEC(chDown, 32);
message = "OK";
}
if(server.arg("code") == "btn1") {
irsend.sendNEC(btn1, 32);
message = "OK";
}
if(server.arg("code") == "btn2") {
irsend.sendNEC(btn2, 32);
message = "OK";
}
if(server.arg("code") == "btn3") {
irsend.sendNEC(btn3, 32);
message = "OK";
}
if(server.arg("code") == "btn4") {
irsend.sendNEC(btn4, 32);
message = "OK";
}
if(server.arg("code") == "btn5") {
irsend.sendNEC(btn5, 32);
message = "OK";
}
if(server.arg("code") == "btn6") {
irsend.sendNEC(btn6, 32);
message = "OK";
}
if(server.arg("code") == "btn7") {
irsend.sendNEC(btn7, 32);
message = "OK";
}
if(server.arg("code") == "btn8") {
irsend.sendNEC(btn8, 32);
message = "OK";
}
if(server.arg("code") == "btn9") {
irsend.sendNEC(btn9, 32);
message = "OK";
}
if(server.arg("code") == "btn0") {
irsend.sendNEC(btn0, 32);
message = "OK";
}
if(server.arg("code") == "pwr") {
irsend.sendNEC(pwr, 32);
message = "OK";
}
if(server.arg("code") == "ok") {
irsend.sendNEC(ok, 32);
message = "OK";
}
if(server.arg("code") == "up") {
irsend.sendNEC(up, 32);
message = "OK";
}
if(server.arg("code") == "down") {
irsend.sendNEC(down, 32);
message = "OK";
}
if(server.arg("code") == "left") {
irsend.sendNEC(left, 32);
message = "OK";
}
if(server.arg("code") == "right") {
irsend.sendNEC(right, 32);
message = "OK";
}
if(server.arg("code") == "info") {
irsend.sendNEC(info, 32);
message = "OK";
}
if(server.arg("code") == "back") {
irsend.sendNEC(back, 32);
message = "OK";
}
if(server.arg("code") == "home") {
irsend.sendNEC(home, 32);
message = "OK";
}
if(server.arg("code") == "volUp") {
irsend.sendNEC(volUp, 32);
message = "OK";
}
if(server.arg("code") == "volDown") {
irsend.sendNEC(volDown, 32);
message = "OK";
}
server.send(200, "text/plain", message);
}
void setup() {
Serial.begin(115200);
delay(10);
irsend.begin();
Serial.println();
Serial.println("Telekom STB IR Bridge");
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
Serial.println("");
if(mdns.begin(mDNSName, WiFi.localIP())) {
Serial.println("MDNS responder started");
String identifyMessage = "Identified as ";
identifyMessage += mDNSName;
Serial.println(identifyMessage);
}
server.on("/", handleRequest);
server.onNotFound([](){
server.send(404, "text/plain", "METHOD_NOT_SUPPORTED");
});
server.begin();
Serial.println("Server started on port 80");
}
void loop() {
server.handleClient();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment