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);
|
||||
|
||||
const char* input_heading = "heading";
|
||||
const char* input_memory = "memory";
|
||||
|
||||
char headingmap[360];
|
||||
|
||||
|
@ -58,43 +59,43 @@ const char index_html[] PROGMEM = R"rawliteral(
|
|||
<table cellspacing="0" cellpadding="0" align="center">
|
||||
<tbody>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
</tbody>
|
||||
</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() {
|
||||
|
||||
// Start serial
|
||||
|
@ -167,18 +194,23 @@ void setup() {
|
|||
|
||||
server.on("/get", HTTP_GET, [] (AsyncWebServerRequest *request) {
|
||||
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)) {
|
||||
input_message = request->getParam(input_heading)->value();
|
||||
input_parameter = input_heading;
|
||||
int angle = request->getParam(input_heading)->value().toInt();
|
||||
|
||||
char letter = lookupLetter(angle);
|
||||
mem = letter;
|
||||
}
|
||||
else {
|
||||
input_message = "No message sent";
|
||||
input_parameter = "none";
|
||||
}
|
||||
Serial.println(input_message);
|
||||
uint16_t val = getValueByKey(input_message[0]);
|
||||
Serial.println(String(mem));
|
||||
uint16_t val = getValueByKey(mem);
|
||||
Serial.println("IR Code: " + String(val));
|
||||
irsend.sendNEC(0x0, val, 2);
|
||||
delay(500);
|
||||
|
|
Loading…
Reference in New Issue