UART⇄MQTT
可视化配置WIFI、MQTT、订阅主题、连接状态,持久化存储,下一次重启自动连接,长按flash按钮清除连接信息、自定义控制日志输出
以下代码都在 ESP8266 Node MCU验证过(ESP12F模组)
下面以ESP8266 Node MCU为例,视频演示链接:https://www.bilibili.com/video/BV1d94y1c7RA (注:视频演示的是核心功能的使用,github仓库会更新一些新功能)
| 设备信息 | MQTT配置 | WIFI配置 |
|---|---|---|
![]() |
![]() |
![]() |
| 串口发送长文本,MQTT订阅消息接收 | MQTT消息推送、串口接收 |
|---|---|
![]() |
![]() |
| 日志输出(默认开启) |
|---|
![]() |
1、下载烧录固件并烧录(固件在build目录下,烧录工具ESP8266Flasher.exe也在仓库里。
注:使用这个软件烧录需要确保你的ESP8266自带自动下载电路(大部分都带,有的不带的需要点击一下Flash按键),确保端口、烧录固件选择正确
![]() |
![]() |
|---|
2、ESP8266会启动一个热点,连接上热点之后(以ESP开头的热点)访问192.168.4.1会跳转到配置页面
![]() |
![]() |
|---|
3、点击选择WIFI,输入WIFI密码、配置MQTT之后点击保存
注:事先准备一个MQTT服务器,MQTT服务器可以是外网,确保此WIFI可以访问你的MQTT服务器,建议先配置好WIFI保存后再配置MQTT
![]() |
![]() |
![]() |
|---|
4、串口连接使用(确保客户端、ESP8266都能够正常访问MQTT服务器)
注:串口默认波特率为9600,串口发送ESP8266需要结束符,默认为uart-mqtt,二者都可以在配置页面修改(修改后重启模块)
![]() |
|---|
5、日志输出默认开启,日志输出引脚默认为D0(可在代码里自定义修改),波特率与透传串口相同,调试信息默认打印设备信息以及ESP8266与MQTT透传、接收的信息
1、准备好ESP8266的Arduino开发环境
-
安装
Arduino软件(下载官网:Software | Arduino)这里是1.8.19版本(在我的测试中Arduino IDE版本1.8.19、2.1.0均正常) 注:安装过程中会让你安装一些组件,一路点安装、下一步即可 -
安装
ESP8266的Arduino开发环境,先添加附加开发板管理网址http://arduino.esp8266.com/stable/package_esp8266com_index.json,然后安装开发板扩展包,注意是3.1.12版本,其它版本可能出现问题,下载库的时候可能会因为github被墙而无法下载,自行在网上搜索解决方案
2、准备好MQTT服务器、串口助手、烧录工具
3、双击打开Aduino项目,在首选项配置项目文件夹位置为D:\UART-MQTT-Trans-master(具体看自己路径)
![]() |
|---|
![]() |
3、注意不要更新相关库文件版本(尤其是WIFI Manager库)
4、配置开发板信息
![]() |
|---|
5、点击编译
6、数据线连接好后配置好端口,可以点击上传
![]() |
![]() |
|---|
7、自定义修改代码后可以选择导出新的固件
![]() |
![]() |
|---|
8、代码可自定义,自己实现想要的功能,比如开启、关闭日志串口,修改日志串口的输出引脚,修改串口向MQTT的结尾标志字符串
注:
1、串口波特率默认设置为9600(可在配置页面自行更改,修改后需重启模块)
2、长按flash三秒左右等待模块LED闪烁,说明清除配置成功
3、串口向MQTT发送数据时,注意要有一个结尾标志,默认是uart-mqtt(可在配置页面自行更改,修改后需重启模块)
4、在重启时,模块会通过串口打印自己信息(注意串口波特率要匹配)
5、事先启动一个MQTT服务器,在配置页面可以配置user password clientId等
6、本固件已在ESP8266MCU模块上验证过
7、日志默认在D1也就是GPIO16输出日志(可在代码里自行配置)





























