【安信可NB-IoT开发板EC-01F-Kit测评】之二 MQTT的手工连接与数据发布
[复制链接]
本帖最后由 lugl4313820 于 2021-12-17 22:50 编辑
今天用串口助手完成mqtt上传到我的服务器的操作,经过半天的努力,终于完成了模块的连接、连网、mqtt的连接与登录以及数据发布,现在分享给大家如下:
1、硬件的准备:
TTL转USB一个,我用的是CP210X USB to UART。其实有很多模块选择的,通讯速率为9600,CH340等等都可以。
2、软件的准备:
1)、 串口助手,我这里用的是友善串口助手,这个有已发命的记忆功能,感觉比较方便:
还有就是打开安信可的《NB-IoT系列模组AT指令集》,如果没有用过AT命令的,可能要花费一定的时间来熟悉一下。我原来用过安信可的A6模块,感怎么样都用不好,后来经过N次使用串口后,感AT命令要想用好,就得串口要用得好才行,特别是等待指令的回复,这个延时要掌握到合适的程序,要不然要么指令发得过快,模块没有反应回来,或者延迟时间太短,认正发送命令失败===,N个坑。不过今天看来EC-01的响应时间,比起2G时待的A6,要快速得多,但跟合宙的Air302比起来,还得有那么一点点慢。
2)、MQTT的基础知识
MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。他只管发布、订阅就OK了,特别是对于流量敏感和低功耗这方面,非它莫属吧。
MQTT就要掌握MQTT服务器、端口号、订阅主题、发布消息、接收消息就行了。建议大家去看看这几块文章:
【单片机笔记】使用ESP8266的WIFI-MQTT串口透传模块实现TLINK平台测试_冯宇的博客-CSDN博客_esp8266连接tlink
(https://blog.csdn.net/qq997758497/article/details/105964878)
tlink-开发者中心-教程
(https://www.tlink.io/help.htm?menu=2&page=57)
3)、MQTT转发服务器
我是有自己的MQTT服务器,这样上手就比较快,如果朋友们没有MQTT服务器,实现起来就会有那么一点点小困难,因为这个NB-Iot,不比wifi模块,可以自己在家里局域网建一个服务器。但是好多网站都有mqtt接入协议,比如阿里云、tlink、上海合宙等,好象安信可也有测试用的服务器,但是会有很多的限制。
有了上面的准备就可以开始进行连网测试了
因为开发板属于低功耗的模块,我直接从USB转TTL取3.3V的电源就行了,接上电源以后,模块的LED灯不是很亮,以为模块没有开机列,这个模块好象上电会自己启动了。
发送AT 如果返回OK,说明模块工作正常。
第一步查询网络注册情况:
AT+CREG? 然后查询注册状态、信号质量等
[22:05:01.447] AT+CREG?
[22:05:01.467]
[22:05:01.468] +CREG: 0,6
[22:05:01.482]
[22:05:01.488] OK
第二步 创建MQTT客户端
AT+ECMTOPEN=0,"mqtt服务器ID或者域名",1883(一般端口都是1883,有些为什么不让人家攻击,也可以更改自定义的端口)AT指令手册里是这样描述的。
AT+ECMTCONN=0,"clientID","用户名","登录密码"
返回OK,说明登录成功。
第三步:发布数据
AT+ECMTPUB=0,0,0,0,"temp/","{ \"value\":10.11}"
返回OK,说明发布数据成功。
至此,手工AT命令已经完成mqtt的数据发布工作。看起来只需要3条命令,但是从有到无,还是经过很多的波折,希望对大家有所帮助。
AT+ECMTOPEN=0,"host_name",port
AT+ECMTCONN=0,"clientID","user_name","password"
AT+ECMTPUB=0,0,0,0,"temp/","{ \"value\":10.11}"
总的来说,这个模块实现mqtt数的上传与发布还是简单的。后面我将配合单片机完成后面的测试工作。
|