57浏览
查看: 57|回复: 7

[项目] 【花雕学编程】Arduino动手做(246)---ESP8266 JSON 客户端

[复制链接]
【花雕学编程】Arduino动手做(246)---ESP8266 JSON 客户端图1

【花雕学编程】Arduino动手做(246)---ESP8266 JSON 客户端图2

驴友花雕  中级技神
 楼主|

发表于 前天 12:11

【花雕学编程】Arduino动手做(246)---ESP8266 JSON 客户端

【花雕学编程】Arduino动手做(246)---ESP8266 JSON 客户端图1

【花雕学编程】Arduino动手做(246)---ESP8266 JSON 客户端图2
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 前天 12:15

【花雕学编程】Arduino动手做(246)---ESP8266 JSON 客户端

  【花雕学编程】239种传感器执行器系列实验(资料代码+仿真编程+图形编程)
   实验二百四十六:ESP8266串口wifi模块 NodeMCU Lua V3物联网开发板 CH340
   实验项目之十五:ESP8266 Web服务器:通过JSON响应客户端请求

实验开源代码

  1. /*
  2.   【花雕学编程】239种传感器执行器系列实验(资料代码+仿真编程+图形编程)
  3.    实验二百四十六:ESP8266串口wifi模块 NodeMCU Lua V3物联网开发板 CH340
  4.    实验项目之十五:ESP8266 Web服务器:通过JSON响应客户端请求
  5. */
  6. #include <ESP8266WiFi.h> // 包含ESP8266WiFi库,用于WiFi连接
  7. #include <ESP8266WebServer.h> // 包含ESP8266WebServer库,用于创建Web服务器
  8. #include <ArduinoJson.h> // 包含ArduinoJson库,用于处理JSON数据
  9. /********** 请修改以下内容 *************************/
  10. const char* ssid = "zhz3"; // 设置Wi-Fi名称
  11. const char* password = "z156721"; // 设置Wi-Fi密码
  12. ESP8266WebServer server(80); // 创建一个Web服务器对象,监听80端口
  13. void setup() {
  14.     Serial.begin(115200); // 初始化串口通信,波特率为115200
  15.     WiFi.begin(ssid, password); // 连接到指定的Wi-Fi网络
  16.     // 等待Wi-Fi连接成功
  17.     while (WiFi.status() != WL_CONNECTED) {
  18.         delay(500); // 每隔500毫秒检查一次连接状态
  19.         Serial.print("."); // 打印连接进度
  20.     }
  21.     Serial.println("Connected to WiFi"); // 打印连接成功信息
  22.     Serial.print("IP Address: "); // 打印IP地址
  23.     Serial.println(WiFi.localIP());
  24.     server.on("/", handleRoot); // 设置根路径的处理函数
  25.     server.begin(); // 启动服务器
  26.     Serial.println("HTTP server started"); // 打印服务器启动信息
  27. }
  28. void loop() {
  29.     server.handleClient(); // 处理客户端请求
  30. }
  31. void handleRoot() {
  32.     Serial.println("Client connected to /"); // 调试信息:有客户端连接到根路径
  33.     StaticJsonDocument<200> doc; // 创建一个静态JSON文档对象
  34.     doc["message"] = "欢迎来到ESP8266 Web服务器!"; // 向JSON文档添加一个键值对
  35.     String response;
  36.     serializeJson(doc, response); // 将JSON对象序列化为字符串
  37.     server.send(200, "application/json", response); // 发送JSON响应
  38. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 前天 12:17

【花雕学编程】Arduino动手做(246)---ESP8266 JSON 客户端

代码解读:

1、包含库:

#include <ESP8266WiFi.h>:包含ESP8266WiFi库,用于WiFi连接功能。

#include <ESP8266WebServer.h>:包含ESP8266WebServer库,用于创建Web服务器。

#include <ArduinoJson.h>:包含ArduinoJson库,用于处理JSON数据。

2、定义Wi-Fi网络凭据:

const char* ssid = "zhz3";:定义要连接的WiFi网络的SSID(名称)。

const char* password = "zy156721";:定义要连接的WiFi网络的密码。

3、创建Web服务器对象:

ESP8266WebServer server(80);:创建一个ESP8266WebServer对象,监听80端口。

4、初始化设置(setup函数):

Serial.begin(115200);:初始化串口通信,设置波特率为115200。

WiFi.begin(ssid, password);:开始连接到指定的WiFi网络。

使用while (WiFi.status() != WL_CONNECTED)循环等待WiFi连接成功,并每隔500毫秒打印一次连接进度。

Serial.print("IP Address: ");:打印设备的IP地址。

server.on("/", handleRoot);:设置处理根路径的处理函数handleRoot。

server.begin();:启动Web服务器。

Serial.println("HTTP server started");:打印服务器启动信息。

5、主循环(loop函数):

server.handleClient();:处理客户端请求。

6、处理根路径请求的函数(handleRoot函数):

Serial.println("Client connected to /");:打印调试信息,表示有客户端连接到根路径。

创建一个静态JSON文档对象StaticJsonDocument<200> doc;。

向JSON文档添加一个键值对doc["message"] = "欢迎来到ESP8266 Web服务器!";。

将JSON对象序列化为字符串serializeJson(doc, response);。

发送JSON响应server.send(200, "application/json", response);,状态码为200,内容类型为application/json。

这段代码会使ESP8266连接到指定的WiFi网络,并启动一个简单的Web服务器。当客户端访问根路径(/)时,服务器会返回一个包含欢迎信息的JSON响应。这样可以方便地在浏览器中测试和查看ESP8266的响应结果。

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 前天 12:41

【花雕学编程】Arduino动手做(246)---ESP8266 JSON 客户端

实验串口返回情况

【花雕学编程】Arduino动手做(246)---ESP8266 JSON 客户端图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 前天 12:47

【花雕学编程】Arduino动手做(246)---ESP8266 JSON 客户端

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

【花雕学编程】Arduino动手做(246)---ESP8266 JSON 客户端图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 前天 12:51

【花雕学编程】Arduino动手做(246)---ESP8266 JSON 客户端

手机端打开浏览器,在电脑端串口上会收到提示消息

【花雕学编程】Arduino动手做(246)---ESP8266 JSON 客户端图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 前天 12:53

【花雕学编程】Arduino动手做(246)---ESP8266 JSON 客户端

【花雕学编程】Arduino动手做(246)---ESP8266 JSON 客户端图1
回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail