Advertisement
Guest User

Untitled

a guest
Apr 5th, 2024
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.79 KB | None | 0 0
  1. #include <ESP8266WiFi.h>
  2. #include <WiFiClient.h>
  3. #include <ESP8266WebServer.h>
  4. #include <IRremoteESP8266.h>
  5. #include <IRsend.h>
  6.  
  7. // WiFi credentials
  8. const char *ssid = "TV_Remote_AP";
  9. const char *password = "password123";
  10.  
  11. // Define the IR LED pin
  12. const uint16_t IR_LED_PIN = D1; // Change D1 to the pin you connected your IR LED
  13.  
  14. // Define the IR transmit codes
  15. #define HOME 0xCD9141E
  16. #define MENU 0x142CB0D6
  17. #define SETTING 0x4EBAF61F
  18. #define BACK 0xD4BE4E37
  19. #define UP 0x1039789F
  20. #define DOWN 0xBB8B3E9E
  21. #define LEFT 0xF0B4BB43
  22. #define RIGHT 0x45481702
  23. #define VOL_UP 0x22D912BB
  24. #define VOL_DOWN 0x776C6E7A
  25. #define POWER_OFF 0x6A68351E
  26. #define NETFLIX 0xC556DBDB
  27. #define T_BUTTON 0x64D4C77B
  28.  
  29. // Number of times to send each IR signal
  30. const int IR_REPEAT_COUNT = 3;
  31.  
  32. ESP8266WebServer server(80);
  33. IRsend irsend(IR_LED_PIN);
  34.  
  35. void handleRoot() {
  36. String page = "<!DOCTYPE html>\
  37. <html>\
  38. <head>\
  39. <title>TV Remote Control</title>\
  40. </head>\
  41. <body>\
  42. <h1>TV Remote Control</h1>\
  43. <form action=\"/button\" method=\"get\">\
  44. <button name=\"btn\" value=\"HOME\">HOME</button>\
  45. <button name=\"btn\" value=\"MENU\">MENU</button>\
  46. <button name=\"btn\" value=\"SETTING\">SETTING</button>\
  47. <button name=\"btn\" value=\"BACK\">BACK</button>\
  48. <button name=\"btn\" value=\"UP\">UP</button>\
  49. <button name=\"btn\" value=\"DOWN\">DOWN</button>\
  50. <button name=\"btn\" value=\"LEFT\">LEFT</button>\
  51. <button name=\"btn\" value=\"RIGHT\">RIGHT</button>\
  52. <button name=\"btn\" value=\"VOL_UP\">VOLUME UP</button>\
  53. <button name=\"btn\" value=\"VOL_DOWN\">VOLUME DOWN</button>\
  54. <button name=\"btn\" value=\"POWER_OFF\">POWER OFF</button>\
  55. <button name=\"btn\" value=\"NETFLIX\">NETFLIX</button>\
  56. <button name=\"btn\" value=\"T_BUTTON\">T</button>\
  57. </form>\
  58. </body>\
  59. </html>";
  60. server.send(200, "text/html", page);
  61. }
  62.  
  63. void handleButton() {
  64. String buttonValue = server.arg("btn");
  65. if (buttonValue == "HOME") {
  66. sendIRSignal(HOME);
  67. } else if (buttonValue == "MENU") {
  68. sendIRSignal(MENU);
  69. } else if (buttonValue == "SETTING") {
  70. sendIRSignal(SETTING);
  71. } else if (buttonValue == "BACK") {
  72. sendIRSignal(BACK);
  73. } else if (buttonValue == "UP") {
  74. sendIRSignal(UP);
  75. } else if (buttonValue == "DOWN") {
  76. sendIRSignal(DOWN);
  77. } else if (buttonValue == "LEFT") {
  78. sendIRSignal(LEFT);
  79. } else if (buttonValue == "RIGHT") {
  80. sendIRSignal(RIGHT);
  81. } else if (buttonValue == "VOL_UP") {
  82. sendIRSignal(VOL_UP);
  83. } else if (buttonValue == "VOL_DOWN") {
  84. sendIRSignal(VOL_DOWN);
  85. } else if (buttonValue == "POWER_OFF") {
  86. sendIRSignal(POWER_OFF);
  87. } else if (buttonValue == "NETFLIX") {
  88. sendIRSignal(NETFLIX);
  89. } else if (buttonValue == "T_BUTTON") {
  90. sendIRSignal(T_BUTTON);
  91. }
  92. handleRoot();
  93. }
  94.  
  95. void sendIRSignal(unsigned long code) {
  96. for (int i = 0; i < IR_REPEAT_COUNT; i++) {
  97. irsend.sendNEC(code, 32); // send NEC IR signal
  98. delay(50); // delay between repeated signals
  99. }
  100. }
  101.  
  102. void setup() {
  103. Serial.begin(115200);
  104.  
  105. // Start access point
  106. WiFi.mode(WIFI_AP);
  107. WiFi.softAP(ssid, password);
  108. IPAddress IP = WiFi.softAPIP();
  109. Serial.print("AP IP address: ");
  110. Serial.println(IP);
  111.  
  112. // Initialize IR sender
  113. irsend.begin();
  114.  
  115. // Set up the web server
  116. server.on("/", handleRoot);
  117. server.on("/button", handleButton);
  118. server.begin();
  119. }
  120.  
  121. void loop() {
  122. server.handleClient();
  123. }
  124.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement