hygain-ir-controller.ino aktualisiert
This commit is contained in:
parent
41f731d516
commit
fff6145f4a
|
@ -14,6 +14,7 @@ const char* password = "xxxxxxx";
|
||||||
AsyncWebServer server(80);
|
AsyncWebServer server(80);
|
||||||
|
|
||||||
const char* input_heading = "heading";
|
const char* input_heading = "heading";
|
||||||
|
const char* input_memory = "memory";
|
||||||
|
|
||||||
char headingmap[360];
|
char headingmap[360];
|
||||||
|
|
||||||
|
@ -58,43 +59,43 @@ const char index_html[] PROGMEM = R"rawliteral(
|
||||||
<table cellspacing="0" cellpadding="0" align="center">
|
<table cellspacing="0" cellpadding="0" align="center">
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td></td><td></td><td></td><td></td><td></td><td></td><td><button type="submit" name="heading" value="A">000</button></td><td></td><td></td><td></td><td></td><td></td><td></td>
|
<td></td><td></td><td></td><td></td><td></td><td></td><td><button type="submit" name="memory" value="A">000</button></td><td></td><td></td><td></td><td></td><td></td><td></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td></td><td></td><td></td><td></td><td></td><td><button type="submit" name="heading" value="L">345</button></td><td></td><td><button type="submit" name="heading" value="B">015</button></td><td></td><td></td><td></td><td></td><td></td>
|
<td></td><td></td><td></td><td></td><td></td><td><button type="submit" name="memory" value="L">345</button></td><td></td><td><button type="submit" name="memory" value="B">015</button></td><td></td><td></td><td></td><td></td><td></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td></td><td></td><td></td><td></td><td><button type="submit" name="heading" value="K">330</button></td><td></td><td></td><td></td><td><button type="submit" name="heading" value="C">030</button></td><td></td><td></td><td></td><td></td>
|
<td></td><td></td><td></td><td></td><td><button type="submit" name="memory" value="K">330</button></td><td></td><td></td><td></td><td><button type="submit" name="memory" value="C">030</button></td><td></td><td></td><td></td><td></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td></td><td></td><td></td><td><button type="submit" name="heading" value="J">315</button></td><td></td><td></td><td>N</td><td></td><td></td><td><button type="submit" name="heading" value="D">045</button></td><td></td><td></td><td></td>
|
<td></td><td></td><td></td><td><button type="submit" name="memory" value="J">315</button></td><td></td><td></td><td>N</td><td></td><td></td><td><button type="submit" name="memory" value="D">045</button></td><td></td><td></td><td></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td></td><td></td><td><button type="submit" name="heading" value="I">300</button></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td><button type="submit" name="heading" value="E">060</button></td><td></td><td></td>
|
<td></td><td></td><td><button type="submit" name="memory" value="I">300</button></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td><button type="submit" name="memory" value="E">060</button></td><td></td><td></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td></td><td><button type="submit" name="heading" value="H">285</button></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td><button type="submit" name="heading" value="F">075</button></td><td></td>
|
<td></td><td><button type="submit" name="memory" value="H">285</button></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td><button type="submit" name="memory" value="F">075</button></td><td></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><button type="submit" name="heading" value="G">270</button></td><td></td><td></td><td>W</td><td></td><td></td><td></td><td></td><td></td><td>E</td><td></td><td></td><td><button type="submit" name="heading" value="G">090</button></td>
|
<td><button type="submit" name="memory" value="G">270</button></td><td></td><td></td><td>W</td><td></td><td></td><td></td><td></td><td></td><td>E</td><td></td><td></td><td><button type="submit" name="memory" value="G">090</button></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td></td><td><button type="submit" name="heading" value="F">255</button></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td><button type="submit" name="heading" value="H">105</button></td><td></td>
|
<td></td><td><button type="submit" name="memory" value="F">255</button></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td><button type="submit" name="memory" value="H">105</button></td><td></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td></td><td></td><td><button type="submit" name="heading" value="E">240</button></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td><button type="submit" name="heading" value="I">120</button></td><td></td><td></td>
|
<td></td><td></td><td><button type="submit" name="memory" value="E">240</button></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td><button type="submit" name="memory" value="I">120</button></td><td></td><td></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td></td><td></td><td></td><td><button type="submit" name="heading" value="D">225</button></td><td></td><td></td><td>S</td><td></td><td></td><td><button type="submit" name="heading" value="J">135</button></td><td></td><td></td><td></td>
|
<td></td><td></td><td></td><td><button type="submit" name="memory" value="D">225</button></td><td></td><td></td><td>S</td><td></td><td></td><td><button type="submit" name="memory" value="J">135</button></td><td></td><td></td><td></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td></td><td></td><td></td><td></td><td><button type="submit" name="heading" value="C">210</button></td><td></td><td></td><td></td><td><button type="submit" name="heading" value="K">150</button></td><td></td><td></td><td></td><td></td>
|
<td></td><td></td><td></td><td></td><td><button type="submit" name="memory" value="C">210</button></td><td></td><td></td><td></td><td><button type="submit" name="memory" value="K">150</button></td><td></td><td></td><td></td><td></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td></td><td></td><td></td><td></td><td></td><td><button type="submit" name="heading" value="B">195</button></td><td></td><td><button type="submit" name="heading" value="L">164</button></td><td></td><td></td><td></td><td></td><td></td>
|
<td></td><td></td><td></td><td></td><td></td><td><button type="submit" name="memory" value="B">195</button></td><td></td><td><button type="submit" name="memory" value="L">164</button></td><td></td><td></td><td></td><td></td><td></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td></td><td></td><td></td><td></td><td></td><td></td><td><button type="submit" name="heading" value="A">180</button></td><td></td><td></td><td></td><td></td><td></td><td></td>
|
<td></td><td></td><td></td><td></td><td></td><td></td><td><button type="submit" name="memory" value="A">180</button></td><td></td><td></td><td></td><td></td><td></td><td></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@ -117,6 +118,32 @@ const uint16_t getValueByKey(char key) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
char lookupLetter(int angle) {
|
||||||
|
// Adjust angle to be within 0 and 360
|
||||||
|
angle %= 360;
|
||||||
|
if (angle < 0) {
|
||||||
|
angle += 360;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Define the lookup table
|
||||||
|
const int angles[] = {0, 15, 30, 45, 60, 75, 90, 105, 120, 135, 150, 165, 180,
|
||||||
|
195, 210, 225, 240, 255, 270, 285, 300, 315, 330, 345, 360};
|
||||||
|
const char letters[] = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L',
|
||||||
|
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'A'};
|
||||||
|
|
||||||
|
// Find the closest angle in the table
|
||||||
|
int closestAngleIndex = 0;
|
||||||
|
for (int i = 1; i < 26; ++i) {
|
||||||
|
if (abs(angles[i] - angle) < abs(angles[closestAngleIndex] - angle)) {
|
||||||
|
closestAngleIndex = i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Return the corresponding letter
|
||||||
|
return letters[closestAngleIndex];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void setup() {
|
void setup() {
|
||||||
|
|
||||||
// Start serial
|
// Start serial
|
||||||
|
@ -167,18 +194,23 @@ void setup() {
|
||||||
|
|
||||||
server.on("/get", HTTP_GET, [] (AsyncWebServerRequest *request) {
|
server.on("/get", HTTP_GET, [] (AsyncWebServerRequest *request) {
|
||||||
String input_message;
|
String input_message;
|
||||||
String input_parameter;
|
char mem;
|
||||||
|
|
||||||
|
if (request->hasParam(input_memory)) {
|
||||||
|
input_message = request->getParam(input_memory)->value();
|
||||||
|
mem = input_message[0];
|
||||||
|
}
|
||||||
if (request->hasParam(input_heading)) {
|
if (request->hasParam(input_heading)) {
|
||||||
input_message = request->getParam(input_heading)->value();
|
int angle = request->getParam(input_heading)->value().toInt();
|
||||||
input_parameter = input_heading;
|
|
||||||
|
char letter = lookupLetter(angle);
|
||||||
|
mem = letter;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
input_message = "No message sent";
|
input_message = "No message sent";
|
||||||
input_parameter = "none";
|
|
||||||
}
|
}
|
||||||
Serial.println(input_message);
|
Serial.println(String(mem));
|
||||||
uint16_t val = getValueByKey(input_message[0]);
|
uint16_t val = getValueByKey(mem);
|
||||||
Serial.println("IR Code: " + String(val));
|
Serial.println("IR Code: " + String(val));
|
||||||
irsend.sendNEC(0x0, val, 2);
|
irsend.sendNEC(0x0, val, 2);
|
||||||
delay(500);
|
delay(500);
|
||||||
|
|
Loading…
Reference in New Issue