搭建NB-IoT中国电信物联网开放平台实验环境

时间:2024-02-21 17:59:17

1. 获取实验环境账号

微信关注公众号”天翼物联产业联盟

step1:点击 联盟服务 选择 平台对接认证
这里写图片描述
step2:完成申请表格填写并提交
这里写图片描述
step3:等待申请审核,账号申请通过后,会收到账号和初始密码,用于登录SP Portal和开发者Portal。
这里写图片描述

2. 创建应用

2.1 创建APP应用

登录中国电信物联网开放平台对接测试环境 SP Portal https://180.101.147.135:8843初次登录需要修改初始密码
这里写图片描述
选择【应用管理】-> 【应用】点击右上角【创建应用】
这里写图片描述
具体的配置可根据应用的需求来设定,也可使用默认配置。
这里写图片描述
点击保存,APP创建成功后,得到应用ID和应用**,请保存
这里写图片描述

2.2 NB-IoT参数设置

点击已经创建好的应用,并对NB-IoT参数进行设置。NB-IoT设置下的省电模式,应与受理的APN对应的模式保持一致。
这里写图片描述

3. Profile和插件开发

3.1 Profile和插件介绍

  • 设备的 Profile 文件是用来描述一款设备是什么、能做什么以及如何控制该设备的文件。一个 Profile 文件的内容主要包括两部分,一部分是设备的基础属性信息,如厂商ID、厂商名字、设备类型、设备型号、协议类型等;
  • 另一部分是设备的服务信息,这一部分定义了设备的业务数据,包括设备上报的上行数据和厂商服务器下发给设备的下行数据。每款设备都需要一个 Profile 文件。
  • 一款设备对应一个编解码插件,NB-IoT设备和中国电信物联网平台之间采用COAP协议通讯,COAP消息的数据为应用层数据,应用层数据的格式由设备厂商自行定义。由于NB-IoT设备对省电要求通常较高,所以应用层数据一般采用二进制格式。应用层数据在中国电信物联网开放平台做协议解析时,会转换成统一的json格式,以方便应用服务器使用。要实现二进制消息与json格式消息的转换功能,中国电信物联网平台需要使用设备厂商提供的编解码插件。
    这里写图片描述

编解码插件工作原理如下图所示:
这里写图片描述

3.2 可视化开发Profile

登入开发者 Protal https://180.101.147.208:8093 在线完成Profile的开发。
点击【Profile】->【Profile在线开发】->【自定义产品】->【+创建全新产品】
这里设备类型选择车检器,设备型号、厂商ID、厂商名称可根据实际情况填写,这里均命名为Vehicle。
这里写图片描述
确定后,点击【新建服务】->【新增属性】
这里根据设备的功能需求,添加服务和属性。
这里写图片描述
关于服务和属性的概念,可以参考下图所示的解释。本教程中设置了两个服务,一个是CarStatus用于记录有车没有的状态,包含一个属性status;另一个服务是Battery,由batteryLevel和batteryStatus两个属性组成,分别用于记录电池电量和电池状态(可能这里有点牵强)。
这里写图片描述
本教程添加了两个服务。至此 Profile 已经开发好了,后面若有需求更改,可再次修改 Profile 文件配置。
这里写图片描述
关于Profile的开发,更详细的描述请参阅 零代码开发Profile

3.3 可视化开发编解码插件

登入开发者 Protal https://180.101.147.208:8093 在线完成编解码插件的开发。
点击【插件开发】->【插件开发】->【+添加插件】->【+新建插件】
每一个编解码插件对应一个 Profile 文件,这里选择上一节中开发的 Profile 文件进行编解码插件的开发。
这里写图片描述
点击新增消息,消息名对应Profile里的服务名称,本教程设置了两条消息,每一条消息都添加了地址域的字段,并且设置了响应字段。将右侧的属性值拖拉至消息处形成如下图所示的映射关系。

  • 地址域和偏移量的概念
    首先我们先思考一个问题,在NB设备提供的COAP通信协议指令中,上报数据格式为:AT+NMGS=数据长度,16进制数据,那么平台是怎么知道发送的数据对应的意思呢?中国电信物联网平台是通过Profile和编解码插件来解决这个问题的,在编写编解码插件时,我们定义了两条消息,每一条消息都有一个地址域并且偏移量为0-1,这句话的意思是我们给每一条消息设置了一个标记,比如CarStatus的地址域为0xCC,Battery的地址域为0xBB,且都在上报消息的第一个字节处。这里以消息Battery为例,地址域为0xBB(可自定义),batteryStatus偏移量为1-2(第二个字节),batteryLevel偏移量为2-3(第三个字节),所以我们给Battery上报数据时,格式为AT+NMGS=3,BB0109。

这里写图片描述
点击【保存】,厂商ID和厂商名称与 Profile 保持一致。保存完成后,点击右上角的部署,等待部署完成。至此编解码插件就开发完成了。若有变更可再次修改编解码插件,并重新部署。
这里写图片描述
关于编解码插件的开发,更详细的描述请参阅 零代码开发编解码插件

4. 设备接入平台

4.1 设备注册

所有设备需要先在平台进行注册,才允许连接到平台,平台支持通过北向API接口进行注册,也支持通过平台的 Portal 界面进行注册。通过注册设备,平台会为每个设备分配一个唯一的标识 deviceId 和 PSK(如果北向API注册接口中携带了PSK参数,那平台就使用北向接口中的PSK,不再自动分配),后续APP应用操作这个设备时都通过 deviceId 来指定设备。PSK参数详细参考后面设备 DTLS 安全接入。

登录开发者 Protal -> 【我的设备】->【注册设备】,选择需要注册设备的 Profile (以上小节中配置的Profile设备模型),填写设备名称和验证码(必须唯一,如IMEI、mac等),加密设备选择否,点击注册按钮即可。
这里写图片描述
注册完成后,可以在【我的设备】里查看注册的设备,初始状态为未绑定,需要NB设备完成绑定的操作(重新配置IP及端口号),下面将详细介绍。
这里写图片描述

5. 业务数据上报和业务消息下发

5.1 NB设备模拟器绑定

在没有NB设备的情况下,我们可以先使用 Protal 自带的模拟器来进行测试,点击【模拟器】【NB设备模拟器】【绑定设备】,输入设备的IMEI号,进行设备绑定。点击确定后,可以在我的设备处查看设备状态,若绑定成功,则显示为已绑定。
这里写图片描述

5.2 NB设备模拟器数据上报

上报数据时,根据定义的Profile文件和编解码插件规则,使用模拟器进行数据上报,这里根据以上定义的 Profile文件和编解码插件制定的消息地址域字段偏移地址,使用NB模拟器分别上报了两个消息:BB0102和CC01。
这里写图片描述
数据上报后,可在【我的设备】选择相应的设备,进入后选择【历史数据】进行消息查看。网页刷新稍有延时,可手动点击刷新数据。
这里写图片描述

5.3 NB设备终端绑定

这里使用的NB设备终端是基于Boudica 150芯片的BC28,对设备进行绑定的AT指令流程如下所示:

  • AT+CFUN=0 //关闭射频电路
  • AT+NBAND? //查询频段
  • AT+NBAND=5 //设置为电信频段
  • AT+CGSN=1 //查询设备IMEI号
  • AT+NCDP=180.101.147.115,5683 //设置IP和端口号
  • AT+NRB //重启设备
  • AT+CFUN=1 //打开射频电路
  • AT+CSCON=1 //打开连网通知
  • AT+CEREG=4 //打开注网通知
  • AT+NNMI=1 //打开下行数据通知
  • AT+CGATT=1 //启动网络附着

其中 AT+NCDP设置中的IP地址和端口号,参见 Portal 的【对接信息】,这里选择的是非加密地址。
这里写图片描述

5.4 NB设备终端数据上报

上报数据时,根据定义的Profile文件和编解码插件规则,使用NB设备进行数据上报,这里根据以上定义的 Profile文件和编解码插件制定的消息地址域字段偏移地址,使用NB设备分别上报了两个消息:AT+NMGS=3,BB0109和AT+NMGS=2,CC01。
这里写图片描述
数据上报后,可在【我的设备】选择相应的设备,进入后选择【历史数据】进行消息查看。网页刷新稍有延时,可手动点击刷新数据。
这里写图片描述
以上教程若有不明白的地方,敬请评论提问。附上官方《中国电信物联网开放平台_NB-IoT模组对接指导书_v1.4》文档。