电子说
NBIoT可以大幅降低企业布署设备的WiFi需求,也可避免因为场域WiFi不稳定所造成的问题,那么NBIoT要如何实做?
本文将会以NBIoT传输MQTT,并以计算机的MQTTLens进行接收为例,说明整个传输接收流程。
首先我们必须准备NBIoT的模块,以笔者所开发的ESP32开发整合版就有留NBIoT接口,我们的NBIoT使用的芯片是基于联发科(MTK-2526)的BC26模块,虽然他是USB外型,但并非USB传输格式,只是我们帅气的黄董认为做成USB外型比较坚固耐用,并且可以后续进行串接。
关于上面的扩充版,详细规格数据可以参考附件:
一、NBIoT基础设定:
目前NBIoT大多采用ATCommand通讯,若读者已经取得上面的扩充版及任何的NBIoT SIM卡,那就可以开始下面的流程。
1. 在ESP32上安装ATCommand沟通程序:
此程序会将ESP32的序列通讯输入转至NBIoT(Serial2 RX:16、TX:17)中,这样我们就可以手动来下达AT命令
2. ATI:ATI是查询系统版本,不过我们会用来测试BC26是否正常,输入ATI后,会得到BC26的回复如下图。若无响应,那就必须检查模块是否有插好。另外就是ESP32 1.0.6的版本也会造成无法响应,因此先选择1.0.4。
3. AT+QCCID :此指令用于检查SIM卡状态,一般来说,会列出该SIM卡的卡号,如下图,若SIM卡未安装,则会显示ERROR
4.AT+QCGDEFCONT?:询问APN设定方式,由于不同系统商会有不同的APN(APN, Access Point Name)设定,例如下图就是以中华电信或远传电信为例,两者都采用"IPV4V6","internet.iot"为APN,当我们利用这个指令查询时,就会得到这个结果,下一步就是利用这个指令来设定这张NBIoT模块的APN。要注意的是这里的「?」一定要使用半角「?」不可使用全角「?」。
5.AT+QCGDEFCONT=<
到此为止,就完成NBIoT的设定工作,以上五个步骤只须做一次,以后NBIoT模块只要开机会就自动以APN寻找当地有服务的基地头,并完成网络注册(上网)。
二、NBIoT数据传输:
当NBIoT完成APN设定后,就可以准备传输资料了,请依照以下步骤。
1. AT+CEREG? :询问基地台注册状态,也就是否有找到服务的基地台,若响应为「+CEREG: 0,1 」代表注册完成,可以准备传输资料,若是「+CEREG: 0, 0」或「+CEREG: 0,2 」都是代表无法上网,可能是讯号不佳,或者当地无服务等问题。
2.AT+CESQ:询问网络状态,也就是询问网络讯号强弱,以下图而言,第一个数字为39,代表网络讯号还不错,数字为0~63之间,越大代表网络讯号越好,10以下就必须注意传输可能会很不稳定,建议更换布置地点或增加天线强度,还有就是「99」则是故障的意思。
到这里我们已经确认NBIoT已经完成联机,下一步我们以MQTT联机到免注册的Broker:mqtt.eclipseprojects.io,进行一次的推播为例。
3. AT+QMTOPEN=0,"<
4.AT+QMTCONN=0,"<
5.AT+QMTPUB=0,0,<
6. 到MQTTLens查看订阅主题:此时到计算机的MQTTLens(或手机MQTTDash等APP)查看是否有收到订阅的资料
用NodeRed接收,并用Dashboard的Gauge呈现
7. AT+QMTCLOSE=0:关闭MQTT服务器联机,当传输完毕后,若短期内不会再使用,可以关闭与MQTT的联机,节省电源。
到此为止,我们就完成一次的MQTT推播,当然啦,这次我们是手动传输,目的是让读者了解MQTT的传输流程,未来系统要实际使用时,要写一个自动传输的程序,这部份后续再分享。
除了用MQTTLens来接收之外,也可以利用NodeRed来接收并储存数据,并可以利用Dashboard来呈现,Nodered可以说是搭配MQTT最好用的工具了。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !