欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 锐评 > 使用ESP32搭建简单的WiFi控制LED的Web服务器

使用ESP32搭建简单的WiFi控制LED的Web服务器

2024/10/25 12:21:03 来源:https://blog.csdn.net/m0_63715549/article/details/140662257  浏览:    关键词:使用ESP32搭建简单的WiFi控制LED的Web服务器

在这篇博客中,我将展示如何使用ESP32或ESP8266开发板通过WiFi搭建一个简单的Web服务器,并使用它来控制一个LED的开关。首先确保esp32与自己的手机或者电脑在同一WiFi环境下

效果展示

led

项目准备

在开始之前,请确保你已经准备好以下材料:

一块ESP32或ESP8266开发板
一只LED
面包板和跳线
Arduino IDE(并安装好ESP32或ESP8266的开发板库)

连线

ESP32 (GPIO 5) -> LED 正极
LED 负极 -> 电阻 -> GND

编写代码

打开Arduino IDE,并将以下代码复制到新的草图中。这段代码将会创建一个Web服务器,通过浏览器发送的请求来控制LED的开关。
完整代码

#include <WiFi.h>// 设置WiFi网络的SSID和密码
const char* ssid     = "你的SSID";
const char* password = "你的密码";// 创建一个WiFiServer对象,监听端口80
WiFiServer server(80);// 定义LED引脚
const int ledPin = 5;void setup() {// 初始化串口通信Serial.begin(115200);pinMode(ledPin, OUTPUT);  // 设置LED引脚模式digitalWrite(ledPin, LOW); // 默认关闭LEDdelay(10);// 连接到WiFi网络Serial.println();Serial.println();Serial.print("Connecting to ");Serial.println(ssid);WiFi.begin(ssid, password);while (WiFi.status() != WL_CONNECTED) {delay(500);Serial.print(".");}Serial.println("");Serial.println("WiFi connected.");Serial.println("IP address: ");Serial.println(WiFi.localIP());// 启动服务器server.begin();
}void loop() {WiFiClient client = server.available();   // 监听进入的客户端if (client) {                             // 如果有客户端连接,Serial.println("New Client.");        // 打印一条消息到串口监视器String currentLine = "";              // 创建一个字符串来保存客户端发送的数据while (client.connected()) {          // 当客户端保持连接时if (client.available()) {         // 如果有客户端数据可读char c = client.read();       // 读取一个字节Serial.write(c);              // 打印到串口监视器if (c == '\n') {              // 如果该字节是换行符// 如果当前行是空行,表示HTTP请求结束,发送响应:if (currentLine.length() == 0) {// HTTP响应头client.println("HTTP/1.1 200 OK");client.println("Content-type:text/html");client.println();// HTTP响应内容client.print("Click <a href=\"/H\">here</a> to turn the LED on pin 5 on.<br>");client.print("Click <a href=\"/L\">here</a> to turn the LED on pin 5 off.<br>");// HTTP响应结束client.println();break;} else {    // 如果收到换行符,清空currentLine:currentLine = "";}} else if (c != '\r') {  // 如果收到的不是回车符,currentLine += c;    // 添加到currentLine的末尾}// 检查客户端请求是否为"GET /H"或"GET /L":if (currentLine.endsWith("GET /H")) {digitalWrite(ledPin, HIGH); // GET /H 打开LEDSerial.println("LED turned ON"); // 打印调试信息}if (currentLine.endsWith("GET /L")) {digitalWrite(ledPin, LOW);  // GET /L 关闭LEDSerial.println("LED turned OFF"); // 打印调试信息}}}// 关闭连接:client.stop();Serial.println("Client Disconnected.");}
}

在arduino ide上配置好合适的开发版和端口,点击上传。
在出现上传中的字样后,长按esp32上的boot键3秒,如何上传,上传成功后,打开串口监视器。在自己的浏览器打开下面的ip地址。,

显示以下界面在这里插入图片描述

点击链接,即可控制LED的开关。

结语

通过这个项目,我们了解了如何使用ESP32或ESP8266搭建一个简单的Web服务器,并通过HTTP请求控制LED的开关。这只是物联网应用的冰山一角,你可以在此基础上实现更多功能,比如控制多个设备,读取传感器数据等。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com