物联网基础:BC28连接电信IOT平台进行数据传输

物联网产品框架:传统设备使用通信模组连接云服务器(即上云)做数据传输,云端再进行数据应用。本文将使用 BC28 通过 COAP 协议连接电信IOT平台,简单的介绍下移远NB-IOT通信模块 BC28 是如何连接电信IOT平台进行数据传输

1 相关介绍

1.1 NB-IOT业务介绍

NB-IOT业务主要包含NB-IoT设备、NB-IOT网络、物联网开放平台、垂直行业应用:

  • NB-IOT设备:通过无线网络连接到中国电信物联网开放平台,采用CoAP协议接入,如水表、燃气表等

  • NB-IOT网络:实现对NB-IoT终端的移动性管理与会话管理;为NB-IoT终端建立用户面承载,传递上下行业务数据

  • 物联网开放平台:实现对各种NB-IoT设备数据的统一管理,同时向第三方应用系统开放接口,让各种应用能快速构建自己的物联网业务

  • 垂直行业应用:实现对NB设备的业务管理,包括业务发放、业务控制和呈现等,由第三方基于中国电信物联网开放平台开放接口进行开发

    image

1.2 BC28 概述

BC28 是移远的一款超紧凑、高性能、低功耗的多频段 NB-IoT 无线通信模块,支持 B1/B3/B8/B5/B20/B28 频段。其尺寸仅为17.7mm×15.8mm ×2.0mm,能最大限度地满足终端设备对小尺寸模块产品的需求,常被用于无线抄表、共享单车、智能停车、智慧城市、安防、资产追踪、智能家电、农业和环境监测以及其它诸多行业

  • BC28 模块详细参数:

    image
  • BC28 模块主要性能:

    image
    image

1.3 电信IOT平台

电信IOT平台是实现对各种NB-IoT设备数据的统一管理,同时向第三方应用系统开放接口,让各种应用能快速构建自己的物联网业务

电信物联网平台包括应用管理、设备管理、系统管理等能力,实现统一安全的网络接入、各种终端的灵活适配、海量数据的采集分析,从而实现新价值的创造。

物联网平台不仅可以简化各类终端厂家的开发,屏蔽各种复杂设备接口,实现终端设备的快速接入;同时面向各行业提供强大的开放能力,支撑各行业伙伴快速实现各种物联网业务应用

2 电信IOT平台创建产品

2.1 创建产品

  • 首页我的项目处创建项目,填写项目名称,选择所属行业即可

  • 创建产品,选择自定义产品

    image
  • 填写产品信息,注意此处的应用层协议类型需选择 CoAP 协议,因为BC28只支持 CoAP 协议,不支持 LWM2M 协议

    image

2.2 Profile定义

设备的Profile文件是用来描述一款设备是什么、能做什么以及如何控制该设备的文件。每款设备都需要一个Profile文件

一个Profile文件的内容主要包括两部分,一部分是设备的基础属性信息,如manufacturerId(厂商ID)、manufacturerName(厂商名字)、deviceType(设备类型)、model(设备型号)、protocolType(协议类型)等;另一部分是设备的服务信息,这一部分定义了设备的业务数据,包括设备上报的上行数据和厂商服务器下发给设备的下行数据

Profile定义时,属性列表先新建服务,再添加属性;命令列表先添加命令,再添加命令下发字段

  • 添加两个上报属性:temperature 和 humidity ,数据类型为 int

  • 添加一个命令下发字段:command,数据类型为 string

    image

2.3 编解码插件开发

NB-IoT设备和中国电信物联网开放平台之间采用CoAP协议通讯,CoAP消息的数据为应用层数据,应用层数据的格式由设备厂商自行定义

由于NB-IoT设备对省电要求通常较高,所以应用层数据一般采用十六进制格式

应用层数据在中国电信物联网开放平台做协议解析时,会转换成统一的json格式,以方便应用服务器使用。

要实现十六进制消息与json格式消息的转换功能,中国电信物联网开放平台需要使用设备厂商提供的编解码插件,一款设备对应一个编解码插件

编解码插件开发时,先新建消息,包含数据上报和命令下发两条,再添加数据上报字段和命令下发字段

  • 添加两个数据上报字段:temperature 和 humidity ,数据类型选择 int16u(16位无符号整型)

    image
  • 添加一个命令下发字段:command,数据类型选择 string(字符串类型)

    image

注:关于Profile定义和编解码插件开发多种多样,比如:多条数据上报消息的插件开发、字符串及可变长字符串数据类型的插件开发、数组及可变长数组数据类型的插件开发、含命令执行结果的编解码插件开发,具体开发的教程可查看电信官方文档:《中国电信物联网开放平台_NB-IoT业务对接指导书》

2.4 建立映射关系

需将 Profile 和编解码插件建立映射关系

  • 拖动右侧“设备模型”区域的属性字段和命令字段,数据上报消息和命令下发消息的相应字段建立映射关系

    image

2.5 虚拟设备测试

在使用模块对接平台之前,我们需要先使用平台的虚拟设备模拟测试下是否能正常数据上报和命令下发

  • 新建虚拟设备

    image
  • 数据上报,若上报温度数据为20,湿度数据为18,则对应的16进制数据为0010012

    image
  • 命令下发:若下发命令ON,设备端接收到16进制数据 4F4E

    image
  • 虚拟设备能正常数据上报和命令下发,说明 Profile 定义和编解码插件开发没问题

2.6 添加真实设备

添加真实设备,设备名称可自定义,设备标识需使用模块的IMEI(国际移动设备识别码),IMEI在模块的外壳上面有丝印,也可使用AT指令“AT+CGSN=1”查询

image

3 NB-IOT模块通信

3.1 附着网络

BC28通过AT指令附着网络(即连接网络)的过程如下:当能查询到到模块的IP地址时,说明网络附着成功

注:若发送第一个指令“AT”,未返回“OK”的话,请检查是否选择了正确的串口,以及合适的波特率(BC28的串口波特率为9600)

序号 AT指令 指令解析
1 AT 测试指令,若返回OK,则模块可正常通信
2 AT+CPIN? 检查SIM卡是否在位
3 AT+CSQ 查询信号质量
4 AT+CGATT=1 触发网络连接
5 AT+CEREG? 查询网络注册状态
6 AT+CGATT? 查询网络附着状态
7 AT+CGPADDR 查询模块的 IP 地址
image

3.2 连接电信云

BC28通过AT指令连接电信IOT平台的过程如下:当发送AT指令“AT+QLWSREGIND=0”返回“+QLWEVTIND:3”时,代表设备已连接上电信IOT平台

序号 AT指令 指令解析
1 AT+NCDP=180.101.147.115,5683 设置 IoT 平台 IP 地址及端口
2 AT+QLWSREGIND=0 开始注册 IoT 平台
image

在电信IOT平台上设备的状态变为“在线”,代表设备已连接上电信IOT平台

image

3.3 数据上报

数据上报的AT指令为“AT+QLWULDATAEX”,看看官方AT指令手册对它的描述

image

使用AT指令为“AT+QLWULDATAEX”发送数据,当接收到“+QLWULDATASTATUS:4”表示数据发送成功

序号 AT指令 指令解析
1 AT+QLWULDATAEX=4,00140012,0X0100 发送CON 消息(00140012), IoT 平台需要应答 ACK 消息
image

在电信IOT平台可以看到上报的数据:{ "temperature": 20, "humidity": 18 }

image

注:消息发送模式选择带释放辅助提示时,表示模块在发送完数据之后将释放连接以进入空闲模式,否则模块会持续20多秒才能进入空闲模式,在做低功耗时需要用到

3.4 命令下发

命令下发不需要AT指令,但有一点需要注意:NB-IOT模块由于是面向低功耗领域的,长时间处于休眠状态,故云端下发命令时,NB-IOT模块不能及时接收到,只有当模块处于活动状态下才能接收到云端命令

基于NB-IOT模块的这个特性,平台提供两种命令下发机制:

  • 立即下发:平台立即发送收到的命令,如果设备不在线或者设备没收到指令则下发失败。立即下发适合对命令实时性有要求的场景,比如路灯开关灯,燃气表开关阀。使用立即下发时,应用需要自己保证下发的时机

  • 缓存下发:平台收到命令后放入队列。在设备上线的时候,平台依次下发命令队列中的命令。缓存下发适合对命令实时性要求不高的场景,比如配置水表的参数。缓存下发平台根据设备的省电模式进行不同处理,缓存时间默认为48小时

电信IOT平台下发“ON”命令,设备端接收到“ON”的16进制数“4F4E”,命令下发成功


image
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,463评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,868评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,213评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,666评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,759评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,725评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,716评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,484评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,928评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,233评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,393评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,073评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,718评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,308评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,538评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,338评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,260评论 2 352

推荐阅读更多精彩内容

  • 一、模块综述 NB-IOT模组默认通信方式为AT指令,工业领域中操作相对复杂。ME3616通过模组内部Ope...
    Aramis_Yu阅读 2,064评论 0 1
  • 夜莺2517阅读 127,718评论 1 9
  • 版本:ios 1.2.1 亮点: 1.app角标可以实时更新天气温度或选择空气质量,建议处女座就不要选了,不然老想...
    我就是沉沉阅读 6,887评论 1 6
  • 我是一名过去式的高三狗,很可悲,在这三年里我没有恋爱,看着同龄的小伙伴们一对儿一对儿的,我的心不好受。怎么说呢,高...
    小娘纸阅读 3,387评论 4 7
  • 这些日子就像是一天一天在倒计时 一想到他走了 心里就是说不出的滋味 从几个月前认识他开始 就意识到终究会发生的 只...
    栗子a阅读 1,620评论 1 3