【花雕学编程】Arduino动手做(246)---ESP8266 的 HTTP服务器
【花雕学编程】Arduino动手做(246)---ESP8266的HTTP服务器
【花雕学编程】Arduino动手做(246)---ESP8266的HTTP服务器
本帖最后由 驴友花雕 于 2025-1-14 19:48 编辑【花雕学编程】239种传感器执行器系列实验(资料代码+仿真编程+图形编程)
实验二百四十六:ESP8266串口wifi模块 NodeMCU Lua V3物联网开发板 CH340
实验项目之九:设置ESP8266 V3开发板使用WiFi的简单HTTP服务器
实验开源代码
/*
【花雕学编程】239种传感器执行器系列实验(资料代码+仿真编程+图形编程)
实验二百四十六:ESP8266串口wifi模块 NodeMCU Lua V3物联网开发板 CH340
实验项目之九:设置ESP8266 V3开发板使用WiFi的简单HTTP服务器
*/
#include <ESP8266WiFi.h> // 包含ESP8266WiFi库,用于WiFi连接
#include <ESP8266WebServer.h> // 包含服务器库,用于创建Web服务器的支持
// 替换为您的网络凭据
const char* ssid = "zhz3";
const char* password = "z156721";
// 创建 ESP8266WebServer 对象,监听 80 端口
ESP8266WebServer server(80); // 确保使用正确的类名 'ESP8266WebServer'
// 处理根 URL 请求的函数
void handleRoot() {
String message = "<html><body>";
message += "<h1>Hello from ESP8266!</h1>";
message += "<p>IP Address: ";
message += WiFi.localIP().toString(); // 添加设备的本地IP地址
message += "</p></body></html>";
server.send(200, "text/html", message); // 确保使用变量 'server'
}
// 处理额外页面请求的函数
void handlePage() {
server.send(200, "text/html", "<html><body>This is an additional page.</body></html>"); // 确保使用变量 'server'
}
void setup() {
Serial.begin(115200); // 初始化串口,以115200波特率
Serial.println(""); // 打印空行以隔开输出
Serial.println("");
Serial.println("ESP8266 V3 准备就绪!"); // 打印初始化成功信息
// 连接到 WiFi 网络
WiFi.begin(ssid, password); // 开始尝试连接到WiFi网络
Serial.print("连接到WiFi");
int attempts = 0;
while (WiFi.status() != WL_CONNECTED && attempts < 20) {
delay(500); // 每隔500毫秒检查一次连接状态
Serial.print("..."); // 打印连接进度
attempts++;
}
if (WiFi.status() == WL_CONNECTED) {
Serial.println("\n已连接到WiFi"); // 打印连接成功信息
Serial.print("IP地址: ");
Serial.println(WiFi.localIP()); // 打印设备的本地IP地址
} else {
Serial.println("\nFailed to connect to WiFi"); // 打印连接失败信息
return; // 停止继续执行setup函数
}
// 定义根 URL 处理程序
server.on("/", handleRoot); // 确保使用变量 'server'
// 定义额外页面的路由处理程序
server.on("/page", HTTP_GET, handlePage); // 确保使用变量 'server'
// 启动服务器
server.begin(); // 确保使用变量 'server'
Serial.println("ESP8266 V3的HTTP服务器已启动"); // 打印服务器启动信息
}
void loop() {
// 处理任何收到的请求
server.handleClient(); // 确保使用变量 'server'
}
【花雕学编程】Arduino动手做(246)---ESP8266的HTTP服务器
本帖最后由 驴友花雕 于 2025-1-14 19:48 编辑代码解读:
1、包含库:
#include <ESP8266WiFi.h>:引入ESP8266WiFi库,支持ESP8266的WiFi功能。
#include <ESP8266WebServer.h>:引入ESP8266WebServer库,支持创建Web服务器。
2、网络凭据:
const char* ssid = "zhz3";:设置WiFi网络的SSID。
const char* password = "z156721";:设置WiFi网络的密码。
3、创建Web服务器对象:
ESP8266WebServer server(80);:创建一个Web服务器对象,监听80端口(HTTP默认端口)。
4、处理根 URL 请求:
void handleRoot():定义一个函数,用于处理对根路径(/)的请求。
函数中创建一个包含HTML内容的字符串消息,并使用server.send函数发送HTTP响应,状态码为200,内容类型为"text/html"。
5、处理额外页面请求:
void handlePage():定义一个函数,用于处理对/page路径的请求。
函数中创建一个简单的HTML消息,并使用server.send函数发送HTTP响应。
6、初始化设置(setup函数):
Serial.begin(115200);:设置串口通讯速度为115200波特率。
WiFi.begin(ssid, password);:开始尝试连接到WiFi网络。
检查WiFi连接状态,最多尝试20次(每次延迟500毫秒)。如果连接成功,打印本地IP地址;否则,打印连接失败信息。
设置根路径和额外页面的处理程序。
启动Web服务器。
7、主循环(loop函数):
server.handleClient();:处理客户端请求。
这个程序将在ESP8266连接到指定的WiFi网络后,创建一个简单的Web服务器。当用户在浏览器中访问设备的IP地址时,会看到一个包含设备本地IP地址的网页。
【花雕学编程】Arduino动手做(246)---ESP8266的HTTP服务器
在PC端打开浏览器,输入IP地址:192.168.28.40【花雕学编程】Arduino动手做(246)---ESP8266的HTTP服务器
在手机端打开浏览器,输入IP地址:192.168.28.40【花雕学编程】Arduino动手做(246)---ESP8266的HTTP服务器
【花雕学编程】Arduino动手做(246)---ESP8266的HTTP服务器
实验串口返回情况
页:
[1]