程序员离不开命令行,许多经典命令是每天必用的,比如ls
和 cd
。
作为一个物联网开发和学习人员,IoT设备协议的测试联调是工作中很重要的一环!我有很多时刻都想拥有一个能集成常见物联网协议的客户端工具可供使用。经过我一通查找,发现和我拥有相同问题的人不在少数。
不仅仅是IoT开发者,包括云厂商、网络运营商都有相同烦恼:
- 开源物联网平台Thingsboard: coap -> coap.js(需要安装node);
- 移动OneNET平台: mqtt -> mqtt.fx(几年没更新了);
- 电信AEP平台:自定义TCP协议 -> sokit工具(只支持windows);
- 阿里云物联网平台: Nb-IoT协议 -> 需要到电信或移动平台上进行测试;
各大云厂商支持多种协议的设备接入,但是没有统一好用的支持多平台的测试工具!而开发者在日常开发和调试过程中,因自身技术能力的局限,无法短时间找到/开发出一个好用的IoT协议调试工具。
我们希望这个客户端工具有以下特点:
- 具备MQTT、CoAP和NB-IoT等多种协议测试和Debug能力,不仅仅局限于单一协议,毕竟物联网行业协议碎片化严重;
- 在内存占用上:我希望这个软件不要占用太多内存空间。市面上很多采用electron开发的客户端软件动不动高达300M,此时我相信大家也是相对无语😓的,但是没有可替代方案,不得不吃下这坨热乎的xiang!
- 此软件最好是支持国际化的,在做设备协议联调和开发中;如果我发现了问题,在如今这个国际化跨团队的开发模式下,我希望我咖喱味英语同事和我傲慢的大鼻子同事用这个软件能复现问题。
- 在使用和便捷性上,我希望它更现代化,提供自动补全且颜色输出好看,减少我的认知负荷。
Toolkit 缘起
去年我在公司负责了一个混合云项目的设备接入,在该项目中充斥着大量Nb-IoT协议(电信AEP平台和移动OneNET平台)的燃气设备,数量在500万左右的量级,和不同的非标的自定义TCP/IP协议设备。
从杭州出差 站在深圳湾公园观看着远处的香港,让我重新想起了上面开发者和我自己遇到的这些问题。经过大半年的呕心沥血,我开发了 Toolkit
IoT协议命令行工具。在涂鸦智能内部和这个大型混合云项目中都经过了验证,得到了客户和公司的开发人员的认可。同时我也想将这个工具介绍给大家,帮助大家解决上面的烦恼。
IoT-Toolkit 工具箱
官网地址: https://iot.mushuwei.cn/#/toolkit
GitHub: https://github.com/IoT-Technology/IoT-Toolkit
功能特性
- 🎼集成多种IoT协议,支持MQTT、CoAP和NB-IoT协议,未来会支持更多协议,更详细的协议打印信息;
- 🦉多操作系统支持,可在linux、unix和windows等操作系统中运行;
- 🇨🇳多语言配置,中文、英文、德语和法语支持;
- 💓ANSI颜色和样式, 使命令输出看起来好看,将重要元素与其余部分进行对比;
- 💯现代化的设计,提供自动补全,用户交互良好且易于操作;
- 💓低内存占用和更快的启动速度使用GraalVM的AoT技术运行避免JIT的CPU开销,使用native image,提供更快的vm性能和启动速度,无需依赖任何运行环境;
安装方式
Windows
使用 Chocolatey 安装, 请看安装教程
choco install toolkit
macOS
使用 brew 安装
brew install iot-technology/tap/toolkit
Linux & macOS
sdk install toolkit
你也可以直接下载安装包,解压安装
Platform | Toolkit |
---|---|
Linux-x86_64 | toolkit-latest-linux-x86_64.zip |
Linux-arm64 | toolkit-latest-linux-aarch_64.zip |
Unix | toolkit-latest-osx-x86_64.zip |
Windows | toolkit-latest-windows-x86_64.zip |
IoT-Toolkit使用教程
多语言设置
Toolkit 默认为英语,以下操作可以将语言设置切换为中文
toolkit config -l=zh
• zh=中文
• en=英语
• de=德语
• fr=法语
LwM2M 协议工具
LwM2M (Lightweight machine-to-machine)
LwM2M协议是OMA组织制定的轻量化的M2M协议,主要面向基于蜂窝的窄带物联网
(Narrow Band Internet of Things, NB-IoT)场景下物联网应用,聚焦于低功耗广覆盖(LPWA)物联网(IoT)市场
是一种可在全球范围内广泛应用的新兴技术。具有覆盖广、连接多、速率低、成本低、功耗低、架构优等特点。
NB-IoT具备四大特点:
* 广覆盖:在同样的频段下,NB-IoT比现有的网络增益20dB,相当于提升了100倍覆盖区域的能力
* 大连接:轻松支持大量设备联网需求,具备支撑海量连接的能力,NB-IoT一个扇区能够支持10万个连接
* 低功耗:聚焦小数据量、小速率应用特别对于一些不能经常更换电池的设备和场合,理论上NB-IoT终端模块的待机时间可长达10年
* 低成本:预期的单个接连模块不超过5美元
官方地址: https://omaspecworks.org/
版本协议文档: http://www.openmobilealliance.org/release/LightweightM2M/
更多详细使用见: https://iot.mushuwei.cn/#/toolkit/nb
MQTT协议工具
MQTT (消息队列遥测传输)
MQTT是用于物联网(IoT)的OASIS标准消息传递协议,它被设计为一种非常轻量级的发布/订阅消息
传输这是远距离传输设备的理想选择且代码量很小,很小的网络带宽。MQTT如今被广泛应用于各种行业
如汽车、制造业、电信和石油天然气等。
官方地址: https://mqtt.org/
中文MQTT 3.1/3.1.1 版本协议文档: https://iot.mushuwei.cn/#/mqtt3/
中文MQTT 5 版本协议文档: https://iot.mushuwei.cn/#/mqtt5/
更多详细使用见: https://iot.mushuwei.cn/#/toolkit/mqtt
CoAP协议工具
RFC7252 CoAP (受限制的应用协议)
受限应用协议(CoAP)是一种专门的web传输协议
用于物联网中的约束节点和约束网络.
该协议专为设备对设备的应用而设计,例如智慧能源或楼宇自动化等场景.
-------------------------- 协议 ---------------------------------
| 0 | 1 | 2 | 3 |
|7 6 5 4 3 2 1 0|7 6 5 4 3 2 1 0|7 6 5 4 3 2 1 0|7 6 5 4 3 2 1 0|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|版本|类型| TKL | 响应码 | 消息编号 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 消息会话-如果有,消息会话长度字节(TKL) ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 可选项 (如果有 ) ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1 1 1 1 1 1 1 1| 负载内容 (if any) ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
官方地址: https://coap.technology/
中文协议文档: https://iot.mushuwei.cn/#/coap/
更多详细使用见: https://iot.mushuwei.cn/#/toolkit/coap
结语
Toolkit现在完成了一些特性,但是好的开源工具是出自开发者的,但是想要真正的将这个工具做的非常优秀,必须需要开发者的共建。希望大家参与进来!
穆书伟,写于2023年4月1日 杭州春日