龙空技术网

如何用浏览器和ESP32控制LED的开关?

自由坦荡的湖泊AI 104

前言:

现时我们对“led服务器使用教程”大概比较关怀,同学们都需要分析一些“led服务器使用教程”的相关资讯。那么小编也在网摘上网罗了一些对于“led服务器使用教程””的相关内容,希望姐妹们能喜欢,同学们快快来学习一下吧!

用户通过浏览器和ESP32控制LED的开关的方法

要实现这个功能,您需要以下几个步骤:

安装Arduino IDE和ESP32开发板支持包,以及WebServer库。WebServer库是一个基于HTTP协议的轻量级Web服务器库,它可以让您轻松地创建和注册不同的URI处理函数,以及发送和接收HTTP请求和响应。编写Arduino程序,设置ESP32的WiFi连接,创建WebServer对象,并注册不同的URI处理函数。其中,根目录(“/”)的URI处理函数返回一个包含两个按钮的网页,分别用于控制LED的开关。另外,“/LED=ON"和”/LED=OFF"的URI处理函数分别用于打开和关闭LED,并返回相应的状态信息。上传程序到ESP32,并在串口监视器中查看分配给ESP32的IP地址。在浏览器中输入ESP32的IP地址或自定义域名,访问根目录(“/”),查看包含两个按钮的网页。点击按钮,可以通过"/LED=ON"和"/LED=OFF"的URI来控制LED的开关,并查看相应的状态信息。

以下是一个简单的程序代码示例,它可以实现上述功能:

#include <WiFi.h>#include <WebServer.h>// 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", "<h1>Control LED from Web</h1><p><a href=\"/LED=ON\"><button>ON</button></a> <a href=\"/LED=OFF\"><button>OFF</button></a></p>");}// "/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", "<h1>LED is ON</h1><p><a href=\"/\">Return</a></p>");}// "/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", "<h1>LED is OFF</h1><p><a href=\"/\">Return</a></p>");}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();}

标签: #led服务器使用教程