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
开发环境,先添加附加开发板管理网址https://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
输出日志(可在代码里自行配置)