移远BC28模组对接移动onenet平台实例步骤

电子说

1.3w人已加入

描述

Onenet平台上其实已经把模组接入方法写的挺详细,而且会有中移模组的具体接入流程,但是用户操作后发现很多地方操作实现不了,因为有些地方有些坑,比如平台或模组对于不同的操作是有时间限制的一旦超时就会断开,或者文档写的步骤不是特别详细,用户就漏掉一些细节。本文档根据移远模组BC28进行实例的AT指令操作并且标注了一些常见的注意问题,初学者根据本文档操作学习后再去平台上根据接入实例进行学习会更加方便。

准备工作:

1. 确保BC28已经下载了onenet平台专用固件BC28JAR01A01_ONT.fwpkg。 

2. NB卡使用注册了的移动NB卡。

3. 产品在onenet上已经成功注册,具体可参考:

https://www.cnblogs.com/429512065qhq/p/8927255.html前半部分。 

注册的地方这里做一些截图描述:

OneNET

这里需要自行注册一下,然后进入开发者中心,建立设备,设备的选择需要选择NBIOT设备,并选择LWM2M协议方可。 

OneNET

这里的产品接入方式选择的是LWM2M,一定不要错误。 

然后进入产品里面,点击nbbc28这个名词,就会进入,一开始默认是没有接入设备的,需要用户自行添加设备。 

OneNET

这个就是我们的设备,注意IMEI和IMSI值是非常重要的,一个代表的是模块的IMEI号码,一个代表的是NB卡的卡号。分别用: 

AT+CGSN=1  获取到IMEI

AT+CIMI    获取到IMSI

得到之后,就按照对应的位置填入,并确定即可,这样设备就算建立好了。

那么,下面用串口调试的方式给大家介绍如何接入到平台。 

操作步骤:

1、上电后打开软件QNavigator_NB-IoT_V1.0.exe。 

OneNET

点击左侧connect to module。自动读出NB卡信息。这里注意所有信息必须读出才可以进行之后的步骤。Registration information必须是registered。因为移动的网络在很多地方比电信的差很多,所以经常会读不出来信息,就多试几次或者换信号强的地方,我所在的地方AT+CSQ之后显示+CSQ:8,99,很弱但是勉强可以跑,左上角可以看到只有一信号。尽量保持CSQ值10以上,此外还有IP获取到最好。

然后点击左侧UDP,点击PDP ACT,出现IP addres的值,表明一切准备就绪。 

2、接下来进入正题,依次输入指令图示蓝色指令,每步都要OK,这个可以参考“Quectel_NB-IoT_Module_OneNET平台接入指南V1.0_1800414”来进行整理。

OneNET

OneNET

这里必须注意输入完指令AT+MIPLOPEN=0,600,60之后过一会返回指令+MIPLDISCOVER: 0,12491,3311,然后5s中之内必须输入下面的指令,这个12591就是资源ID,上传响应的时候一定要把这个数据添加回去。然后利用下面的指令。 

AT+MIPLDISCOVERRSP=0,12491,1,19,"5850;5851;5706;5805",而且这里面的第二位必须修改成+MIPLDISCOVER: 0,12491,3311的第二位,所以这里的速度要求要很快。如果超过5s以上资源就不会生成,就要删掉设备重新来过(先注销设备再重新所有指令)。这一步完成后打开onenet的设备就会显示在线。

OneNET

MIPLDISCOVERRSP这个指令AT指令里面有详细的说明备注,这个属于资源上传描述,用户可以参考AT指令进行了解,这个上传了4个不同的资源列表。 

3、点击右侧资源列表,如果上传一切正常,那么就会显示如下的资源值,这些都是ONENET规定好的,用户不能任意改动。 

OneNET

因为我们这个实例是3311对应物联网应用是个灯,我们打开Light Control:

OneNET

OneNET

会出现所示页面,我们就可以对灯的开关,dimmer,颜色和功率进行数据的操作了。

我们点击light0的power的读,在我们的QNavigator里会出来:

+MIPLREAD: 0,45430,331

然后我们输入AT指令:

AT+MIPLREADRSP=0,45430,1,3311,0,5805,4,4,1.88,0,0 

这里第二位要改的和+MIPLREAD: 0,45430,331第二位一致。(这里只是我的例子具体什么值要看返回的)。这里需要注意的是在上述AT+MIPLDISCOVERRSP指令之后尽量要在15s内点击onenet资源里的读,然后输入指令:

AT+MIPLREADRSP=0,45430,1,3311,0,5805,4,4,1.88,0,0

也要在出现+MIPLREAD: 0,45430,331之内5s左右输入。 

OneNET

总而言之由于物联网模块会有休眠平台上下行数据时间长了会把设备断开所以操作的每一步尽量都要快,即使有操作设备也会在大概10分钟的时候变成离线状态然后你的读写就无法进行要重新加载设备了。

有的人点击资源里的读发现QNavigator里面并没有弹出+MIPLREAD: 0,45430,331,因为你的读操作太慢了导致平台把设备资源断开了,这时候就要输入修改数据指令。

AT+MIPLNOTIFY=0,122179,3311,0,58050,4,4,25.6,0,0

这里的第二位要修改成:

OneNET

AT+MIPLOPEN=0,600,60指令之后返回的+MIPLOBSERVE: 0,110955,1这里第二位标红参数(返回多少修改成多少这里只是我的例子)然后我们可以看到灯的power参数数值被改成了25.6,然后10s内再点击后面的读就发现会弹出来+MIPLREAD: 0,45430,331了。 

注1:对于写和执行操作类似。对于读或者写操作,云平台是没有数据记录的,只有AT+MIPLNOTIFY会在详情里生成数据流。

注2:在每一步的操作中如果发现模组卡死或者因为时间过长设备离线(就是一点读取立马提示资源读取失败的)就进行一下设备注销流程再重新开始所有操作。

AT+MIPLDELOBJ=0,3311 //Delete a LwM2M object. 

OK 

//Send deregister request to OneNET platform. 

AT+MIPLCLOSE=0 

OK 

+MIPLEVENT: 0,15 //Deregistered successfully. 

//Delete the communication suite instance. 

AT+MIPLDELETE=0 

OK 

注3:LWM2M规范定义了每个对象对应客户端的某个特定功能实体object,instance代表着这个object的不同实例。通过objectid和instanceid可以确认到一个指定的object实例;而每个object下可以有多个resource属性数据。例如一个设备有芯片温度传感器与外界温度传感器的值须上报,温度传感器便是一种object对象,而具体到某个温度传感器则需要instanceid来区分;某个温度传感器所对应的单位、温度等数值可视为其resource属性,具体的编码规范可参照IPSO规范或OMA模型规范:

http://www.openmobilealliance.org/wp/OMNA/LwM2M/LwM2MRegistry.html 

注4:AT指令流这里简单讲解了读和notify,其他的操作请查看onenet平台的说明或实例。另外请仔细参考文档:

OneNET

OneNET

上面会有其他AT指令的详细介绍。

此外可以参考“Quectel_NB-IoT_Module_OneNET平台接入指南V1.0_1800414”,中文手册,描述细致,不错。 

4. 资源更新,因为如果模块不与平台间进行数据交互的话,过一段时间就会断开,这个断开的值由AT+MIPLOPEN里面的lifetime决定,单位是s,一般设置都是600s,10分钟的样子,如果十分钟不交互数据,就会断开,如果不考虑低功耗的情况下,可以使用资源更新的方式进行更新。使用AT+MIPLUPDATE指令来更新lifetime,用户可以在timeout之前更新下连接,这个就类似一个心跳,保持一个在线。所以平台随时进行读写都是可以的了。 

审核编辑 :李倩

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分