1.所需硬件和库:
Arduino D1开发板
ESP8266模块
舵机
杜邦线
2.需要使用以下库:
ESP8266WiFi库:用于连接WiFi网络
ESP8266WebServer库:用于创建Web服务器
Servo库:用于控制舵机
在setup()函数中,设置舵机引脚为输出模式,并将舵机对象附加到引脚。然后,使用WiFi.begin()函数连接到WiFi网络,并使用while循环等待连接成功。初始化Web服务器对象,设置根路径和舵机控制路径的处理函数,并调用server.begin()启动服务器。
在loop()函数中,使用server.handleClient()处理客户端请求。
3.Ip地址我们可以在Arduino IDE的串口监视器上看到,我的是192.168.137.40.具体还要看实际情况
4.然后在浏览器上输入串口中的ip地址,就能看到舵机的控制界面
5.代码,上传程序
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <Servo.h>
const char* ssid = "3199999";
const char* password = "5201314520";
const int servoPin = D2;
Servo servo;
ESP8266WebServer server(80);
const int initialAngle = 30;
const int rotatedAngle = 180;
bool isRotated = false;
void handleRoot() {
String buttonText = isRotated ? "Restore" : "rotate";
String html = "<html>"
"<body>"
"<h1>Servo Control</h1>"
"<form action=\"/Servo\" method=\"POST\">"
"<input type=\"submit\" value=\"" + buttonText + "\">"
"</form>"
"</body>"
"</html>";
server.send(200, "text/html", html);
}
void handleServo() {
isRotated = !isRotated;
if (isRotated) {
servo.write(rotatedAngle);
} else {
servo.write(initialAngle);
}
server.sendHeader("Location", "/");
server.send(303);
}
void setup() {
pinMode(servoPin, OUTPUT);
servo.attach(servoPin);
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("WiFi connected");
Serial.println("IP address: " + WiFi.localIP().toString());
server.on("/", handleRoot);
server.on("/Servo", handleServo);
server.begin();
Serial.println("Server started");
servo.write(initialAngle);
}
void loop() {
server.handleClient();
}
然后就可以通过网页控制舵机的旋转了!!