回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

【花雕学编程】Arduino动手做(246)---设置ESP8266 V3开发板使用WiFi的简单HTTP服务器 简单

头像 驴友花雕 2025.01.14 17 0

00.jpg
23.jpg

10-.jpg
19.jpg

  【花雕学编程】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 V3!</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'
}

代码解读:

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地址的网页。

实验串口返回情况

 

45.jpg

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

 

46.jpg

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

 

47.jpg

评论

user-avatar
icon 他的勋章
    展开更多