这是一个具备Wi-Fi功能的无线双串口调试工具,除了基本的无线串口外还具备将串口数据自动记录到TF卡,可自定义数据上报地址,可定义IO功能逻辑等功能,具有很高的可玩性;
配合自研上位机,通过网络可在线查看历史日志(无需断电),实时日志,无线调试,通过上位机的串口映射,还可以把设备接收到的数据映射到使用者喜欢的串口工具上如CRT等工具,大大提升了使用体验和拓展了功能;
同时支持用户自定义把数据送到MQTT服务器和UDP服务器,拓展了灵活性;
基于MQTT上位机支持MQTT远程连接设备,可以远程查看设备实时日志也可以把远程设备日志映射到本地电脑串口;
设计此工具的初心是希望可以替代传统的usb转串口工具,方便设备数据采集和串口数据记录;
温馨提醒: B站搜索“晓谈物联”可找到演示视频,也可以加以下微信进行沟通;
与上一个版本对比,这个新版本在硬件和软件都做了极大的优化和功能增强,具体功能见下表
| 序号 | 功能 | V2(新版本) | 备注 |
|---|---|---|---|
| 1 | 无线串口 | ✔支持 | |
| 2 | 实时日志查看 | ✔支持 | |
| 3 | 历史日志查看 | ✔支持 | |
| 4 | 串口数据记录到TF卡 | ✔支持 | |
| 5 | TF卡空闲容量查看 | ✔支持 | |
| 6 | 双向数据通讯(收发) | ✔支持 | |
| 7 | 串口数量 | ✔ 2 | |
| 8 | 串口波特率 | ✔4800-3000000(可自定义) | |
| 9 | 可脱离TF卡工作 | ✔支持 | |
| 10 | 自定义UDP客户端上报 | ✔支持 | |
| 11 | 自定义MQTT(支持SSL)客户端上报 | ✔支持 | |
| 12 | 日志自动添加网络时间戳(支持毫秒级) | ✔支持 | 上位机版本≥v3.0.0 |
| 13 | 自动发现电脑上位机和连接 | ✔支持 | 上位机版本≥v3.0.0 |
| 14 | 串口映射转发 | ✔支持,允许用熟悉的串口工具查看 | 上位机版本≥v3.0.2+ |
| 15 | 在线删除TF卡日志 | ✔支持 | 上位机版本≥v3.0.2+ |
| 16 | RTC时间支持 | ✔ 支持[需外接RTC模块] | 上位机版本≥v3.0.7,设备固件≥03000008 |
| 17 | 串口数据转Hex字符串保存 | ✔支持 | 上位机版本≥v3.0.7,设备固件≥03000008 |
| 18 | 自定义设备别名 | ✔支持 | 上位机版本≥v3.0.7 |
| 19 | 自定义SD卡存储文件大小 | ✔支持 | 上位机版本≥v3.0.7,设备固件≥03000008 |
| 20 | 远程日志查看 | ✔支持 | 上位机版本≥v3.0.7,设备固件≥03000008 |
| 21 | 远程(广域网)日志转本地串口数据 | ✔支持(需要配合MQTT服务器) | 上位机版本≥v3.0.7,设备固件≥03000008 |
- 【可选项,若有TF卡则执行】TF卡格式化为FAT32,并且在SD卡中创建两个目录
/log/uart_0和/log/uart_1; - 【可选项,若有TF卡则执行】TF卡插上设备;
- 使用USB转TTL串口工具与设备串口(任何一个串口都可以)连接之后把到USB转TTL串口工具插入到电脑,在电脑端上位机选择实际分配的串口号进行连接,并且给设备上电;
- 1秒内双击Boot按键2次,此时蓝灯常亮,进入配置模式;
- 上位机填写配置信息后点击设置,等待设备回应后弹出,则设备设置成功;
-
这里假设设备已经打开了实时日志上报开关,且设备和电脑在同一个WiFi下,设备上电后会自动连接到电脑上位机;
-
通过往无线串口发送数据则数据实时接收显示在电脑上;
前提条件: 设备的SD卡日志保存开关已经打开;
通过上位机可以在线查看到历史日志的文件列表;
通过直接把TF卡插入到电脑,可以直接看到日志文件,在电脑端直接打开即可;
当TF卡存储的文件很多时,TF卡存储空间可能满了,我们就需要删除在卡上的文件,目前有2种方法可以删除历史日志文件;
可以选择常用的波特率,或者自定义波特率,波特率范围是9600-3000000(3M)
拔掉TF卡,上位机会显示未检测到SD卡,除了不能存储日志外,其他功能都可以正常使用;
-
数据上报到UDP服务器
-
服务器启动UDP服务,即可把日志上报到云端服务器;
如启动监听8080端口:
ubuntu@VM-20-14-ubuntu:~/work_space$ nc -ul 8080
-
-
数据上报到手机端
- 把自定义通道的IP和端口设置为手机端信息,即可在手机端收到数据
-
自定义客户端
-
集成到自己的软件上
-
通过三方软件客户端
-
- 上位机版本:至少为
3.0.1 - 设备端固件版本:至少为
03000002
-
MQTT主题说明
-
遗嘱主题:
xLogMonitor/onoff/$mac其中qos=0,设备上下线可以通过订阅该主题获取到通知,payload格式如下:注意:设备下线通知延迟取决于mqtt keepalive 参数
# 上线 {"mac":"DCDA0CFA1968","state":"online"} # 下线 {"mac":"DCDA0CFA1968","state":"offline"}
-
发送数据给设备串口主题
-
串口0主题:
S2D/U/0/$mac$mac 为设备真是mac字符串,格式为大写16进制格式; -
串口1主题:
S2D/U/1/$mac
-
-
设备串口数据上报主题
-
串口0主题:
D2S/U/0/$mac$mac 为设备真是mac字符串,格式为大写16进制格式 -
串口1主题:
D2S/U/1/$mac
-
-
-
上位机配置说明
-
我们这里找了一个公开的MQTT服务器来做测试,把MQTT服务器的信息填入上位机,然后找一个MQTT客户端工具(我这里用了
mqtt.fx)订阅设备的遗嘱主题和设备串口上报主题,来对设备进行测试; 公开的MQTT服务器信息如下(https://www.emqx.com/zh/mqtt/public-mqtt5-broker) -
打开MQTT客户端,把服务器信息填入客户端如下图
-
打开上位机在初始化的时候打开自定义上报通道选择MQTT客户端,填入MQTT服务器信息,如下图
-
-
配置完成之后手动重启设备,观察电脑MQTT客户端;
-
上位机版本:至少为3.0.0
-
设备端固件版本:至少为 3.0.0
打开上位机,在设备初始化界面,选择服务器为自动发现选项,设备连接上WiFi之后就会自动发现同网络下的上位机;如下图
对于自动发现的设备,如果设备签名不使用,则可以被所有的上位机发现,如果需要指定发现,则可以设置设备签名(不大于12个字节);
比如初始化的时候设置设备签名为001,且上位机的服务配置,同样使用签名位001,则设备只会连接到此上位机;
-
上位机版本:至少为3.0.0
-
设备端固件版本:至少为 3.0.0
设备通过连接SNTP服务器自动周期同步网络时间,所以需要设备连接的网络具备有联网能力才可以使用此功能;
对于串口数据是字符串格式的支持,如果是Hex内容格式的数据则不支持;
原因:字符串可以指定换行符号添加时间戳,HEX内容没有特殊的换行符号;
-
上位机版本:至少为3.0.02
-
设备端固件版本:至少为 03000003
支持把设备接收到的数据通过上位机转发到电脑上的某一个COM口,假设是COM1。你可以把COM1连接到另外一个COM口,假设是COM2,这样子COM1<=>COM2就互通了,你就可以用你熟悉的任何COM口工具进行数据查看和调试!
这个功能太有用了,你可以用支持颜色显示的串口工具显示日志,也可以把自己的上位机接入,大大拓展了此工具的使用;
- 前置条件: 使用RTC时间,模块必须外接RTC模块,若没有外接RTC模块会出现配置失败;
- RTC时间可以确保模块在没有连接网络的情况下日志添加时间戳也是正确的,适合设备使用环境没WiFi且保存日志需要时间戳的情况;
- 当用上位机进行配置RTC时间时,会自动校准RTC模组的时间,用户无需额外的RTC校准时间操作;
- 如何配置:在上位机的时间戳来源选择RTC时间,如下进行配置;
当我们连接比较多的设备时候,通过MAC很难直观区分设备,我们可以给设备起一个别名,通过上位机的设备初始化界面即可设置,如下图
- 串口发送的数据是什么,SD卡缓存的日志内容就是什么。
- 若对接的串口数据是非可见数据,那么保存下来的文件如果用文本打开可能会出现乱码或者不可见,且日志无法添加时间戳;
- 若对接的串口数据是文本,那么可以通过选择正确的换行符号来添加时间戳;
这个保存格式,会把串口的数据转成Hex字符串进行保存。
比如,串口对接的是Modbus RTU数据或者一些不可见字符,为了方便后续查看日志,如果不进行转换则保存下来的数据可能会出现乱码或看不到;
以Modbus RTU的一帧串口数据为例子,串口发送的数据是 01 03 00 00 00 01 84 0A 则会被转成文本 "01 03 00 00 00 01 84 0A"进行保存,你打开SD卡保存下来的文件也能看到:01 03 00 00 00 01 84 0A;
对于转Hex字符串保存,日志工具需要知道如何对串口数据进行完整包提取,所以还需要设置串口数据包长度和数据包间隔,设置好之后设备就会按此进行串口包提取;
串口数据包长度: 用于判断一包串口包最长为多长; 数据包间隔: 用于判断两个数据包之间的间隔,若数据间隔大于此值,则会被识别为新的一个数据包; 比如,你设置了串口数据包长度=15,数据包间隔=10ms;
- 第一种情况:串口一次性发送了30个字节的数据包,由于数据超过15个字节,则模组会自动按15个字节拆分,最终会分为2个数据包进行保存;
- 第二种情况:串口发送了5个字节之后,停了12ms再发5个字节,由于两次数据包之间的间隔大于10ms,则模组也会自动拆分为2个数据包分为两行进行保存;
远程日志的实现架构图如上图,远程设备实时日志查看,需要依赖MQTT服务器,在这里我免费提供自己搭建的一个MQTT服务器给大家体验,由于服务器配置较低,所以如果出现连接不上或者不稳定,那很有可能是正常的哈;
如果追求稳定,那么需要自己搭建服务器。
另外,需要注意的是由于远程看日志,整个数据链路会受到很多因素的影响,比如网络环境质量,服务器状态等等,所以远程查看日志实时性、稳定性可能会不如局域网查看好;
了解完上面的情况之后,我们来看下如何使用
- 初始化配置设备连接MQTT服务器,如下图(确保一致)然后点击设置设备,最后设备重启生效;
- 上位机连接远程设备,在左边空白处鼠标右键,然后点击弹出的**"创建远程设备连接"**
- 在弹出的窗口填入信息
- 填入之后在上位机的左边就会出现我们刚填入的设备选项条目,我们在条目上右键出现以下菜单,选择连接服务器,若顺利则会看到远程设备在线,接下来就可以正常的收发串口数据了;
通过远程查看设备实时日志的配置之后,我们可以把接收过来的远程数据通过串口转发功能转发到本地电脑的指定串口上,实现用自己熟悉的串口工具远程来调试设备;
| 状态 | LED |
|---|---|
| 上电 | 红灯常亮 |
| 未连接Wi-Fi | 绿地快闪(100ms) |
| 连接WiFi,未连接服务 | 绿地慢闪(500ms) |
| 连接上服务 | 绿地长亮 |
| 设备配置状态 | 蓝灯常亮 |
| 升级状态 | 蓝地快闪(100ms) |
串口0(RXD0、TXD0) 连接到电脑后打开下载工具,下载地址为:0X10000然后保持BOOT按键按住不放,RST按键短按后松开,设备即可进入下载模式,此时通过串口即可下载固件;
注意事项:串口升级方法只能烧录到指定Flash地址,否则无法运行!
把新固件放在SD卡目录中upgrade/app.bin设备启动会自动升级该目录下的app.bin文件且重启运行新固件,通过查看LED灯状态判断升级是否完成;
注意: 每次升级完之后,SD卡上的新固件会自动删除,请保管好新固件;
-
【上位机3.0.7】需要配合固件
03000008链接: https://pan.baidu.com/s/1tGPKpqUUd4_BaiSzHzq2vA?pwd=1kzz 提取码: 1kzz -
【上位机3.0.3】链接: https://pan.baidu.com/s/1lApnBO9Fo0VOYY2-InvwiQ?pwd=r5i2 提取码: r5i2
[FlowUs 息流 - 新一代生产力工具](https://flowus.cn/share/3e8b3e10-dea2-4651-afaf-3aac98e90357 【FlowUs)