使用中国移动NB-IoT模组M5310-A快速连接到OneNET(LwM2M协议)

1、给模块供电、正确连接串口

(1)检查串口通讯

AT

OK

(2) 查询信号质量

AT+CSQ

+CSQ:31,99

OK

这个命令可以检测,SIM卡有没有工作,主要看返回的第一个值:

0 -113 dBm or less

1 -111 dBm

2...30 -109... -53 dBm

31 -51 dBm or greater

99 not known or not detectable   //异常

2、在OneNET上面创建产品

登录账号——>开发者中心——>全部产品——>NB-IoT物联网套件——>添加产品

3、添加设备 

创建成功之后,立即添加设备,点击“添加设备”按钮:

添加设备的时候用到两个参数IMEI和IMSI,需要从模块中获取,通过AT指令查询获取到。 

AT+CGSN=1

+CGSN:869976033830135

OK

这个AT指令的参数取不同的值,返回设备不同的序列号,其中取1的时候,返回的是IMEI

International Mobile station Equipment Identity

AT+CIMI

460040829025389

OK

IMSI(International Mobile Subscriber Identity ),这个值需要插上sim卡、上电等1-3s才能获取到。

4、查询终端ESP网络注册状态

AT+CEREG?

+CEREG:0,1

OK

主要看第二值,为1或者5表示已经注册到网络。

5、设备连接OneNET

5.1、创建OneNET实体

AT+MIPLCREATE=56,130038F10003F2002A04001100000000000010196E62696F7462742E6865636C6F7564732E636F6D3A35363833000131F300087100000000,0,56,0

+MIPLCREATE:0

OK

发送这条命令后,要等1-3s才会有返回值;返回值0是OneNET设备实例ID。这条命令,可以借助OneNET官方的工具生成,所有的参数使用默认的即可。

5.2、为上面创建的实体,添加一个对象

AT+MIPLADDOBJ=0,3300,1,"1",0,1

OK

对照http://www.openmobilealliance.org/wp/OMNA/LwM2M/LwM2MRegistry.html里面规定的Object ID,这里我们的Object ID选择3300,代表的是通用传感器:

5.3、为上面创建的对象,添加资源

AT+MIPLDISCOVERRSP=0,3300,1,8,"5700;5750"

OK

对照http://www.openmobilealliance.org/wp/OMNA/LwM2M/LwM2MRegistry.html里面的定义的资源ID,5700就是Float类型的、只读的传感器值,5750就是字符串类型的、可读可写的应用类型。

5.4、模块登录OneNET

AT+MIPLOPEN=0,3000,30

+MIPLEVENT:0,2

+MIPLEVENT:0,6

+MIPLOBSERVE:0,24835,1,3300,0,-1

+MIPLDISCOVER:0,24836,3300

执行这条命令之后,就可以在OneNET平台看到,设备在线了:

然后点击详情,就可以看到我们添加的资源ID,Sensor Value和Application Type:

5.5、上报数据

(1)上传5700的资源

AT+MIPLNOTIFY=0,0,3300,0,5700,4,8,24.4,0,0,0

OK

+MIPLEVENT:0,26,0

其中返回值“+MIPLEVENT:0,26,0”是上报数据之后,平台的响应,可以理解为ack。

资源类型为flaot,我们上传的数据是24.4,命令的最后一个参数每次递增1。

上传了几条数据,如下图:

(2)上传5750的资源

AT+MIPLNOTIFY=0,0,3300,0,5750,1,4,"x:24.7,y:22.3,z:22",0,0,3

OK

+MIPLEVENT:0,26,3

 同样的,返回值“+MIPLEVENT:0,26,3”,也可以理解为平台回复的ack。

资源类型为string,我们上传的数据为x:24.7,y:22.3,z:22,命令的最后一个参数每次递增1。

上传了几条数据,如下图:

5.6、下发数据

我们添加的两个资源,Sensor Value(5700),只读,Application Type(5750)可读可写。

(1)下发写操作

+MIPLWRITE:0,32499,3300,0,5750,1,5,54321,0

可以看到,我们收到了5750资源下发的写操作,同时数据为”54321”。

(2)下发读操作

读操作下发的时候,直接点击“读”即可。

+MIPLREAD:0,23258,3300,0,5750

可以看到,我们收到了5750资源下发的读操作。

不管是写还是读,都需要向平台回复,要不然平台会报超时timeout错误,如下:

这里要有一个小点要主要,发送数据之后,5s之内是可以接收到数据,即模组处于DRX之内,超过5s之后节点就进入PSM模式了。(RDX的时间是有专门的AT指令可以设置的

5.7、其他操作

上面我们创建了实体、添加了对象、加添了资源,这些都是需要占用系统资源的,在不要的时候我们需要释放掉。对应的AT指令有删除设备实体、删除对象等。

6、模块其他指令

6.1、重启

AT+NRB

REBOOTING

Boot: Unsigned

Security B.. Verified

Protocol A.. Verified

Apps A...... Verified

REBOOT_CAUSE_APPLICATION_AT

M5310-A

OK

重启之后模块的信息、数据加载、验证、重启的原因等。

6.2、AT串口波特率

AT+NATSPEED?

+NATSPEED:9600,2,1,0,0

OK

6.3、读取系统信息

AT+NCHIPINFO=ALL

+NCHIPINFO:TEMP,30

+NCHIPINFO:VBAT,3282

OK

返回的是温度和VBAT引脚的电压值(以mV表示)。

总结:M5310-A内部集成了LwM2M协议,使用串口AT指令即可操作,可以很方便的跟产品对接;关于其中的AT指令具体含义不容易理解,需要自己去看LwM2M协议。

 

欢迎大家加入群交流:304350312(技术交流)

                                   545384302(生活交流)

 

发布了35 篇原创文章 · 获赞 25 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/freemote/article/details/102747847