用户通过浏览器和ESP32控制LED的开关的方法
要实现这个功能,您需要以下几个步骤:
以下是一个简单的程序代码示例,它可以实现上述功能:
#include
#include
// WiFi网络名称和密码
const char* ssid = "YOUR_SSID";
const char* password = "YOUR_PASSWORD";
// 创建一个WebServer对象
WebServer server(80);
// 定义一个LED引脚
#define LED 26
// 根目录("/")的URI处理函数
void handleRoot() {
// 发送HTTP响应头,指定内容类型为text/html
server.sendHeader("Content-Type", "text/html");
// 发送HTTP响应内容,包含一个包含两个按钮的HTML网页
server.send(200, "text/html", "Control LED from Web
");
}
// "/LED=ON"目录的URI处理函数
void handleLedOn() {
// 打开LED
digitalWrite(LED, HIGH);
// 发送HTTP响应头,指定内容类型为text/html
server.sendHeader("Content-Type", "text/html");
// 发送HTTP响应内容,包含一个显示LED状态为ON的HTML网页,并提供返回按钮
server.send(200, "text/html", "LED is ON
Return
");
}
// "/LED=OFF"目录的URI处理函数
void handleLedOff() {
// 关闭LED
digitalWrite(LED, LOW);
// 发送HTTP响应头,指定内容类型为text/html
server.sendHeader("Content-Type", "text/html");
// 发送HTTP响应内容,包含一个显示LED状态为OFF的HTML网页,并提供返回按钮
server.send(200, "text/html", "LED is OFF
Return
");
}
void setup() {
// 初始化串口通信,并设置波特率为115200
Serial.begin(115200);
// 设置LED引脚为输出模式,并默认关闭
pinMode(LED, OUTPUT);
digitalWrite(LED, LOW);
// 连接到WiFi网络,并打印出ESP32的IP地址
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("Connected to ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
// 注册不同的URI处理函数
server.on("/", handleRoot); // 根目录("/")
server.on("/LED=ON", handleLedOn); // "/LED=ON"目录
server.on("/LED=OFF", handleLedOff); // "/LED=OFF"目录
// 开始运行Web服务器
server.begin();
}
void loop() {
// 处理用户的请求
server.handleClient();
}
页面更新:2024-03-12
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号