Arduino ESP8266 控制舵机程序:使用 Wi-Fi 远程控制
以下是一个使用 Arduino 控制 ESP8266 模块控制舵机的示例程序,该程序允许用户通过网页界面远程控制舵机的角度:
#include <ESP8266WiFi.h>
#include <Servo.h>
// 替换为您的网络凭据
const char* ssid = 'your_SSID';
const char* password = 'your_PASSWORD';
// 创建一个舵机对象
Servo myservo;
// 创建一个服务器对象
WiFiServer server(80);
void setup() {
// 启动串行通信
Serial.begin(115200);
// 连接到 Wi-Fi 网络
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected successfully");
// 启动服务器
server.begin();
// 将舵机连接到引脚 5
myservo.attach(5);
}
void loop() {
// 检查是否有客户端连接
WiFiClient client = server.available();
if (!client) {
return;
}
// 等待客户端发送请求
Serial.println("New client");
while(!client.available()){
delay(1);
}
// 读取请求的第一行
String request = client.readStringUntil('\r');
Serial.println(request);
client.flush();
// 解析请求以获取舵机角度
int angle = request.substring(request.indexOf("=" + 1, request.indexOf("HTTP")).toInt();
Serial.println(angle);
// 设置舵机角度
myservo.write(angle);
// 向客户端发送响应
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("");
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.println("<head><title>ESP8266 Servo Control</title></head>");
client.println("<body>");
client.println("<h1>ESP8266 Servo Control</h1>");
client.println("<form>");
client.println("Angle (0-180): <input type='text' name='angle'><br>");
client.println("<input type='submit' value='Submit'>");
client.println("</form>");
client.println("</body>");
client.println("</html>");
delay(1);
Serial.println("Client disconnected");
}
在这个示例程序中,我们首先包含了 ESP8266WiFi 和 Servo 库。然后,我们定义了 Wi-Fi 网络的 SSID 和密码,并创建了一个 WiFiServer 对象和一个 Servo 对象。在 setup() 函数中,我们启动串行通信、连接到 Wi-Fi 网络、启动服务器并将舵机连接到引脚 5。在 loop() 函数中,我们检查是否有客户端连接,然后等待客户端发送请求。我们从请求中提取角度值,将其设置为舵机角度,并向客户端发送响应。最后,我们延迟 1 毫秒并打印客户端断开连接的消息。
注意:
- 请将代码中的
your_SSID和your_PASSWORD替换为您的实际 Wi-Fi 网络凭据。 - 确保舵机连接到 ESP8266 模块的正确引脚。
- 该程序假设舵机连接到引脚 5。如果您使用的是其他引脚,请修改
myservo.attach(5)一行代码。 - 您可以根据需要修改网页界面,例如添加其他功能或更改样式。
通过该程序,您可以轻松地使用 Arduino 和 ESP8266 模块控制舵机,并通过网页界面进行远程控制。
原文地址: https://www.cveoy.top/t/topic/kajJ 著作权归作者所有。请勿转载和采集!