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(生活交流)