8浏览
查看: 8|回复: 6

[项目] 【花雕学编程】Arduino动手做(246)---ESP8266 的 HTTP服务器

[复制链接]
【花雕学编程】Arduino动手做(246)---ESP8266 的 HTTP服务器图2

【花雕学编程】Arduino动手做(246)---ESP8266 的 HTTP服务器图1

驴友花雕  中级技神
 楼主|

发表于 2 小时前

【花雕学编程】Arduino动手做(246)---ESP8266的HTTP服务器

【花雕学编程】Arduino动手做(246)---ESP8266 的 HTTP服务器图2

【花雕学编程】Arduino动手做(246)---ESP8266 的 HTTP服务器图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 1 小时前

【花雕学编程】Arduino动手做(246)---ESP8266的HTTP服务器

  【花雕学编程】239种传感器执行器系列实验(资料代码+仿真编程+图形编程)
   实验二百四十六:ESP8266串口wifi模块 NodeMCU Lua V3物联网开发板 CH340
   实验项目之九:设置ESP8266 V3开发板使用WiFi的简单HTTP服务器

  实验开源代码

  1. /*
  2.   【花雕学编程】239种传感器执行器系列实验(资料代码+仿真编程+图形编程)
  3.    实验二百四十六:ESP8266串口wifi模块 NodeMCU Lua V3物联网开发板 CH340
  4.    实验项目之九:设置ESP8266 V3开发板使用WiFi的简单HTTP服务器
  5. */
  6. #include <ESP8266WiFi.h> // 包含ESP8266WiFi库,用于WiFi连接
  7. #include <ESP8266WebServer.h> // 包含服务器库,用于创建Web服务器的支持
  8. // 替换为您的网络凭据
  9. const char* ssid = "zhz3";
  10. const char* password = "z156721";
  11. // 创建 ESP8266WebServer 对象,监听 80 端口
  12. ESP8266WebServer server(80); // 确保使用正确的类名 'ESP8266WebServer'
  13. // 处理根 URL 请求的函数
  14. void handleRoot() {
  15.   String message = "<html><body>";
  16.   message += "<h1>Hello from ESP32-CAM!</h1>";
  17.   message += "<p>IP Address: ";
  18.   message += WiFi.localIP().toString(); // 添加设备的本地IP地址
  19.   message += "</p></body></html>";
  20.   server.send(200, "text/html", message); // 确保使用变量 'server'
  21. }
  22. // 处理额外页面请求的函数
  23. void handlePage() {
  24.   server.send(200, "text/html", "<html><body>This is an additional page.</body></html>"); // 确保使用变量 'server'
  25. }
  26. void setup() {
  27.   Serial.begin(115200); // 初始化串口,以115200波特率
  28.   Serial.println(""); // 打印空行以隔开输出
  29.   Serial.println("");
  30.   Serial.println("ESP8266 V3 准备就绪!"); // 打印初始化成功信息
  31.   // 连接到 WiFi 网络
  32.   WiFi.begin(ssid, password); // 开始尝试连接到WiFi网络
  33.   Serial.print("连接到WiFi");
  34.   int attempts = 0;
  35.   while (WiFi.status() != WL_CONNECTED && attempts < 20) {
  36.     delay(500); // 每隔500毫秒检查一次连接状态
  37.     Serial.print("..."); // 打印连接进度
  38.     attempts++;
  39.   }
  40.   if (WiFi.status() == WL_CONNECTED) {
  41.     Serial.println("\n已连接到WiFi"); // 打印连接成功信息
  42.     Serial.print("IP地址: ");
  43.     Serial.println(WiFi.localIP()); // 打印设备的本地IP地址
  44.   } else {
  45.     Serial.println("\nFailed to connect to WiFi"); // 打印连接失败信息
  46.     return; // 停止继续执行setup函数
  47.   }
  48.   // 定义根 URL 处理程序
  49.   server.on("/", handleRoot); // 确保使用变量 'server'
  50.   // 定义额外页面的路由处理程序
  51.   server.on("/page", HTTP_GET, handlePage); // 确保使用变量 'server'
  52.   // 启动服务器
  53.   server.begin(); // 确保使用变量 'server'
  54.   Serial.println("ESP8266 V3的HTTP服务器已启动"); // 打印服务器启动信息
  55. }
  56. void loop() {
  57.   // 处理任何收到的请求
  58.   server.handleClient(); // 确保使用变量 'server'
  59. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 1 小时前

【花雕学编程】Arduino动手做(246)---ESP8266的HTTP服务器

代码解读:

1、包含库:

#include <ESP8266WiFi.h>:引入ESP8266WiFi库,支持ESP8266的WiFi功能。

#include <ESP8266WebServer.h>:引入ESP8266WebServer库,支持创建Web服务器。

2、网络凭据:

const char* ssid = "zhz3";:设置WiFi网络的SSID。

const char* password = "zy156721";:设置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地址的网页。

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 1 小时前

【花雕学编程】Arduino动手做(246)---ESP8266的HTTP服务器

在PC端打开浏览器,输入IP地址:192.168.28.40

【花雕学编程】Arduino动手做(246)---ESP8266 的 HTTP服务器图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 半小时前

【花雕学编程】Arduino动手做(246)---ESP8266的HTTP服务器

在手机端打开浏览器,输入IP地址:192.168.28.40

【花雕学编程】Arduino动手做(246)---ESP8266 的 HTTP服务器图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 半小时前

【花雕学编程】Arduino动手做(246)---ESP8266的HTTP服务器

【花雕学编程】Arduino动手做(246)---ESP8266 的 HTTP服务器图1
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4 备案 沪公网安备31011502402448

© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail