Advertisement
Guest User

esp8266irserver

a guest
May 3rd, 2016
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.03 KB | None | 0 0
  1. /*
  2. * IRremoteESP8266: IRServer - demonstrates sending IR codes controlled from a webserver
  3. * An IR LED must be connected to ESP8266 pin 0.
  4. * Version 0.1 June, 2015
  5. */
  6.  
  7. #include <ESP8266WiFi.h>
  8. #include <WiFiClient.h>
  9. #include <ESP8266WebServer.h>
  10. #include <ESP8266mDNS.h>
  11. #include <IRremoteESP8266.h>
  12.  
  13. const char* ssid = "xxxxx";
  14. const char* password = "xxxxx";
  15. MDNSResponder mdns;
  16.  
  17. ESP8266WebServer server(80);
  18.  
  19. IRsend irsend(2);
  20.  
  21. void handleRoot() {
  22. server.send(200, "text/html", "<html><head> <title>ESP8266 IR Remote</title></head><body><h1>ESP8266 IR Remote</h1><p><a href=\"ir?code=554108155\">Send 210704FB (TV ON/OFF)</a></p><p><a href=\"ir?raw=123456789\">FAN ON AND OSC</a></p><p><a href=\"ir?raw=414094305\">Send F6D1C6CE (FAN ON/OFF)</a></p><p><a href=\"ir?raw=146495997\">Send 575183E6 (FAN OSC)</a></p><p><a href=\"ir?raw=288285118\">Send ABD4D16E (FAN Add timer +1)</a></p></body></html>");
  23. }
  24.  
  25. void handleIr(){
  26. for (uint8_t i=0; i<server.args(); i++){
  27. if(server.argName(i) == "code")
  28. {
  29. // unsigned long code = server.arg(i).toInt();
  30. // irsend.sendNEC(code, 32);
  31. unsigned int tv[67] = {8850,4450, 600,600, 550,600, 600,1700, 600,600, 600,600, 600,600, 600,600, 550,1700, 600,600, 600,600, 600,600, 600,600, 600,600, 600,1700, 600,1700, 600,1700, 600,600, 600,600, 600,600, 550,600, 600,600, 600,1700, 600,600, 600,600, 600,1700, 600,1700, 600,1700, 600,1700, 600,1700, 600,600, 550,1700, 600,1700, 600}; // NEC 210704FB
  32. irsend.sendRaw(tv, 67, 38);
  33. }
  34. else if(server.argName(i) == "raw")
  35. {
  36. unsigned long raw = server.arg(i).toInt();
  37. if (raw == 123456789) { // fan on and osc
  38. unsigned int fanOn[99] = {1300,450, 1300,450, 450,1250, 1300,450, 1300,450, 450,1250, 450,1250, 500,1250, 450,1250, 450,1250, 400,1300, 1250,7250, 1250,500, 1250,500, 400,1300, 1250,500, 1250,500, 400,1300, 400,1300, 400,1300, 400,1300, 400,1300, 400,1300, 1250,7250, 1250,500, 1250,500, 400,1300, 1300,500, 1250,500, 400,1300, 400,1300, 400,1300, 400,1300, 400,1300, 400,1250, 1300,7250, 1250,500, 1250,500, 400,1300, 1250,500, 1300,450, 450,1300, 400,1300, 400,1250, 450,1300, 400,1300, 400,1300, 1250,7250, 1250,500, 1300}; // UNKNOWN F6D1C6CE
  39. irsend.sendRaw(fanOn, 99, 38);
  40. delay(1000);
  41. unsigned int fanOsc[99] = {1300,400, 1400,400, 500,1200, 1300,450, 1400,350, 500,1250, 550,1200, 550,1200, 1400,400, 500,1250, 500,1200, 550,7950, 1400,350, 1400,350, 550,1200, 1350,400, 1350,350, 550,1200, 550,1200, 500,1250, 1400,350, 550,1200, 500,1250, 500,8000, 1300,450, 1350,400, 500,1250, 1400,350, 1350,400, 450,1300, 500,1200, 550,1250, 1250,450, 500,1250, 500,1250, 550,8000, 1350,400, 1350,400, 500,1250, 1350,400, 1350,400, 500,1250, 550,1250, 450,1300, 1400,350, 550,1200, 550,1250, 500,7950, 1400,350, 1400}; // UNKNOWN 7A2823E9
  42. irsend.sendRaw(fanOsc, 99, 38);
  43. }
  44. if (raw == 414094305) { // fan on/off
  45. unsigned int fanOnOff[99] = {1300,450, 1300,450, 450,1250, 1300,450, 1300,450, 450,1250, 450,1250, 500,1250, 450,1250, 450,1250, 400,1300, 1250,7250, 1250,500, 1250,500, 400,1300, 1250,500, 1250,500, 400,1300, 400,1300, 400,1300, 400,1300, 400,1300, 400,1300, 1250,7250, 1250,500, 1250,500, 400,1300, 1300,500, 1250,500, 400,1300, 400,1300, 400,1300, 400,1300, 400,1300, 400,1250, 1300,7250, 1250,500, 1250,500, 400,1300, 1250,500, 1300,450, 450,1300, 400,1300, 400,1250, 450,1300, 400,1300, 400,1300, 1250,7250, 1250,500, 1300}; // UNKNOWN F6D1C6CE
  46. irsend.sendRaw(fanOnOff, 99, 38);
  47. }
  48. if (raw == 146495997) { // fan osc
  49. unsigned int fanOsc[99] = {1300,400, 1400,400, 500,1200, 1300,450, 1400,350, 500,1250, 550,1200, 550,1200, 1400,400, 500,1250, 500,1200, 550,7950, 1400,350, 1400,350, 550,1200, 1350,400, 1350,350, 550,1200, 550,1200, 500,1250, 1400,350, 550,1200, 500,1250, 500,8000, 1300,450, 1350,400, 500,1250, 1400,350, 1350,400, 450,1300, 500,1200, 550,1250, 1250,450, 500,1250, 500,1250, 550,8000, 1350,400, 1350,400, 500,1250, 1350,400, 1350,400, 500,1250, 550,1250, 450,1300, 1400,350, 550,1200, 550,1250, 500,7950, 1400,350, 1400}; // UNKNOWN 7A2823E9
  50. irsend.sendRaw(fanOsc, 99, 38);
  51. }
  52. if (raw == 288285118) { // fan add timer
  53. unsigned int rawData[99] = {1350,400, 1350,400, 500,1250, 1350,400, 1350,400, 500,1250, 500,1250, 500,1250, 500,1250, 500,1250, 1350,400, 500,8000, 1350,400, 1350,400, 500,1250, 1350,400, 1350,400, 500,1250, 500,1250, 500,1250, 500,1250, 500,1250, 1350,400, 500,8000, 1350,400, 1300,400, 500,1250, 1350,400, 1350,400, 500,1250, 500,1250, 500,1250, 500,1250, 500,1250, 1350,400, 500,7950, 1350,450, 1300,400, 550,1200, 1350,400, 1350,400, 500,1250, 550,1200, 500,1250, 500,1250, 500,1250, 1350,450, 450,8000, 1350,400, 1350}; // UNKNOWN ABD4D16E
  54. irsend.sendRaw(rawData, 99, 38);
  55. }
  56. }
  57. }
  58. handleRoot();
  59. }
  60.  
  61. void handleNotFound(){
  62. String message = "File Not Found\n\n";
  63. message += "URI: ";
  64. message += server.uri();
  65. message += "\nMethod: ";
  66. message += (server.method() == HTTP_GET)?"GET":"POST";
  67. message += "\nArguments: ";
  68. message += server.args();
  69. message += "\n";
  70. for (uint8_t i=0; i<server.args(); i++){
  71. message += " " + server.argName(i) + ": " + server.arg(i) + "\n";
  72. }
  73. server.send(404, "text/plain", message);
  74. }
  75.  
  76. void setup(void){
  77. irsend.begin();
  78.  
  79. Serial.begin(9600);
  80. WiFi.begin(ssid, password);
  81. Serial.println("");
  82.  
  83. // Wait for connection
  84. while (WiFi.status() != WL_CONNECTED) {
  85. delay(500);
  86. Serial.print(".");
  87. }
  88. Serial.println("");
  89. Serial.print("Connected to ");
  90. Serial.println(ssid);
  91. Serial.print("IP address: ");
  92. Serial.println(WiFi.localIP());
  93.  
  94. if (mdns.begin("esp8266", WiFi.localIP())) {
  95. Serial.println("MDNS responder started");
  96. }
  97.  
  98. server.on("/", handleRoot);
  99. server.on("/ir", handleIr);
  100.  
  101. server.on("/inline", [](){
  102. server.send(200, "text/plain", "this works as well");
  103. });
  104.  
  105. server.onNotFound(handleNotFound);
  106.  
  107. server.begin();
  108. Serial.println("HTTP server started");
  109. }
  110.  
  111. void loop(void){
  112. server.handleClient();
  113. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement