物联网基础: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设备的业务管理,包括业务发放、业务控制和呈现等,由第三方基于中国电信物联网开放平台开放接口进行开发
1.2 BC28 概述
BC28 是移远的一款超紧凑、高性能、低功耗的多频段 NB-IoT 无线通信模块,支持 B1/B3/B8/B5/B20/B28 频段。其尺寸仅为17.7mm×15.8mm ×2.0mm,能最大限度地满足终端设备对小尺寸模块产品的需求,常被用于无线抄表、共享单车、智能停车、智慧城市、安防、资产追踪、智能家电、农业和环境监测以及其它诸多行业
BC28 模块详细参数:
BC28 模块主要性能:
1.3 电信IOT平台
电信IOT平台是实现对各种NB-IoT设备数据的统一管理,同时向第三方应用系统开放接口,让各种应用能快速构建自己的物联网业务
电信物联网平台包括应用管理、设备管理、系统管理等能力,实现统一安全的网络接入、各种终端的灵活适配、海量数据的采集分析,从而实现新价值的创造。
物联网平台不仅可以简化各类终端厂家的开发,屏蔽各种复杂设备接口,实现终端设备的快速接入;同时面向各行业提供强大的开放能力,支撑各行业伙伴快速实现各种物联网业务应用
2 电信IOT平台创建产品
2.1 创建产品
首页我的项目处创建项目,填写项目名称,选择所属行业即可
创建产品,选择自定义产品
填写产品信息,注意此处的应用层协议类型需选择 CoAP 协议,因为BC28只支持 CoAP 协议,不支持 LWM2M 协议
2.2 Profile定义
设备的Profile文件是用来描述一款设备是什么、能做什么以及如何控制该设备的文件。每款设备都需要一个Profile文件
一个Profile文件的内容主要包括两部分,一部分是设备的基础属性信息,如manufacturerId(厂商ID)、manufacturerName(厂商名字)、deviceType(设备类型)、model(设备型号)、protocolType(协议类型)等;另一部分是设备的服务信息,这一部分定义了设备的业务数据,包括设备上报的上行数据和厂商服务器下发给设备的下行数据
Profile定义时,属性列表先新建服务,再添加属性;命令列表先添加命令,再添加命令下发字段
添加两个上报属性:temperature 和 humidity ,数据类型为 int
添加一个命令下发字段:command,数据类型为 string
2.3 编解码插件开发
NB-IoT设备和中国电信物联网开放平台之间采用CoAP协议通讯,CoAP消息的数据为应用层数据,应用层数据的格式由设备厂商自行定义
由于NB-IoT设备对省电要求通常较高,所以应用层数据一般采用十六进制格式
应用层数据在中国电信物联网开放平台做协议解析时,会转换成统一的json格式,以方便应用服务器使用。
要实现十六进制消息与json格式消息的转换功能,中国电信物联网开放平台需要使用设备厂商提供的编解码插件,一款设备对应一个编解码插件
编解码插件开发时,先新建消息,包含数据上报和命令下发两条,再添加数据上报字段和命令下发字段
添加两个数据上报字段:temperature 和 humidity ,数据类型选择 int16u(16位无符号整型)
添加一个命令下发字段:command,数据类型选择 string(字符串类型)
注:关于Profile定义和编解码插件开发多种多样,比如:多条数据上报消息的插件开发、字符串及可变长字符串数据类型的插件开发、数组及可变长数组数据类型的插件开发、含命令执行结果的编解码插件开发,具体开发的教程可查看电信官方文档:《中国电信物联网开放平台_NB-IoT业务对接指导书》
2.4 建立映射关系
需将 Profile 和编解码插件建立映射关系
拖动右侧“设备模型”区域的属性字段和命令字段,数据上报消息和命令下发消息的相应字段建立映射关系
2.5 虚拟设备测试
在使用模块对接平台之前,我们需要先使用平台的虚拟设备模拟测试下是否能正常数据上报和命令下发
新建虚拟设备
数据上报,若上报温度数据为20,湿度数据为18,则对应的16进制数据为0010012
命令下发:若下发命令ON,设备端接收到16进制数据 4F4E
虚拟设备能正常数据上报和命令下发,说明 Profile 定义和编解码插件开发没问题
2.6 添加真实设备
添加真实设备,设备名称可自定义,设备标识需使用模块的IMEI(国际移动设备识别码),IMEI在模块的外壳上面有丝印,也可使用AT指令“AT+CGSN=1”查询
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 地址 |
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 平台 |
在电信IOT平台上设备的状态变为“在线”,代表设备已连接上电信IOT平台
3.3 数据上报
数据上报的AT指令为“AT+QLWULDATAEX”,看看官方AT指令手册对它的描述
使用AT指令为“AT+QLWULDATAEX”发送数据,当接收到“+QLWULDATASTATUS:4”表示数据发送成功
序号 | AT指令 | 指令解析 |
---|---|---|
1 | AT+QLWULDATAEX=4,00140012,0X0100 | 发送CON 消息(00140012), IoT 平台需要应答 ACK 消息 |
在电信IOT平台可以看到上报的数据:{ “temperature”: 20, “humidity”: 18 }
注:消息发送模式选择带释放辅助提示时,表示模块在发送完数据之后将释放连接以进入空闲模式,否则模块会持续20多秒才能进入空闲模式,在做低功耗时需要用到
3.4 命令下发
命令下发不需要AT指令,但有一点需要注意:NB-IOT模块由于是面向低功耗领域的,长时间处于休眠状态,故云端下发命令时,NB-IOT模块不能及时接收到,只有当模块处于活动状态下才能接收到云端命令
基于NB-IOT模块的这个特性,平台提供两种命令下发机制:
立即下发:平台立即发送收到的命令,如果设备不在线或者设备没收到指令则下发失败。立即下发适合对命令实时性有要求的场景,比如路灯开关灯,燃气表开关阀。使用立即下发时,应用需要自己保证下发的时机
缓存下发:平台收到命令后放入队列。在设备上线的时候,平台依次下发命令队列中的命令。缓存下发适合对命令实时性要求不高的场景,比如配置水表的参数。缓存下发平台根据设备的省电模式进行不同处理,缓存时间默认为48小时
电信IOT平台下发“ON”命令,设备端接收到“ON”的16进制数“4F4E”,命令下发成功
物联网基础:BC28连接电信IOT平台进行数据传输相关推荐
- java连接电信iot平台,物联网基础:BC28连接电信IOT平台进行数据传输
物联网产品框架:传统设备使用通信模组连接云服务器(即上云)做数据传输,云端再进行数据应用.本文将使用 BC28 通过 COAP 协议连接电信IOT平台,简单的介绍下移远NB-IOT通信模块 BC28 ...
- BC28连接电信Iot平台上报数据(详细解析)
一.在电信物联网平台创建产品 1.1.创建产品 IMEI号通过以下命令查询: AT+CGSN=1 //查询IMEI号 AT+CIMI //查询IMSI号 上面我们设置为服务ID为1时会在提交时显示重复 ...
- 移远BC28指令对接电信IOT平台基本流程
目录 概述 一.Coap协议基本流程 1.AT //串口波特率自行匹配 1.AT+NRB //软重启模组 2.AT+ ...
- 阿里IOT云平台(二)---10分钟物联网设备接入阿里云IoT平台
本文转载自:https://www.geek-workshop.com/thread-37883-1-1.html.基于VS Code和Node.js 我替换了原文中的温度.湿度属性图(主要是修正了标 ...
- 电信IoT平台对接及使用
电信IoT平台对接及使用 NB-LOT接入电信流程 NB-LOT组网图 NB-LOT整体流程 NB-LOT接入电信流程 设备接入电信NB-LOT平台 企业用户登陆开放平台测试环境 Profile文件的 ...
- NBIOT模块基于电信IOT平台的南向对接流程
NBIOT模块基于电信IOT平台的南向对接流程 因为工作需要,最近使用SIM7000C.BC95-B5.BC35-G模块对接了电信的IOT平台.测试时,我也在网上查找了很多关于这块的资料,但是没能找到 ...
- 电信iot平台和移动oneNet平台使用心得
最近在做智能设备,设备跟服务器通信,用到Iot技术通信方式,先使用到电信iot平台,再使用移动oneNet平台,,期间遇到很多问题,不过在一次又一次的迭代,终于找到一个比较好的方法,兼容两个平台,可以 ...
- 10分钟物联网设备接入阿里云IoT平台
前言 最近尝试了一下阿里云IoT物联网平台,还是蛮强大的.在此记录一下学习过程. 本教程不需要任何外围硬件,一台电脑和一根能上网的网线即可.算是一篇Hello World了.先上效果图 第一章 准备工 ...
- stm32——esp8266物联网开发,连接onenet云平台(http)做智能家居(1)
此处感谢b站up主--彼岸有光我们有船(我认为讲的和江科大老师一样好,如果习惯江科大老师的讲法的朋友们都可以看看捏) 提供的教程和最初的正点原子的源码,因为我学习的是江科大的stm32,所以进行了部分 ...
最新文章
- python使用笔记(一)——遍历文件夹下的所有子目录
- [mmu/cache]-ARMV8 MMU内存管理中的Memory attributes和Cache policies
- new ArrayList 报错
- 前端学习(1799):前端调试之清除浮动
- 51单片机并行I/O口工作原理
- Android应用真机调试
- python 日期减一天_怎么用Python在指定日期上减去7天?
- ROS中测试机器人里程计信息
- python中导入win32com.client出错问题
- 怎么让字体拥有金属风格?15种不同的金属风格文字效果ps样式不可错过!
- 资产类别某一类折旧查询
- Cell:PopCOGenT鉴定微生物基因组间的基因流动
- php搬家问题,PHPWIND 搬家教程 一看就会
- 专业技能与职业素养报告计算机,职业技能与职业素养的心得体会
- Xcelsius2008系统
- mac系统怎么打开ftp服务器,mac系统怎么打开ftp服务器
- 开学季,中学生用什么样护眼台灯好?中学生用护眼台灯排行
- ANSYS apdl命令流笔记6--------生成线的10种方法
- android安卓-开源框架汇总
- http系列之-核心内容
热门文章
- 计算机病毒与防范英文,计算机网络病毒与防范 中英文
- 文件 I/O API 简要介绍:read, pread 和 readv, preadv
- 传奇服务器登录器列表信息配置,传奇技能,第九祭:登录器列表获取与解析
- 河南中医药大学计算机科学与技术,我校信息技术学院成功举办“隐结构及其在中医药研究的应用暨计算机科学与技术学科建设”学术论坛...
- [python] Numpy矩阵定义、运算 生成随机矩阵
- FreeRTOS一天一个小知识之任务延时函数vTaskDelay
- sdf- standrad dealy format
- SnowFlake(雪花算法)
- cmd命令进入用户登录界面和屏幕保护程序
- mysql模板文件_Mysql配置文件模板