// Libraries #include #include #include #include byte SEND_PIN = 4; IRsend irsend(SEND_PIN); // WiFi network const char* ssid = "xxxxxxx"; const char* password = "xxxxxxx"; AsyncWebServer server(80); const char* input_heading = "heading"; char headingmap[360]; const uint16_t IRCodes[] = { 0x44, // A 0x7, // B 0x9, // C 0x40, // D 0x19, // E 0x16, // F 0xC, // G 0x18, // H 0x5E, // I 0x8, // J 0x1C, // K -> U 0x5A // L }; // other possible codes: // rotate CCW: 0x43 // rotate CW: 0x45 // initial: 0x42 // memory: 0x4A const char index_html[] PROGMEM = R"rawliteral( Hy-Gain AR-500X

HyGain AR-500X

N
WE
S

)rawliteral"; void notFound(AsyncWebServerRequest *request) { request->send(404, "text/plain", "Not found"); } // Function to get value by key const uint16_t getValueByKey(char key) { key = toupper(key); int index = key - 'A'; return IRCodes[index]; } void setup() { // Start serial Serial.begin(9600); delay(10); Serial.print("ESP Board MAC Address: "); Serial.println(WiFi.macAddress()); // Connecting to a WiFi network Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); 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()); // Fill the array char currentChar = 'A'; for (int i = 0; i < 360; i++) { headingmap[i] = currentChar; if ((i + 1) % 15 == 0) { currentChar++; if (currentChar > 'L') currentChar = 'A'; } } Serial.println("OK"); server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){ request->send_P(200, "text/html", index_html); }); server.on("/get", HTTP_GET, [] (AsyncWebServerRequest *request) { String input_message; String input_parameter; if (request->hasParam(input_heading)) { input_message = request->getParam(input_heading)->value(); input_parameter = input_heading; } else { input_message = "No message sent"; input_parameter = "none"; } Serial.println(input_message); uint16_t val = getValueByKey(input_message[0]); Serial.println("IR Code: " + String(val)); irsend.sendNEC(0x0, val, 2); delay(500); request->send_P(200, "text/html", index_html); }); server.onNotFound(notFound); server.begin(); } void loop() { }