跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
C++

ESP8266 Web 配网与 MQTT 通信方案:免 AT 指令串口透传

介绍基于 ESP8266 的物联网设备一体化方案,实现 Web 配网、MQTT 通信及 STM32 串口透传。核心优势在于无需 AT 指令,单片机通过串口发送数据即可自动上传至 MQTT 服务器。支持 WiFi 与 MQTT 配置分离,更换 WiFi 时保留云端配置。提供 Web 可视化界面、串口命令调试及 MQTT 远程控制三种方式。具备遗嘱消息、心跳上报、断线重连等机制,确保连接稳定性。适用于嵌入式设备快速接入云平台。

BackendPro发布于 2026/4/6更新于 2026/5/2268 浏览

ESP8266 Web 配网与 MQTT 通信方案:免 AT 指令串口透传

一、项目背景与开发初衷

在物联网设备开发过程中,配网和远程通信是两个核心痛点:传统的 AT 指令配网操作复杂,且多数方案在更换 WiFi 时会丢失 MQTT 配置;串口调试和 MQTT 远程控制无法兼顾;设备配置管理缺乏可视化界面。针对这些问题,基于 ESP8266 / ESP12F 开发了一套集 Web 配网、串口调试、MQTT 远程控制于一体的智能设备管理系统,核心亮点是 Web 端支持只更改 WiFi 且保留 MQTT 配置、STM32 串口与 MQTT 调试及控制一体,直接配网、直接发送数据使用,没有复杂指令,大幅提升设备运维效率。

二、功能亮点

1. 差异化核心特性

  • WiFi/MQTT 配置分离:更换 WiFi 时自动保留 MQTT 服务器、主题等配置,无需重复设置、WiFi 自动连接、断连重启。
  • 多端控制体系:Web 可视化配置 + 串口命令调试 + MQTT 远程控制三重操作方式;Web 端保存 WiFi 配置,串口可与 STM32、Arduino 等单片机连接,MQTT 与云端、APP 等实现远程控制
  • 安全的配置管理:支持分维度重置(仅 WiFi / 仅 MQTT / 完全重置),操作前需确认,防止误操作
  • 状态可视化:Web 页面展示设备、WiFi、MQTT 连接状态,信号强度等关键信息;串口和 MQTT 通信实时打印显示信息及 help 帮助

2. 完整功能清单

功能模块具体能力
Web 配网扫描 WiFi 列表、手动输入 SSID、MQTT 配置(开发者模式)、设备状态展示、配置重置
串口通信基础命令(help/status/test 等)、存储管理(eeprom/clear 等)、STM32 数据解析
MQTT 通信文本 / JSON 格式指令、状态上报、遗嘱消息、定时心跳、远程配置 WiFi
存储管理EEPROM 分字段读写、配置备份、出厂设置恢复

三、核心功能演示

1. Web 配网及功能介绍

界面设计较为朴素,但功能完整,可直接使用。

WiFi 连接配置:

连接'ESP8266 设备配置'WiFi,自动打开页面(部分手机需要浏览器手动输入 192.168.4.1),保存相关配置即可连接。

设备重置功能:
  • 完全重置 (清除所有配置):清除 WiFi 和 MQTT 配置,恢复到出厂状态
  • 仅重置 WIFI 配置:只清除 WiFi 配置,保留 MQTT 设置
  • 仅重置 MQTT 配置:只清除 MQTT 配置,保留 WiFi 设置

2. 串口通信及调试(可连接 STM32 / Arduino 等单片机)

该交互界面支持串口指令快速调试:向 ESP8266 发送 help 指令即可打印完整的命令帮助手册,发送对应指令后设备会自动返回执行结果。核心优势在于:单片机无需依赖 AT 指令,只需通过串口向 ESP8266 发送标准化格式数据(如 <DATA,TEMP:25.5,HUMI:60>),即可自动上传至已配置的 MQTT 服务器,大幅简化了嵌入式设备的网络通信开发流程。

3. MQTT 通信体系

(1)MQTT 通信体系:文本 + JSON 双格式指令,适配不同场景

本系统的 MQTT 通信模块做了深度优化,既支持轻量化的文本指令,也兼容标准化的 JSON 指令,兼顾调试效率与工程化应用:

  1. 核心通信机制:
    • 设备默认订阅主题 device/sensor_01,响应主题 ,状态上报主题 ,三主题分离设计,避免指令与状态消息混叠;
sensor_01/response
sensor_01/status
  • 接入时自动配置遗嘱消息(Will Message),设备离线时会向状态主题推送 offline 状态,上线则推送 online 状态,保障服务端能实时感知设备在线状态;
  • 支持 60 秒定时心跳上报,包含设备 IP、WiFi 信号强度、剩余内存等核心状态,便于远程监控设备健康度。
  • 双格式指令支持:
    • 文本指令(快速调试):直接发送 status(查状态)、test(发测试数据)、clear_wifi(清 WiFi 配置)等指令,设备自动返回执行结果;
    • JSON 指令(工程化调用):支持结构化指令如 {"cmd":"reconfig_wifi"},可远程修改 WiFi 配置,且保留 MQTT 原有配置不丢失;
    • 单片机数据上传:无需封装 MQTT 协议,只需按 <DATA,TEMP:25.5,HUMI:60> 格式通过串口发数据,ESP8266 会自动封装为 JSON 并上传至 MQTT 服务器。
  • 高可用设计:
    • MQTT 断开后自动重连(10 秒重试一次),重连成功后自动恢复订阅与状态上报;
    • 配置持久化存储,即使设备重启,MQTT 服务器地址、端口、主题等配置也不会丢失,无需重新配置。
  • (2)连接机制(含遗嘱消息)

    (此处省略连接机制示意图)

    四、部署与使用说明

    1. 硬件要求

    • ESP8266 开发板(ESP12F / ESP-01 等)
    • USB 数据线
    • 串口调试工具(可选)

    2. 软件环境

    • Arduino IDE(安装 ESP8266 开发板支持)
    • 依赖库:ESP8266WiFi、ESP8266WebServer、PubSubClient、ArduinoJson

    3. 使用流程

    1. 首次配置:

      • 烧录代码后,设备启动 AP 模式
      • 手机连接该 AP,访问 http://192.168.4.1
      • 选择 WiFi 并输入密码
      • 输入 MQTT 服务配置(开发者选项),完成配置
    2. 更换 WiFi:

      • 串口发送 clearwifi 命令(或 Web 页面重置 WiFi)
      • 设备自动进入 AP 模式,重新配置 WiFi 即可(MQTT 配置保留)
    3. 远程控制:

      • MQTT 发送文本指令:status(查看状态)、test(测试数据)
      • MQTT 发送 JSON 指令:{"cmd":"set_wifi","ssid":"新 WiFi","password":"密码"}
    4. 常用命令: 部分可自行探索。

    五、项目总结与扩展方向

    1. 项目价值

    • 解决实际痛点:WiFi/MQTT 配置分离,解决频繁配网的问题
    • 降低使用门槛:Web 可视化配置,非专业人员也能操作
    • 提升调试效率:串口 + MQTT+Web 三重调试方式,适配不同场景

    2. 扩展方向

    • 增加 OTA 远程升级功能
    • 支持多个 MQTT 主题订阅 / 发布
    • 接入阿里云 / 腾讯云等物联网平台
    • 增加配置加密存储,提升安全性

    目录

    1. ESP8266 Web 配网与 MQTT 通信方案:免 AT 指令串口透传
    2. 一、项目背景与开发初衷
    3. 二、功能亮点
    4. 1. 差异化核心特性
    5. 2. 完整功能清单
    6. 三、核心功能演示
    7. 1. Web 配网及功能介绍
    8. WiFi 连接配置:
    9. 设备重置功能:
    10. 2. 串口通信及调试(可连接 STM32 / Arduino 等单片机)
    11. 3. MQTT 通信体系
    12. (1)MQTT 通信体系:文本 + JSON 双格式指令,适配不同场景
    13. (2)连接机制(含遗嘱消息)
    14. 四、部署与使用说明
    15. 1. 硬件要求
    16. 2. 软件环境
    17. 3. 使用流程
    18. 五、项目总结与扩展方向
    19. 1. 项目价值
    20. 2. 扩展方向
    • 💰 8折买阿里云服务器限时8折了解详情
    • Magick API 一键接入全球大模型注册送1000万token查看
    • 🤖 一键搭建Deepseek满血版了解详情
    • 一键打造专属AI 智能体了解详情
    极客日志微信公众号二维码

    微信扫一扫,关注极客日志

    微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

    更多推荐文章

    查看全部
    • AMD 显卡在 Windows WSL 环境中部署 Stable Diffusion WebUI 及 ComfyUI
    • JavaScript 全栈开发实战指南:Node.js 后端入门与避坑
    • Gaussian Grouping:在三维场景中分割与编辑任意对象
    • LeetCode 热题 100:随机链表的深拷贝
    • ToClaw 融合 OpenClaw 与远程功能,对比网页 AI 与传统工具
    • Qwen3-VL 结合 LLaMA-Factory 进行 Grounding 任务 LoRA 微调
    • C++11 核心新特性详解:初始化、引用与移动语义
    • 金仓数据库与 InfluxDB 时序性能对比及 SQL 兼容性分析
    • Vue 3 最佳实践总结与开发技巧
    • GitNexus:纯本地代码知识图谱与可视化关系网工具
    • Git LFS 安装教程:Linux、macOS 与 Windows 全平台指南
    • Mac 抹除重装卡在激活锁的两种解锁方案
    • 2026年,我整理了中国 200 多家机器人(具身智能)公司名单
    • AI 提示词工程:原理、策略与精通之道
    • 银河麒麟服务器版 Nginx Web 服务部署实战
    • AgentScope-Java 配置参数详解附录 B
    • 工作中常用的几种设计模式实战
    • 双指针算法进阶:从三角形计数到四数之和
    • 基于开源鸿蒙(OpenHarmony)的【智能家居综合应用】系统
    • Whisper-turbo 速度实测:云端 GPU 7 倍加速

    相关免费在线工具

    • Base64 字符串编码/解码

      将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

    • Base64 文件转换器

      将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

    • Markdown转HTML

      将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

    • HTML转Markdown

      将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

    • JSON 压缩

      通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

    • JSON美化和格式化

      将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online