Skip to content

xDev-on/xLogMonitor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

1、介绍

这是一个具备Wi-Fi功能的无线双串口调试工具,除了基本的无线串口外还具备将串口数据自动记录到TF卡,可自定义数据上报地址,可定义IO功能逻辑等功能,具有很高的可玩性;

配合自研上位机,通过网络可在线查看历史日志(无需断电),实时日志,无线调试,通过上位机的串口映射,还可以把设备接收到的数据映射到使用者喜欢的串口工具上如CRT等工具,大大提升了使用体验和拓展了功能;

同时支持用户自定义把数据送到MQTT服务器UDP服务器,拓展了灵活性;

基于MQTT上位机支持MQTT远程连接设备,可以远程查看设备实时日志也可以把远程设备日志映射到本地电脑串口;

设计此工具的初心是希望可以替代传统的usb转串口工具,方便设备数据采集和串口数据记录;

温馨提醒: B站搜索“晓谈物联”可找到演示视频,也可以加以下微信进行沟通;

wechat.png

2、硬件外观

新老外观对比.jpg

3、引脚说明

新老引脚说明.jpg

4、新老版本对比

与上一个版本对比,这个新版本在硬件和软件都做了极大的优化和功能增强,具体功能见下表

1. 硬件外观

设备详情++1+.PNG

2.功能集合

序号 功能 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

5、使用教程

5.0、一些前置条件

  • 工作电压: 3.3V-5V+
  • 工作电流: 不小于500mA
  • TF卡: 不大于16G,格式化为FAT32,推荐使用金士顿或者闪迪,其他杂牌可能会识别不了,导致设备无法工作;
  • 上位机软件: image.png

5.1、初始化配置

  1. 【可选项,若有TF卡则执行】TF卡格式化为FAT32,并且在SD卡中创建两个目录 /log/uart_0/log/uart_1;image.png
  2. 【可选项,若有TF卡则执行】TF卡插上设备;
  3. 使用USB转TTL串口工具与设备串口(任何一个串口都可以)连接之后把到USB转TTL串口工具插入到电脑,在电脑端上位机选择实际分配的串口号进行连接,并且给设备上电;
  4. 1秒内双击Boot按键2次,此时蓝灯常亮,进入配置模式; image.png
  5. 上位机填写配置信息后点击设置,等待设备回应后弹出,则设备设置成功; image.png

5.2、实时日志查看

  1. 这里假设设备已经打开了实时日志上报开关,且设备和电脑在同一个WiFi下,设备上电后会自动连接到电脑上位机;

  2. 通过往无线串口发送数据则数据实时接收显示在电脑上;

5.3、历史日志查看

前提条件: 设备的SD卡日志保存开关已经打开;

1、通过上位机查看

通过上位机可以在线查看到历史日志的文件列表;

  • 双击日志文件,可以实时加载; image.png
  • 右键文件,可以下载到本地电脑上; image.png

2、直接通过TF卡查看

通过直接把TF卡插入到电脑,可以直接看到日志文件,在电脑端直接打开即可; image.png

3、删除历史文件

当TF卡存储的文件很多时,TF卡存储空间可能满了,我们就需要删除在卡上的文件,目前有2种方法可以删除历史日志文件;

  1. 可以通过把SD卡插到电脑上,然后通过电脑端删除,而且建议一次性删除全部历史文件,或者按照文件序号,从大往小删除
  2. 另外一种方法是通过载文件列表处右键,可以在线删除批量日志image.png

5.4、设备运行情况查看

  • SD卡使用情况
  • 设备WiFi信息已经IP信息 image.png

5.5、波特率

可以选择常用的波特率,或者自定义波特率,波特率范围是9600-3000000(3M)

5.6、脱离TF卡工作

拔掉TF卡,上位机会显示未检测到SD卡,除了不能存储日志外,其他功能都可以正常使用; image.png

5.7、自定义上报客户端-UDP和MQTT自定义上报

5.7.1、UDP客户端自定义上报

  1. 数据上报到UDP服务器

    • 服务器启动UDP服务,即可把日志上报到云端服务器;

      如启动监听8080端口:ubuntu@VM-20-14-ubuntu:~/work_space$ nc -ul 8080

  2. 数据上报到手机端

    • 把自定义通道的IP和端口设置为手机端信息,即可在手机端收到数据
  3. 自定义客户端

    1. 集成到自己的软件上

    2. 通过三方软件客户端

5.7.2 、MQTT客户端自定义上报

  • 上位机版本:至少为 3.0.1
  • 设备端固件版本:至少为 03000002
  1. MQTT主题说明

    1. 遗嘱主题:xLogMonitor/onoff/$mac 其中qos=0,设备上下线可以通过订阅该主题获取到通知,payload格式如下:

      注意:设备下线通知延迟取决于mqtt keepalive 参数

      # 上线
      {"mac":"DCDA0CFA1968","state":"online"}
      # 下线
      {"mac":"DCDA0CFA1968","state":"offline"}
    2. 发送数据给设备串口主题

      1. 串口0主题: S2D/U/0/$mac $mac 为设备真是mac字符串,格式为大写16进制格式;

      2. 串口1主题: S2D/U/1/$mac

    3. 设备串口数据上报主题

      • 串口0主题: D2S/U/0/$mac $mac 为设备真是mac字符串,格式为大写16进制格式

      • 串口1主题: D2S/U/1/$mac

  2. 上位机配置说明

    1. 我们这里找了一个公开的MQTT服务器来做测试,把MQTT服务器的信息填入上位机,然后找一个MQTT客户端工具(我这里用了mqtt.fx)订阅设备的 遗嘱主题设备串口上报主题,来对设备进行测试; 公开的MQTT服务器信息如下(https://www.emqx.com/zh/mqtt/public-mqtt5-broker)

      image.png

    2. 打开MQTT客户端,把服务器信息填入客户端如下图

      image.png

    3. MQTT客户端连接之后订阅设备的 遗嘱主题设备串口上报主题 image.png

    4. 打开上位机在初始化的时候打开自定义上报通道选择MQTT客户端,填入MQTT服务器信息,如下图

      image.png

  3. 配置完成之后手动重启设备,观察电脑MQTT客户端

    • 观察设备上下行通知

      • 设备上线收到的通知

        image.png

      • 设备掉电(大概120S后)观察到的通知

        image.png

    • 上报数据到MQTT服务器,观察订阅的客户端收到的数据

      image.png

    • 下发数据到设备串口

      image.png

5.8 上位机自动发现连接

  • 上位机版本:至少为3.0.0

  • 设备端固件版本:至少为 3.0.0

打开上位机,在设备初始化界面,选择服务器自动发现选项,设备连接上WiFi之后就会自动发现同网络下的上位机;如下图

image.png

5.8.1 如何发现指定设备

对于自动发现的设备,如果设备签名不使用,则可以被所有的上位机发现,如果需要指定发现,则可以设置设备签名(不大于12个字节);

比如初始化的时候设置设备签名为001,且上位机的服务配置,同样使用签名位001,则设备只会连接到此上位机; image.png image.png

5.9 日志自动添加时间戳

  • 上位机版本:至少为3.0.0

  • 设备端固件版本:至少为 3.0.0

设备通过连接SNTP服务器自动周期同步网络时间,所以需要设备连接的网络具备有联网能力才可以使用此功能;

对于串口数据是字符串格式的支持,如果是Hex内容格式的数据则不支持;

原因:字符串可以指定换行符号添加时间戳,HEX内容没有特殊的换行符号;

image.png

5.10 串口映射转发

  • 上位机版本:至少为3.0.02

  • 设备端固件版本:至少为 03000003

支持把设备接收到的数据通过上位机转发到电脑上的某一个COM口,假设是COM1。你可以把COM1连接到另外一个COM口,假设是COM2,这样子COM1<=>COM2就互通了,你就可以用你熟悉的任何COM口工具进行数据查看和调试!

这个功能太有用了,你可以用支持颜色显示的串口工具显示日志,也可以把自己的上位机接入,大大拓展了此工具的使用;

一些规则描述:

  • 设备配置好串口转发功能后连接到上位机,上位机会自动打开映射串口;

    image.png

  • 若由于某些情况自动打开映射串口失败,你可以直接到串口界面手动打开,也可以手动关闭串口转发;

    image.png

  • 转发路径描述

    image.png

5.10 设置设备别名

  • 上位机版本≥3.0.6 image.png

5.11 使用外置RTC逻辑

  • 前置条件: 使用RTC时间,模块必须外接RTC模块,若没有外接RTC模块会出现配置失败;
  • RTC时间可以确保模块在没有连接网络的情况下日志添加时间戳也是正确的,适合设备使用环境没WiFi且保存日志需要时间戳的情况;
  • 当用上位机进行配置RTC时间时,会自动校准RTC模组的时间,用户无需额外的RTC校准时间操作;
  • 如何配置:在上位机的时间戳来源选择RTC时间,如下进行配置; image.png

5.12 设备别名设置

当我们连接比较多的设备时候,通过MAC很难直观区分设备,我们可以给设备起一个别名,通过上位机的设备初始化界面即可设置,如下图

image.png

5.13 数据保存格式说明

1、原始数据保存

  1. 串口发送的数据是什么,SD卡缓存的日志内容就是什么。
  2. 若对接的串口数据是非可见数据,那么保存下来的文件如果用文本打开可能会出现乱码或者不可见,且日志无法添加时间戳
  3. 若对接的串口数据是文本,那么可以通过选择正确的换行符号来添加时间戳;

2、转Hex字符串保存

这个保存格式,会把串口的数据转成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个数据包分为两行进行保存; image.png

5.14 远程查看设备实时日志

image.png

远程日志的实现架构图如上图,远程设备实时日志查看,需要依赖MQTT服务器,在这里我免费提供自己搭建的一个MQTT服务器给大家体验,由于服务器配置较低,所以如果出现连接不上或者不稳定,那很有可能是正常的哈;

如果追求稳定,那么需要自己搭建服务器。

另外,需要注意的是由于远程看日志,整个数据链路会受到很多因素的影响,比如网络环境质量,服务器状态等等,所以远程查看日志实时性稳定性可能会不如局域网查看好;

了解完上面的情况之后,我们来看下如何使用

  1. 初始化配置设备连接MQTT服务器,如下图(确保一致)然后点击设置设备,最后设备重启生效; image.png
  2. 上位机连接远程设备,在左边空白处鼠标右键,然后点击弹出的**"创建远程设备连接"** image.png
  3. 在弹出的窗口填入信息
    • 要连接的设备MAC,一定要大写
    • 客户端ID如果是连接我提供的服务器,请使用默认生成的(比如:r_E4B06335395C),如果是自己的服务器,请按你服务器的配置来;
    • 其他的配置要保持和下图一致
    • 最后点击OK; image.png
  4. 填入之后在上位机的左边就会出现我们刚填入的设备选项条目,我们在条目上右键出现以下菜单,选择连接服务器,若顺利则会看到远程设备在线,接下来就可以正常的收发串口数据了; image.png

5.15 远程数据映射到本地串口

通过远程查看设备实时日志的配置之后,我们可以把接收过来的远程数据通过串口转发功能转发到本地电脑的指定串口上,实现用自己熟悉的串口工具远程来调试设备;

具体操作可以见5.10串口映射转发部分描述 image.png

6. 🚦LED灯状态

状态 LED
上电 红灯常亮
未连接Wi-Fi 绿地快闪(100ms)
连接WiFi,未连接服务 绿地慢闪(500ms)
连接上服务 绿地长亮
设备配置状态 蓝灯常亮
升级状态 蓝地快闪(100ms)

7. 设备端固件升级方法

1. 串口升级方法

串口0(RXD0、TXD0) 连接到电脑后打开下载工具,下载地址为:0X10000然后保持BOOT按键按住不放,RST按键短按后松开,设备即可进入下载模式,此时通过串口即可下载固件;

工具下载地址:https://docs.espressif.com/projects/esp-test-tools/zh_CN/latest/esp32/production_stage/tools/flash_download_tool.html

image.png

注意事项:串口升级方法只能烧录到指定Flash地址,否则无法运行!

2. SD卡线升级

把新固件放在SD卡目录中upgrade/app.bin设备启动会自动升级该目录下的app.bin文件且重启运行新固件,通过查看LED灯状态判断升级是否完成; 注意: 每次升级完之后,SD卡上的新固件会自动删除,请保管好新固件;

8、上位机(windows 10-11,64位)

9、常见问题

[FlowUs 息流 - 新一代生产力工具](https://flowus.cn/share/3e8b3e10-dea2-4651-afaf-3aac98e90357 【FlowUs)

直接购买

https://mmbiz.qpic.cn/sz_mmbiz_jpg/Hl6hOwgKUiaRcPQvxI2LCLFfSoOua4YMDcIxicS3LwlWNkITuic2AiaIoKqzxuUHgdIDe5FLZtltx6C0YuLvozJY0g/640?wx_fmt=jpeg&from=appmsg&wxfrom=5&wx_lazy=1&wx_co=1

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors