Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <ESP8266WiFi.h>
- #include <WiFiClient.h>
- #include <ESP8266WebServer.h>
- #include <IRremoteESP8266.h>
- #include <IRsend.h>
- // WiFi credentials
- const char *ssid = "TV_Remote_AP";
- const char *password = "password123";
- // Define the IR LED pin
- const uint16_t IR_LED_PIN = D1; // Change D1 to the pin you connected your IR LED
- // Define the IR transmit codes
- #define HOME 0xCD9141E
- #define MENU 0x142CB0D6
- #define SETTING 0x4EBAF61F
- #define BACK 0xD4BE4E37
- #define UP 0x1039789F
- #define DOWN 0xBB8B3E9E
- #define LEFT 0xF0B4BB43
- #define RIGHT 0x45481702
- #define VOL_UP 0x22D912BB
- #define VOL_DOWN 0x776C6E7A
- #define POWER_OFF 0x6A68351E
- #define NETFLIX 0xC556DBDB
- #define T_BUTTON 0x64D4C77B
- // Number of times to send each IR signal
- const int IR_REPEAT_COUNT = 3;
- ESP8266WebServer server(80);
- IRsend irsend(IR_LED_PIN);
- void handleRoot() {
- String page = "<!DOCTYPE html>\
- <html>\
- <head>\
- <title>TV Remote Control</title>\
- </head>\
- <body>\
- <h1>TV Remote Control</h1>\
- <form action=\"/button\" method=\"get\">\
- <button name=\"btn\" value=\"HOME\">HOME</button>\
- <button name=\"btn\" value=\"MENU\">MENU</button>\
- <button name=\"btn\" value=\"SETTING\">SETTING</button>\
- <button name=\"btn\" value=\"BACK\">BACK</button>\
- <button name=\"btn\" value=\"UP\">UP</button>\
- <button name=\"btn\" value=\"DOWN\">DOWN</button>\
- <button name=\"btn\" value=\"LEFT\">LEFT</button>\
- <button name=\"btn\" value=\"RIGHT\">RIGHT</button>\
- <button name=\"btn\" value=\"VOL_UP\">VOLUME UP</button>\
- <button name=\"btn\" value=\"VOL_DOWN\">VOLUME DOWN</button>\
- <button name=\"btn\" value=\"POWER_OFF\">POWER OFF</button>\
- <button name=\"btn\" value=\"NETFLIX\">NETFLIX</button>\
- <button name=\"btn\" value=\"T_BUTTON\">T</button>\
- </form>\
- </body>\
- </html>";
- server.send(200, "text/html", page);
- }
- void handleButton() {
- String buttonValue = server.arg("btn");
- if (buttonValue == "HOME") {
- sendIRSignal(HOME);
- } else if (buttonValue == "MENU") {
- sendIRSignal(MENU);
- } else if (buttonValue == "SETTING") {
- sendIRSignal(SETTING);
- } else if (buttonValue == "BACK") {
- sendIRSignal(BACK);
- } else if (buttonValue == "UP") {
- sendIRSignal(UP);
- } else if (buttonValue == "DOWN") {
- sendIRSignal(DOWN);
- } else if (buttonValue == "LEFT") {
- sendIRSignal(LEFT);
- } else if (buttonValue == "RIGHT") {
- sendIRSignal(RIGHT);
- } else if (buttonValue == "VOL_UP") {
- sendIRSignal(VOL_UP);
- } else if (buttonValue == "VOL_DOWN") {
- sendIRSignal(VOL_DOWN);
- } else if (buttonValue == "POWER_OFF") {
- sendIRSignal(POWER_OFF);
- } else if (buttonValue == "NETFLIX") {
- sendIRSignal(NETFLIX);
- } else if (buttonValue == "T_BUTTON") {
- sendIRSignal(T_BUTTON);
- }
- handleRoot();
- }
- void sendIRSignal(unsigned long code) {
- for (int i = 0; i < IR_REPEAT_COUNT; i++) {
- irsend.sendNEC(code, 32); // send NEC IR signal
- delay(50); // delay between repeated signals
- }
- }
- void setup() {
- Serial.begin(115200);
- // Start access point
- WiFi.mode(WIFI_AP);
- WiFi.softAP(ssid, password);
- IPAddress IP = WiFi.softAPIP();
- Serial.print("AP IP address: ");
- Serial.println(IP);
- // Initialize IR sender
- irsend.begin();
- // Set up the web server
- server.on("/", handleRoot);
- server.on("/button", handleButton);
- server.begin();
- }
- void loop() {
- server.handleClient();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement