Created
February 18, 2018 09:45
-
-
Save milankragujevic/f7700cdbcde78113eef4d9aaa1bd7da9 to your computer and use it in GitHub Desktop.
Bear DTV-202 Quad IR remote ESP8266/NodeMCU Arduino sketch
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #include <ESP8266WiFi.h> | |
| #include <ESP8266WebServer.h> | |
| #include <ESP8266mDNS.h> | |
| #include <IRremoteESP8266.h> | |
| #include <IRsend.h> | |
| #include <WiFiClient.h> | |
| MDNSResponder mdns; | |
| IRsend irsend1(14); | |
| IRsend irsend2(12); | |
| IRsend irsend3(13); | |
| IRsend irsend4(15); | |
| ESP8266WebServer server(80); | |
| const char* ssid = "[WIFI NAME]"; | |
| const char* password = "[WIFI PASS]"; | |
| const char* mDNSName = "esp8266"; | |
| const uint32_t btnPwr = 0x15629B25; | |
| const uint32_t btnMute = 0x57E346E1; | |
| const uint32_t btnInfo = 0xBBB54321; | |
| const uint32_t btnRecall = 0x6BFD8B01; | |
| const uint32_t btnPause = 0x986FB325; | |
| const uint32_t btnMenu = 0xCEBE4CC1; | |
| const uint32_t btnExit = 0xA6B913BD; | |
| const uint32_t btnUp = 0xD0529225; | |
| const uint32_t btnDown = 0x85E09D61; | |
| const uint32_t btnLeft = 0xC806D53D; | |
| const uint32_t btnRight = 0xD035B645; | |
| const uint32_t btnOk = 0x90C35B01; | |
| const uint32_t btnEpg = 0x73A3CEBD; | |
| const uint32_t btnFav = 0x25802501; | |
| const uint32_t btnPageUp = 0xE7ABE421; | |
| const uint32_t btnPageDown = 0xD51CCE5D; | |
| const uint32_t btn1 = 0xCFB32D61; | |
| const uint32_t btn2 = 0xD32B70FD; | |
| const uint32_t btn3 = 0xDEE522C1; | |
| const uint32_t btn4 = 0x9D3D4D25; | |
| const uint32_t btn5 = 0xE32F7CC1; | |
| const uint32_t btn6 = 0xCBD2CCFD; | |
| const uint32_t btn7 = 0x74514645; | |
| const uint32_t btn8 = 0xBA4375E1; | |
| const uint32_t btn9 = 0xB1EFBA9D; | |
| const uint32_t btn0 = 0x6539FA7D; | |
| const uint32_t btnAudio = 0x168E56C1; | |
| const uint32_t btnLang = 0xA3CC4A5; | |
| const uint32_t btnTvRadio = 0x1E90961; | |
| const uint32_t btnTtx = 0xAAFCAC1; | |
| const uint32_t btnRed = 0x2F1EC521; | |
| const uint32_t btnGreen = 0x7510F4BD; | |
| const uint32_t btnYellow = 0x1644C1C1; | |
| const uint32_t btnBlue = 0xC98F01A1; | |
| void handleRequest() { | |
| String message = ""; | |
| if(server.arg("code") == "") { | |
| message = "MISSING_PARAM_CODE"; | |
| } else { | |
| if(server.arg("tx") == "") { | |
| message = "MISSING_PARAM_TX"; | |
| } else { | |
| if(server.arg("code") == "btnPwr") { | |
| if(server.arg("tx") == "1") { | |
| irsend1.sendNEC(btnPwr, 32); | |
| } | |
| if(server.arg("tx") == "2") { | |
| irsend2.sendNEC(btnPwr, 32); | |
| } | |
| if(server.arg("tx") == "3") { | |
| irsend3.sendNEC(btnPwr, 32); | |
| } | |
| if(server.arg("tx") == "4") { | |
| irsend4.sendNEC(btnPwr, 32); | |
| } | |
| message = "OK"; | |
| } | |
| if(server.arg("code") == "btnMute") { | |
| if(server.arg("tx") == "1") { | |
| irsend1.sendNEC(btnMute, 32); | |
| } | |
| if(server.arg("tx") == "2") { | |
| irsend2.sendNEC(btnMute, 32); | |
| } | |
| if(server.arg("tx") == "3") { | |
| irsend3.sendNEC(btnMute, 32); | |
| } | |
| if(server.arg("tx") == "4") { | |
| irsend4.sendNEC(btnMute, 32); | |
| } | |
| message = "OK"; | |
| } | |
| if(server.arg("code") == "btnInfo") { | |
| if(server.arg("tx") == "1") { | |
| irsend1.sendNEC(btnInfo, 32); | |
| } | |
| if(server.arg("tx") == "2") { | |
| irsend2.sendNEC(btnInfo, 32); | |
| } | |
| if(server.arg("tx") == "3") { | |
| irsend3.sendNEC(btnInfo, 32); | |
| } | |
| if(server.arg("tx") == "4") { | |
| irsend4.sendNEC(btnInfo, 32); | |
| } | |
| message = "OK"; | |
| } | |
| if(server.arg("code") == "btnRecall") { | |
| if(server.arg("tx") == "1") { | |
| irsend1.sendNEC(btnRecall, 32); | |
| } | |
| if(server.arg("tx") == "2") { | |
| irsend2.sendNEC(btnRecall, 32); | |
| } | |
| if(server.arg("tx") == "3") { | |
| irsend3.sendNEC(btnRecall, 32); | |
| } | |
| if(server.arg("tx") == "4") { | |
| irsend4.sendNEC(btnRecall, 32); | |
| } | |
| message = "OK"; | |
| } | |
| if(server.arg("code") == "btnPause") { | |
| if(server.arg("tx") == "1") { | |
| irsend1.sendNEC(btnPause, 32); | |
| } | |
| if(server.arg("tx") == "2") { | |
| irsend2.sendNEC(btnPause, 32); | |
| } | |
| if(server.arg("tx") == "3") { | |
| irsend3.sendNEC(btnPause, 32); | |
| } | |
| if(server.arg("tx") == "4") { | |
| irsend4.sendNEC(btnPause, 32); | |
| } | |
| message = "OK"; | |
| } | |
| if(server.arg("code") == "btnMenu") { | |
| if(server.arg("tx") == "1") { | |
| irsend1.sendNEC(btnMenu, 32); | |
| } | |
| if(server.arg("tx") == "2") { | |
| irsend2.sendNEC(btnMenu, 32); | |
| } | |
| if(server.arg("tx") == "3") { | |
| irsend3.sendNEC(btnMenu, 32); | |
| } | |
| if(server.arg("tx") == "4") { | |
| irsend4.sendNEC(btnMenu, 32); | |
| } | |
| message = "OK"; | |
| } | |
| if(server.arg("code") == "btnExit") { | |
| if(server.arg("tx") == "1") { | |
| irsend1.sendNEC(btnExit, 32); | |
| } | |
| if(server.arg("tx") == "2") { | |
| irsend2.sendNEC(btnExit, 32); | |
| } | |
| if(server.arg("tx") == "3") { | |
| irsend3.sendNEC(btnExit, 32); | |
| } | |
| if(server.arg("tx") == "4") { | |
| irsend4.sendNEC(btnExit, 32); | |
| } | |
| message = "OK"; | |
| } | |
| if(server.arg("code") == "btnUp") { | |
| if(server.arg("tx") == "1") { | |
| irsend1.sendNEC(btnUp, 32); | |
| } | |
| if(server.arg("tx") == "2") { | |
| irsend2.sendNEC(btnUp, 32); | |
| } | |
| if(server.arg("tx") == "3") { | |
| irsend3.sendNEC(btnUp, 32); | |
| } | |
| if(server.arg("tx") == "4") { | |
| irsend4.sendNEC(btnUp, 32); | |
| } | |
| message = "OK"; | |
| } | |
| if(server.arg("code") == "btnDown (Down)") { | |
| if(server.arg("tx") == "1") { | |
| irsend1.sendNEC(btnDown, 32); | |
| } | |
| if(server.arg("tx") == "2") { | |
| irsend2.sendNEC(btnDown, 32); | |
| } | |
| if(server.arg("tx") == "3") { | |
| irsend3.sendNEC(btnDown, 32); | |
| } | |
| if(server.arg("tx") == "4") { | |
| irsend4.sendNEC(btnDown, 32); | |
| } | |
| message = "OK"; | |
| } | |
| if(server.arg("code") == "btnLeft") { | |
| if(server.arg("tx") == "1") { | |
| irsend1.sendNEC(btnLeft, 32); | |
| } | |
| if(server.arg("tx") == "2") { | |
| irsend2.sendNEC(btnLeft, 32); | |
| } | |
| if(server.arg("tx") == "3") { | |
| irsend3.sendNEC(btnLeft, 32); | |
| } | |
| if(server.arg("tx") == "4") { | |
| irsend4.sendNEC(btnLeft, 32); | |
| } | |
| message = "OK"; | |
| } | |
| if(server.arg("code") == "btnRight") { | |
| if(server.arg("tx") == "1") { | |
| irsend1.sendNEC(btnRight, 32); | |
| } | |
| if(server.arg("tx") == "2") { | |
| irsend2.sendNEC(btnRight, 32); | |
| } | |
| if(server.arg("tx") == "3") { | |
| irsend3.sendNEC(btnRight, 32); | |
| } | |
| if(server.arg("tx") == "4") { | |
| irsend4.sendNEC(btnRight, 32); | |
| } | |
| message = "OK"; | |
| } | |
| if(server.arg("code") == "btnOk") { | |
| if(server.arg("tx") == "1") { | |
| irsend1.sendNEC(btnOk, 32); | |
| } | |
| if(server.arg("tx") == "2") { | |
| irsend2.sendNEC(btnOk, 32); | |
| } | |
| if(server.arg("tx") == "3") { | |
| irsend3.sendNEC(btnOk, 32); | |
| } | |
| if(server.arg("tx") == "4") { | |
| irsend4.sendNEC(btnOk, 32); | |
| } | |
| message = "OK"; | |
| } | |
| if(server.arg("code") == "btnEpg") { | |
| if(server.arg("tx") == "1") { | |
| irsend1.sendNEC(btnEpg, 32); | |
| } | |
| if(server.arg("tx") == "2") { | |
| irsend2.sendNEC(btnEpg, 32); | |
| } | |
| if(server.arg("tx") == "3") { | |
| irsend3.sendNEC(btnEpg, 32); | |
| } | |
| if(server.arg("tx") == "4") { | |
| irsend4.sendNEC(btnEpg, 32); | |
| } | |
| message = "OK"; | |
| } | |
| if(server.arg("code") == "btnFav") { | |
| if(server.arg("tx") == "1") { | |
| irsend1.sendNEC(btnFav, 32); | |
| } | |
| if(server.arg("tx") == "2") { | |
| irsend2.sendNEC(btnFav, 32); | |
| } | |
| if(server.arg("tx") == "3") { | |
| irsend3.sendNEC(btnFav, 32); | |
| } | |
| if(server.arg("tx") == "4") { | |
| irsend4.sendNEC(btnFav, 32); | |
| } | |
| message = "OK"; | |
| } | |
| if(server.arg("code") == "btnPageUp") { | |
| if(server.arg("tx") == "1") { | |
| irsend1.sendNEC(btnPageUp, 32); | |
| } | |
| if(server.arg("tx") == "2") { | |
| irsend2.sendNEC(btnPageUp, 32); | |
| } | |
| if(server.arg("tx") == "3") { | |
| irsend3.sendNEC(btnPageUp, 32); | |
| } | |
| if(server.arg("tx") == "4") { | |
| irsend4.sendNEC(btnPageUp, 32); | |
| } | |
| message = "OK"; | |
| } | |
| if(server.arg("code") == "btnPageDown") { | |
| if(server.arg("tx") == "1") { | |
| irsend1.sendNEC(btnPageDown, 32); | |
| } | |
| if(server.arg("tx") == "2") { | |
| irsend2.sendNEC(btnPageDown, 32); | |
| } | |
| if(server.arg("tx") == "3") { | |
| irsend3.sendNEC(btnPageDown, 32); | |
| } | |
| if(server.arg("tx") == "4") { | |
| irsend4.sendNEC(btnPageDown, 32); | |
| } | |
| message = "OK"; | |
| } | |
| if(server.arg("code") == "btn1") { | |
| if(server.arg("tx") == "1") { | |
| irsend1.sendNEC(btn1, 32); | |
| } | |
| if(server.arg("tx") == "2") { | |
| irsend2.sendNEC(btn1, 32); | |
| } | |
| if(server.arg("tx") == "3") { | |
| irsend3.sendNEC(btn1, 32); | |
| } | |
| if(server.arg("tx") == "4") { | |
| irsend4.sendNEC(btn1, 32); | |
| } | |
| message = "OK"; | |
| } | |
| if(server.arg("code") == "btn2") { | |
| if(server.arg("tx") == "1") { | |
| irsend1.sendNEC(btn2, 32); | |
| } | |
| if(server.arg("tx") == "2") { | |
| irsend2.sendNEC(btn2, 32); | |
| } | |
| if(server.arg("tx") == "3") { | |
| irsend3.sendNEC(btn2, 32); | |
| } | |
| if(server.arg("tx") == "4") { | |
| irsend4.sendNEC(btn2, 32); | |
| } | |
| message = "OK"; | |
| } | |
| if(server.arg("code") == "btn3") { | |
| if(server.arg("tx") == "1") { | |
| irsend1.sendNEC(btn3, 32); | |
| } | |
| if(server.arg("tx") == "2") { | |
| irsend2.sendNEC(btn3, 32); | |
| } | |
| if(server.arg("tx") == "3") { | |
| irsend3.sendNEC(btn3, 32); | |
| } | |
| if(server.arg("tx") == "4") { | |
| irsend4.sendNEC(btn3, 32); | |
| } | |
| message = "OK"; | |
| } | |
| if(server.arg("code") == "btn4") { | |
| if(server.arg("tx") == "1") { | |
| irsend1.sendNEC(btn4, 32); | |
| } | |
| if(server.arg("tx") == "2") { | |
| irsend2.sendNEC(btn4, 32); | |
| } | |
| if(server.arg("tx") == "3") { | |
| irsend3.sendNEC(btn4, 32); | |
| } | |
| if(server.arg("tx") == "4") { | |
| irsend4.sendNEC(btn4, 32); | |
| } | |
| message = "OK"; | |
| } | |
| if(server.arg("code") == "btn5") { | |
| if(server.arg("tx") == "1") { | |
| irsend1.sendNEC(btn5, 32); | |
| } | |
| if(server.arg("tx") == "2") { | |
| irsend2.sendNEC(btn5, 32); | |
| } | |
| if(server.arg("tx") == "3") { | |
| irsend3.sendNEC(btn5, 32); | |
| } | |
| if(server.arg("tx") == "4") { | |
| irsend4.sendNEC(btn5, 32); | |
| } | |
| message = "OK"; | |
| } | |
| if(server.arg("code") == "btn6") { | |
| if(server.arg("tx") == "1") { | |
| irsend1.sendNEC(btn6, 32); | |
| } | |
| if(server.arg("tx") == "2") { | |
| irsend2.sendNEC(btn6, 32); | |
| } | |
| if(server.arg("tx") == "3") { | |
| irsend3.sendNEC(btn6, 32); | |
| } | |
| if(server.arg("tx") == "4") { | |
| irsend4.sendNEC(btn6, 32); | |
| } | |
| message = "OK"; | |
| } | |
| if(server.arg("code") == "btn7") { | |
| if(server.arg("tx") == "1") { | |
| irsend1.sendNEC(btn7, 32); | |
| } | |
| if(server.arg("tx") == "2") { | |
| irsend2.sendNEC(btn7, 32); | |
| } | |
| if(server.arg("tx") == "3") { | |
| irsend3.sendNEC(btn7, 32); | |
| } | |
| if(server.arg("tx") == "4") { | |
| irsend4.sendNEC(btn7, 32); | |
| } | |
| message = "OK"; | |
| } | |
| if(server.arg("code") == "btn8") { | |
| if(server.arg("tx") == "1") { | |
| irsend1.sendNEC(btn8, 32); | |
| } | |
| if(server.arg("tx") == "2") { | |
| irsend2.sendNEC(btn8, 32); | |
| } | |
| if(server.arg("tx") == "3") { | |
| irsend3.sendNEC(btn8, 32); | |
| } | |
| if(server.arg("tx") == "4") { | |
| irsend4.sendNEC(btn8, 32); | |
| } | |
| message = "OK"; | |
| } | |
| if(server.arg("code") == "btn9") { | |
| if(server.arg("tx") == "1") { | |
| irsend1.sendNEC(btn9, 32); | |
| } | |
| if(server.arg("tx") == "2") { | |
| irsend2.sendNEC(btn9, 32); | |
| } | |
| if(server.arg("tx") == "3") { | |
| irsend3.sendNEC(btn9, 32); | |
| } | |
| if(server.arg("tx") == "4") { | |
| irsend4.sendNEC(btn9, 32); | |
| } | |
| message = "OK"; | |
| } | |
| if(server.arg("code") == "btn0") { | |
| if(server.arg("tx") == "1") { | |
| irsend1.sendNEC(btn0, 32); | |
| } | |
| if(server.arg("tx") == "2") { | |
| irsend2.sendNEC(btn0, 32); | |
| } | |
| if(server.arg("tx") == "3") { | |
| irsend3.sendNEC(btn0, 32); | |
| } | |
| if(server.arg("tx") == "4") { | |
| irsend4.sendNEC(btn0, 32); | |
| } | |
| message = "OK"; | |
| } | |
| if(server.arg("code") == "btnAudio") { | |
| if(server.arg("tx") == "1") { | |
| irsend1.sendNEC(btnAudio, 32); | |
| } | |
| if(server.arg("tx") == "2") { | |
| irsend2.sendNEC(btnAudio, 32); | |
| } | |
| if(server.arg("tx") == "3") { | |
| irsend3.sendNEC(btnAudio, 32); | |
| } | |
| if(server.arg("tx") == "4") { | |
| irsend4.sendNEC(btnAudio, 32); | |
| } | |
| message = "OK"; | |
| } | |
| if(server.arg("code") == "btnLang") { | |
| if(server.arg("tx") == "1") { | |
| irsend1.sendNEC(btnLang, 32); | |
| } | |
| if(server.arg("tx") == "2") { | |
| irsend2.sendNEC(btnLang, 32); | |
| } | |
| if(server.arg("tx") == "3") { | |
| irsend3.sendNEC(btnLang, 32); | |
| } | |
| if(server.arg("tx") == "4") { | |
| irsend4.sendNEC(btnLang, 32); | |
| } | |
| message = "OK"; | |
| } | |
| if(server.arg("code") == "btnTvRadio") { | |
| if(server.arg("tx") == "1") { | |
| irsend1.sendNEC(btnTvRadio, 32); | |
| } | |
| if(server.arg("tx") == "2") { | |
| irsend2.sendNEC(btnTvRadio, 32); | |
| } | |
| if(server.arg("tx") == "3") { | |
| irsend3.sendNEC(btnTvRadio, 32); | |
| } | |
| if(server.arg("tx") == "4") { | |
| irsend4.sendNEC(btnTvRadio, 32); | |
| } | |
| message = "OK"; | |
| } | |
| if(server.arg("code") == "btnTtx") { | |
| if(server.arg("tx") == "1") { | |
| irsend1.sendNEC(btnTtx, 32); | |
| } | |
| if(server.arg("tx") == "2") { | |
| irsend2.sendNEC(btnTtx, 32); | |
| } | |
| if(server.arg("tx") == "3") { | |
| irsend3.sendNEC(btnTtx, 32); | |
| } | |
| if(server.arg("tx") == "4") { | |
| irsend4.sendNEC(btnTtx, 32); | |
| } | |
| message = "OK"; | |
| } | |
| if(server.arg("code") == "btnRed") { | |
| if(server.arg("tx") == "1") { | |
| irsend1.sendNEC(btnRed, 32); | |
| } | |
| if(server.arg("tx") == "2") { | |
| irsend2.sendNEC(btnRed, 32); | |
| } | |
| if(server.arg("tx") == "3") { | |
| irsend3.sendNEC(btnRed, 32); | |
| } | |
| if(server.arg("tx") == "4") { | |
| irsend4.sendNEC(btnRed, 32); | |
| } | |
| message = "OK"; | |
| } | |
| if(server.arg("code") == "btnGreen") { | |
| if(server.arg("tx") == "1") { | |
| irsend1.sendNEC(btnGreen, 32); | |
| } | |
| if(server.arg("tx") == "2") { | |
| irsend2.sendNEC(btnGreen, 32); | |
| } | |
| if(server.arg("tx") == "3") { | |
| irsend3.sendNEC(btnGreen, 32); | |
| } | |
| if(server.arg("tx") == "4") { | |
| irsend4.sendNEC(btnGreen, 32); | |
| } | |
| message = "OK"; | |
| } | |
| if(server.arg("code") == "btnYellow") { | |
| if(server.arg("tx") == "1") { | |
| irsend1.sendNEC(btnYellow, 32); | |
| } | |
| if(server.arg("tx") == "2") { | |
| irsend2.sendNEC(btnYellow, 32); | |
| } | |
| if(server.arg("tx") == "3") { | |
| irsend3.sendNEC(btnYellow, 32); | |
| } | |
| if(server.arg("tx") == "4") { | |
| irsend4.sendNEC(btnYellow, 32); | |
| } | |
| message = "OK"; | |
| } | |
| if(server.arg("code") == "btnBlue") { | |
| if(server.arg("tx") == "1") { | |
| irsend1.sendNEC(btnBlue, 32); | |
| } | |
| if(server.arg("tx") == "2") { | |
| irsend2.sendNEC(btnBlue, 32); | |
| } | |
| if(server.arg("tx") == "3") { | |
| irsend3.sendNEC(btnBlue, 32); | |
| } | |
| if(server.arg("tx") == "4") { | |
| irsend4.sendNEC(btnBlue, 32); | |
| } | |
| message = "OK"; | |
| } | |
| } | |
| } | |
| server.sendHeader("Access-Control-Allow-Origin", "*"); | |
| server.send(200, "text/plain", message); | |
| } | |
| void setup() { | |
| Serial.begin(115200); | |
| delay(10); | |
| irsend1.begin(); | |
| irsend2.begin(); | |
| irsend3.begin(); | |
| irsend4.begin(); | |
| Serial.println(); | |
| Serial.println("DTV-202 Quad 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)) { | |
| Serial.println("MDNS responder started"); | |
| String identifyMessage = "Identified as "; | |
| identifyMessage += mDNSName; | |
| Serial.println(identifyMessage); | |
| } else { | |
| Serial.println("Couldn't start MDNS responder!"); | |
| } | |
| server.on("/", handleRequest); | |
| server.onNotFound([](){ | |
| server.sendHeader("Access-Control-Allow-Origin", "*"); | |
| server.send(404, "text/plain", "PAGE_NOT_FOUND"); | |
| }); | |
| 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