0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ESP32-运行网页服务器(Web Server)-实用篇

机智云 2025-07-28 18:05 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在前一篇文章《ESP32-运行网页服务器(Web Server)-入门篇》,我们介绍了ESP32运行网页服务器(Web Server)的原理,然后我们基于ESP32实现了一个demo代码;

看到很多同学都留言发表了自己的看法,有很多同学都基于这个原理实现了很多有意思的应用;

这里我用到的硬件是我用ESP32C3自己做的一个小板子如下图(板子的介绍可以看我之前的文章:一种让你的MCU日志可无线查看和实时记录跟踪的方法)

73aafa26-6b9a-11f0-9080-92fbcf53809c.png

接下来这篇文章我也分享几个实用的功能:

通过网页进行Wi-Fi配网;

通过网页在线修改串口配置;

通过网页实时收发查看串口数据;

直接先看效果图感受下哈!

73bf99a4-6b9a-11f0-9080-92fbcf53809c.png

网页配网73d56e1e-6b9a-11f0-9080-92fbcf53809c.png网页串口配置&查看数据

温馨提醒:公众号后台私信ESP32 Web Server 2可获取完整工程;

那么接下来简单讲一下这三个应用的优点以及原理和逻辑

1、 Web网页配网

73eece90-6b9a-11f0-9080-92fbcf53809c.gif

Web网页配网

优点

  1. 跨平台:web配网基于网页,不管是手机(android),平板,电脑,只要能打开网页的地方就可以用,而且体验基本一致;
  2. 可靠:因为web配网是通过web直连接到设备上所以可靠,稳定,成功率高;

原理

既然是web配网,那么必定涉及到前后端的逻辑;

  • 前端负责展示界面以及用户交互;
  • 后端负责产生数据发送到前端和接收前端用户输入的数据,比如Wi-Fi名称和Wi-Fi密码,这里的后端由ESP32上的代码来实现
  • 然后针对配网这个应用,后端负责扫描设备周边热点,然后把扫描到的热点列表发送到web客户端展示;
  • 用户选择对应的热点后输入密码,即可完成配网的核心交互

逻辑

逻辑就比较简单了,简单描述如下

就是ESP32启动一个http服务,然后监听配网对应的URI请求;

监听到配网的URI请求之后把前端配网界面发送给客户;

前端也就是浏览器(用户)选择好WiFi名称和密码之后,点击发送就会把数据封装之后发给esp32;

esp32解析接收到的数据之后提取出WiFi的SSID和PWD之后保存起来然后后续用这个去联网;(在这个例子中我只是提取出WiFi信息没有实际去连接,各位可以按自己的逻辑来处理)

2、在线配置串口&实时查看串口数据原理和逻辑

7403c1b0-6b9a-11f0-9080-92fbcf53809c.gif

web网页版串口

串口是 ESP32 与外部设备(如传感器PLC蓝牙模块等)通信的重要接口,通过 Web 网页实现串口配置与数据交互,能极大简化调试与使用流程。

在这里着重说一下串口数据我用了WebSocket来做实时数据收发,因为普通的HTTP的基于一来一回的设计逻辑,对于实时性要求高的场合并不合适;

优点

无需物理接线:无需通过 USB 线连接电脑,也无需安装专用调试软件(如串口助手),仅通过网页即可完成配置与数据查看,适合设备已安装在封闭环境(如控制柜内)的场景;

跨平台:web配网基于网页,不管是手机(android),平板,电脑,只要能打开网页的地方就可以查看串口数据;

实时性强:采用WebSocket技术实现数据双向实时传输,串口接收的数据能瞬间在网页显示,用户输入的指令也能立即通过串口发送,调试效率高。

原理

在线配置串口与实时数据交互的核心原理基于 “前端交互 - 后端处理 - 硬件映射” 的三层架构:

串口参数配置:前端通过表单组件(下拉框、单选框)提供串口参数选项(波特率:9600/115200 等;数据位:7/8 位;停止位:1/2 位;校验位:无 / 奇 / 偶校验),用户选择后,前端将参数通过 HTTP POST 请求发送到 ESP32 后端。ESP32 接收到参数后,调用串口驱动库的接口,动态修改串口配置(如Serial.begin(baudrate, config)),同时将参数保存到 NVS,确保下次上电后生效

实时数据交互:采用 WebSocket 协议实现双向实时通信(HTTP 协议为 “请求 - 响应” 模式,不适合实时数据;WebSocket 为长连接,支持服务器主动推送数据)。ESP32 的 Web Server 开启 WebSocket 服务,前端网页点击连接之后加载后与后端建立 WebSocket 连接。当 ESP32 的串口接收到外部设备数据时,会立即通过 WebSocket 连接推送到前端,网页实时刷新显示;用户在网页输入框中输入指令(如 AT 指令),点击 “发送” 后,前端将指令通过 WebSocket 发送到 ESP32,后端解析后通过串口发送给外部设备。

逻辑

  • 串口配置的获取和设置就比较简单,和上一个例子WiFi配置差不多;
  • 设置的时候就是把前端的数据发送给esp32之后保存的nvs中;
  • 获取的时候相反把nvs中保存的串口配置数据发送到前端;
  • 串口实时主要就是启动ESP32的websocket功能大致逻辑;

启动webserver;

启动串口

设置监听连接的URI,如果用户点击了连接则客户端发起ws连接到esp32;

把串口监听到的数据通过ws通道发送到前端

把ws通道监听到的数据转发给串口;

总结

以上三个功能(Web 配网、串口配置、数据交互)基于 ESP32 Web Server 实现,核心是通过 “前端界面 - 后端逻辑 - 硬件控制” 的联动,将传统需要通过专用工具完成的操作,迁移到跨平台的网页上,大幅降低了 ESP32 设备的使用与调试门槛。

通过在ESP32上运行网页服务器(Web Server),我们可以做很多有意思的功能,而我这里提供的代码只是参考作用,其中还有还有很多细节需要优化和考虑,纯粹抛砖引玉。

期待各位高手show出你们更多有意思的应用;

温馨提醒:公众号后台私信ESP32 Web Server 2可获取完整工程;

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Web
    Web
    +关注

    关注

    2

    文章

    1302

    浏览量

    73655
  • 服务器
    +关注

    关注

    13

    文章

    10094

    浏览量

    90881
  • ESP32
    +关注

    关注

    24

    文章

    1083

    浏览量

    20854
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【FireBeetle ESP32-E开发板免费试用】+wifi功能测试&搭建web服务器

    本帖最后由 dql2016 于 2021-9-15 21:11 编辑 ESP32具有wifi功能,可作为AP使用。本帖利用esp32的wifi功能搭建一个简单的web服务器实现传
    发表于 09-14 21:51

    Web Server服务器后台表单处理程序

    1.Web Server服务器后台表单处理程序:使用 CGI 程序接口编写后台程序的 Web服务器。2.Boa
    发表于 12-16 06:25

    ESP8266 WEB智能小后台 ,采电压,绘曲线,向服务器传信息

    ESP8266 WEB小后台 ,采电压,绘曲线,向服务器传信息一个月前,自己想设计一个不用安装应用程序的智能手机控制的硬件。是否有人有兴趣?有兴趣的可以联系我,朝“自带智能使用程序的智能硬件,或是有
    发表于 11-25 22:15

    ESP32 Web服务器可以向外部Rest API发起HTTP请求吗?

    我想知道以下是否可行...... 1)作为网络服务器运行ESP32 可以向外部 Rest API 发起/发出 HTTP 请求吗?2) 我是否需要同时将其设置为服务器和客户端,或者
    发表于 03-01 06:22

    如何实现ESP32运行运行HTTP服务器

    我正在努力了解如何与我的网络服务器建立连接。我正在做一个项目,在 ESP32运行,它运行着一个 HTTP 服务器。我需要从世界任何地方访
    发表于 03-02 07:25

    使用ESP8266作为Web服务器,如何将网页上传到SPIFFS?

    我希望这是一个宣布这个的好地方...... 我一直在使用 ESP8266 作为 Web 服务器,因此必须一直将我的网页上传到 SPIFFS。 我曾经使用 Arduino IDE 和 S
    发表于 05-23 08:49

    带有BME280的ESP32 Web服务器的高级气象站

    介绍一款带有BME280的ESP32 Web服务器的高级气象站。
    发表于 03-17 11:15 18次下载
    带有BME280的<b class='flag-5'>ESP32</b> <b class='flag-5'>Web</b><b class='flag-5'>服务器</b>的高级气象站

    最简单DIY基于ESP8266的物联网智能小车②(webserver服务器网页高级遥控版)

    ESP8266和ESP32物联网智能小车开发系列文章目录第一:最简单DIY基于ESP8266的物联网智能小车①(webserver服务器
    发表于 12-29 18:58 0次下载
    最简单DIY基于<b class='flag-5'>ESP</b>8266的物联网智能小车②(webserver<b class='flag-5'>服务器</b><b class='flag-5'>网页</b>高级遥控版)

    ESP32 CAM WEB服务器及入门指南

    电子发烧友网站提供《ESP32 CAM WEB服务器及入门指南.zip》资料免费下载
    发表于 11-17 10:44 0次下载
    <b class='flag-5'>ESP32</b> CAM <b class='flag-5'>WEB</b><b class='flag-5'>服务器</b>及入门指南

    使用基于ESP32Web服务器的互联网控制LED

    电子发烧友网站提供《使用基于ESP32Web服务器的互联网控制LED.zip》资料免费下载
    发表于 12-20 10:09 2次下载
    使用基于<b class='flag-5'>ESP32</b>的<b class='flag-5'>Web</b><b class='flag-5'>服务器</b>的互联网控制LED

    基于ESP32的简易web服务器设计

    本文介绍一下如何使用ESP32快速方便的搭建一个简易的web服务器
    的头像 发表于 01-05 10:49 5126次阅读

    ESP32 IDF创建WEB SERVER的流程

    ESP-IDF中,Web服务器使用httpd组件实现。我们需要先创建httpd_config_t结构体,指定服务器的端口、最大并发连接数、URI匹配处理
    的头像 发表于 03-13 15:36 5804次阅读
    <b class='flag-5'>ESP32</b> IDF创建<b class='flag-5'>WEB</b> <b class='flag-5'>SERVER</b>的流程

    使用ESP32 Web服务器进行家庭自动化设置

    电子发烧友网站提供《使用ESP32 Web服务器进行家庭自动化设置.zip》资料免费下载
    发表于 07-03 10:49 0次下载
    使用<b class='flag-5'>ESP32</b> <b class='flag-5'>Web</b><b class='flag-5'>服务器</b>进行家庭自动化设置

    什么是web服务器?如何选择服务器配置?

    Web服务器是一种软件或硬件设备,用于托管和提供网页内容。它接收客户端(如浏览)发送的HTTP请求,并返回相应的网页内容或其他资源,以实现
    的头像 发表于 01-03 15:25 1763次阅读

    ESP32运行网页服务器 (Web-Server)-入门

    什么是ESP32WebServer?ESP32WebServer是在ESP32微控制运行的一个嵌入式
    的头像 发表于 03-09 14:24 6464次阅读
    <b class='flag-5'>ESP32</b><b class='flag-5'>运行</b><b class='flag-5'>网页</b><b class='flag-5'>服务器</b> (<b class='flag-5'>Web-Server</b>)-入门<b class='flag-5'>篇</b>