blob: 41d490a1a84ba6d3a4845d5095b7880084781c5b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
#include <WiFi.h>
#include <WebServer.h>
#include <ESP32Servo.h>
const char* SSID = "FRITZ!Box 7590 QM";
const char* PASSWORD = "LillyUndLuna";
Servo base;
WebServer server(80);
const char* INDEX_HTML PROGMEM = R"rawlit(
<!DOCTYPE html><html lang="en">
<head><meta charset="utf-8"><title>ESP32 Servo Control</title>
<style>
body{font-family:sans-serif;text-align:center;padding:2rem;background:#f4f6fa;}
input[type=range]{width:80%%;}
.angle{font-weight:bold;font-size:1.2rem;}
</style>
<script>
function updateAngle(val){
document.getElementById('aval').innerText=val;
fetch('/?angle='+val);
}
</script></head>
<body>
<h2>ESP32 Servo on GPIO 15</h2>
<p><span class="angle" id="aval">90</span>°</p>
<input type="range" min="0" max="180" value="90" oninput="updateAngle(this.value)">
<p>Drag the slider or send <code>/?angle=°</code></p>
</body></html>
)rawlit";
void handleRoot() {
if (server.hasArg("angle")) {
int angle = server.arg("angle").toInt();
angle = constrain(angle, 0, 180);
Serial.printf("%s\n", analogRead(15))
base.write(angle);
}
server.send_P(200, "text/html", INDEX_HTML);
}
void handleNotFound() {
server.send(404, "text/plain", "404: Not found");
}
void setup() {
Serial.begin(115200);
Serial.printf("Connecting to %s", SSID);
WiFi.begin(SSID, PASSWORD);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print('.');
}
Serial.printf("\nConnected! IP address: %s\n", WiFi.localIP().toString().c_str());
base.attach(15);
base.write(0);
server.on("/", handleRoot);
server.onNotFound(handleNotFound);
server.begin();
}
void loop() {
server.handleClient();
}
|