版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/m0_38106923/article/details/89852829

目录

1、华为 NB-IoT CoAP总体方案拓扑

2、华为IoT平台环境搭建

3、NB-IoT上传数据到云平台


BC95的CoAP测试需要云平台配合,当前的支持CoAP协议的平台有华为OceanConnect平台、电信天翼云(除了 Logo 其他和华为的一样)、移动 OneNet等。此教程以华为的OceanConnect 平台为例进行测试。下面我将就平台申请、平台测开发、NB-IoT实验开发板与平台的收发测试做出详细介绍。

1、华为 NB-IoT CoAP总体方案拓扑

华为提供NB-IoT端到端解决方案的支持,提供多种开放能力供合作伙伴快速集成应用。提供海思的NB-IoT芯片,基站网络和Ocean Connect连接管理平台。开发者可以根据芯片/模组开发手册进行终端的开发,基于IoT平台进行APP Server开发。

  • Device:NB-IoT终端(如智能水表、智能气表等)通过空口连接到eNodeB。
  • eNodeB:主要承担空口接入处理和小区管理等相关功能,通过S1-lite接口与IoT核心网进行连接,将非接入层数据转发给高层网元处理。
  • IoT Core:承担与终端非接入层交互的功能,将IoT业务相关数据转发到IoT平台进行处理。
  • IoT Platform:IoT联接管理平台汇聚从各种接入网得到的IoT数据,根据不同类型转发给相应的业务应用进行处理。
  • APP Server:是IoT数据的最终汇聚点,根据客户的需求进行数据处理等操作。

从总体拓扑中可以看到,华为在这里放置了一个CoAP Server,所有使用CoAP的模组,都得先连接到华为这边。

当然,有办法绕过这个限制,那就是不使用模组内置的CoAP相关的AT指令。

自己在UDP基础上做这个协议。

2、华为IoT平台环境搭建

第1步:登录华为云平台,官网:https://www.huaweicloud.com/。

第2步:注册账号,可以申请企业账号和个人账号,这里我申请个人账号。

第3步:实名认证,华为云认证个人信息。

选择合适的认证方式,支持银行卡、身份证扫码、个人证件认证三种方式,这里使用扫码认证。

第4步:选择“开发者”—>“开发者资源”—>“资源”—>“IoT专区”,开通IoT业务(使用开发者资源是免费的,但是创建项目有限,适合新手练习)。

第5步:创建项目,填写项目信息。

第6步:创建产品,填写相关信息。

用户可以选择华为云提供的不同类型产品:灯、电表等,用户也可以自定义产品。

点击自定义产品后,会弹出设置产品信息的框,协议类型选择CoAP的二进制码流。

第7步:定义Profile,设备的 Profile 文件是用来描述设备类型和设备服务能力的文件。定义了同一类设备具
备的服务能力,属性,命令等。

“新建服务”—>创建属性(获取传感器数据)和命令(云平台下发控制设备)。

新增属性,这里模拟创建一个光照传感器 ,具体参数说明如下:

  • 属性名(propertyName):指示属性名称。
  • 属性类型(dataType):指示数据类型,取值范围:int、float、datetime、string、jsonObject、array。这里以 int 类型为例。上报数据时,复杂类型数据格式如:DateTime:yyyyMMdd’T’HHmmss’Z’如:20151212T121212Z 、 jsonObject:自定义 json 结构体,平台不理解只透传。
  • 最小(min)/最大值(max):指示最小/最大值,仅当 dataType 为 int、float 时生效,逻辑大于等于/小于等于。
  • 步长(step):指示步长,暂不使用,可填 0 即可。
  • 单位(unit):指示单位,英文,取值根据参数确定。如:温度单位:“°C”;百分比单位:“%”。
  • 访问模式(method):指示访问模式。R:可读;W:可写;E 可订阅。取值范围:R、RW、RE、RWE、null。

新增下发命令,这里模拟创建一个LED灯控制器,具体参数说明如下:

  • 长度(maxLength):指示字符串长度,仅当 dataType 为 string、datetime、jsonObject、array 时生效。
  • 枚举值(enumList):如LED灯属性 ,0,1:0代表关闭LED灯,1代表打开LED灯。

保存 Profile文件。

第8步:开发完 Profile 文件后,可以在界面上通过图形化的方式完成设备与平台之间的消息映射。在平台中预集成了编解码插件的模板,可以根据设备类型和接入协议在插件模板中选择模板修改开发编解码插件。

制作编解码插件,点击“新增消息”,这里有两种模式:数据上传和命令下发,分别对应第7步中创建的光照传感器属性和LED灯控制器命令。

在第7步中设置的光照传感器范围为0~100的整形数据,所以建立的消息映射也要对应,长度为1,偏移为0—1(若长度为2,偏移就为0—2,这个可以看作存储空间)。

LED灯控制器对应第7步,创建有开关两种状态的字符串类型数据,0代表关,1代表开。

第9步:部署插件与profile建立映射关系。

第10步:新建测试设备

这里侧重设备端的开发工作,华为云平台为了方便大家调试,提供了虚拟设备和真实准备两种渠道来调试之前编写profile的正确性,其中虚拟设备不需要任何硬件就可以在华为的网站上虚拟出一个设备,可以收发数据,真实设备自然就是指的是NB模块。

首先为了验证我们的写的profile的正确性,这里先创建一个虚拟设备,进行调试。

进入刚刚创建的设备,进行调试,由于模拟器以及NB-IoT数据都是ASCII的十六进制数据,上传光照数据和下发LED灯控制状态否会转换对应的十六进制。

同时也能在设备详情中查看到历史的发送数据。

到此为止,如果都正常的情况下,说明华为OC云端服务器配置已经完成,而且验证成功。

3、NB-IoT上传数据到云平台

第1步:配置云平台硬件设备

上面讲述的是模拟设备,这里我们使用真实的硬件设备,在使用之前需要注册设备。

设备名称可以自定义,验证码是唯一的,必须使用模块的IMEI号,这个IMEI号印刷在模块上(86打头的数据),也可以使用串口调试助手通过AT指令(“AT+CGSN=1”)获取模块的的IMEI号,然后点击创建,不使用模块的IMEI号,会导致NB模块无法对接云平台

刚刚创建的的设备,其状态是离线的,需要模块发送上报数据一次数据 。

第2步:测试NB-IoT模块

针对不同的模块可能有些差异,模块上电之后,发送AT可以有OK返回,表示通信正常,执行指令:AT+CEREG?,一定要注网成功之后才能进行后续的网络操作,否则都是失败 。

AT指令 含义说明
AT+CEREG? 查看注网是否成功,这里需要返回0,1表示成功,其他值表示失败,特别是在模块复位(包括上下电)之后一段时间内需要等待模块注网成功,大约5~20秒时间不等。

第3步:NB-IoT模块上传数据

NB-IoT模块上传数据只需要两步:第一步使用AT+NCDP指令配置服务器地址,第二步使用AT+NMGS指令发送数据。

AT指令 含义说明
AT+NCDP=ip 配置服务器地址,其中ip地址在左右的对接信息中可以找到(位于左侧应用–>对接信息–>设备接入信息–> 49.4.85.232:5683 (CoAP),如下图所示),故本例是49.4.85.232,例如AT+NCDP=49.4.85.232
AT+NMGS=length,data[,<seq_num>] 发送数据指令,length表示后续数据长度(10进制表示,后续数据的字节长度),data表示需要发送的数据,例如AT+NMGS=12,32342E3135352E3636352E34

配置服务器地址。

配置成功后,发送数据指令,十六进制46为十进制70,实质上传到华为云的数据为70。

接收到数据后,华为云设备为在线状态。

进入设备查看上传的的信息 。

向NB-IoT设备下发控制指令。

NB-IoT接收到的数据为字符串数值“1”,转换为十六进制为0x31,注意:NB-IoT采用低功耗模式,发送完数据后就会休眠,所以云端下发的数据是在下一次上传数据成功后,才会下发到设备。

NB-IoT使用CoAP协议接入华为IoT平台(NB-IoT项目实战专栏—8)相关推荐

  1. NB-IoT使用CoAP协议接入华为IoT平台教程

    文章目录 1.准备 1.1.NB-IoT模组 1.2.NB-IoT SIM卡 1.3.IoT平台 2.模块配置与IMEI号的获取 3.设备注册 该文章为本人原创,首发在华为云社区 上一次我们讲了&qu ...

  2. 移远BC95使用CoAP协议接入华为IoT平台(NB-IoT专栏—进阶篇1)

    目录 1.华为 NB-IoT CoAP总体方案拓扑 2.华为IoT平台环境搭建 3.NB-IoT上传数据到云平台 BC95的CoAP测试需要云平台配合,当前的支持CoAP协议的平台有华为OceanCo ...

  3. 移远BC20模组使用LwM2M协议接入华为IoT平台(NB-IoT专栏—进阶篇2)

    目录 1.背景 2.部署华为云 3.华为云与BC20模组进行数据收发实验 1.背景 最近在做一个智慧路灯项目,构思使用STM32结合NB-IoT模组实现数据上传和联动控制,并且可以使用GPS模块上传路 ...

  4. 工业智能网关BL110应用之61:如何实现智能楼宇控制BACnet 接入华为云平台

    COM口采集 楼宇控制BACnet的配置 工业智能网关一共有四个COM 接口, 以COM口采集楼宇控制BACnet MS/TP设备为例,COM口 485接口A+.B-分别对应楼宇控制 BACnet M ...

  5. 【安信可NB-IoT模组EC系列应用笔记⑨】使用CoAP协议接入OneNET Studio实现数据收发

    文章目录 前言 一.OneNET Studio CoAP协议设备创建 1.产品生成 2.添加设备 3.Token 验证信息生成 二.接入OneNET Studio 1.配置入网 2.登录请求 三.数据 ...

  6. 工业智能网关BL110应用之37:实现台达 PLC Delta_DVP 接入华为云平台

    COM口采集台达 PLC Delta_DVP的配置 工业智能网关一共有四个COM 接口, 4个COM口的配置内容一样,COM1固定为RS232,COM2.COM3和COM4是RS232/RS485可选 ...

  7. 工业智能网关BL110详解之5:实现三菱 PLC FX1S 接入华为云平台

    COM口采集三菱 PLC FX1S 的配置 工业智能网关一共有四个COM 接口, 4个COM口的配置内容一样,COM1固定为RS232,COM2.COM3和COM4是RS232/RS485可选串口(默 ...

  8. 工业网关BL110实现西门子S7-200 PLC接入华为 云平台

    COM口采集西门子S7-200 PLC的配置 工业智能网关一共有四个COM 接口, 4个COM口的配置内容一样,COM1固定为RS232,COM2.COM3和COM4是RS232/RS485可选串口( ...

  9. 工业智能网关BL110应用之13:实现三菱 PLC FX3S 接入华为云平台

    COM口采集三菱 PLC FX3S 的配置 工业智能网关一共有四个COM 接口, 4个COM口的配置内容一样,COM1固定为RS232,COM2.COM3和COM4是RS232/RS485可选串口(默 ...

最新文章

  1. 那些年,我们一起刷过的计算机视觉比赛
  2. iframe的sandbox使用
  3. 鸟哥的Linux私房菜(服务器)- 簡易 OpenWebMail 設定
  4. 获取控制器 nextResponder的简单应用
  5. (JAVA)获取对象
  6. iPhone 14系列或均搭载A16芯片:但Pro型号为A16 Pro
  7. awk 第一个文件的数字乘以第二个文件的数字
  8. 如何在变化的时代中,抓住新时代的红利让自己跟着趋势赚钱
  9. vbScript中WScript.Shell对象的 run 和 exec
  10. 手动实现一个vue的mvvm,思路解析
  11. 在学校外边找了份工作
  12. 如何正视自己的劣势?面试!
  13. SAP ERP和ORACLE ERP的区别是哪些?
  14. No ip domain-lookup和Logging synchronous和Exec-timeout 0 0
  15. MAC电脑外设键盘如何更改command为control键MAC电脑外设键盘如何更改command为control键...
  16. vscode安装和配置ESLint
  17. 任意四面体的外接球的半径(克列尔(A.L.Crelle)公式)
  18. 一个人有怎样的心灵,就拥有怎样的世界。----人是自己观念的奴隶
  19. 如何下载维基百科2010和2011数据集
  20. 大神教你uefi启动安装win7操作方法

热门文章

  1. Dokuwiki的安装、配置管理
  2. 64位操作系统(WIN10)+32位LabVIEW(2020)+64位MySQL,Windows10系统下用32位ODBC连接MySQL
  3. 魔方机器人(二)颜色识别
  4. openvpen最新安卓中文版_Zedge app官方下载-Zedge最新版本2020v6.8.4 安卓中文版-腾牛安卓网...
  5. 笔记整理nodeJS
  6. 已面世两年 大疆精灵4 Pro V2.0为什么仍是最受欢迎的无人机之一?
  7. Mac OS X下删除或添加鼠标右键菜单项目及清除Mac OS右键菜单重复项
  8. 图文详解在VMware Workstation 14 虚拟机上安装Kali Linux黑客专用系统
  9. 软件测试-如何准备测试数据
  10. C# 托管内存与非托管内存之间的转换