0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【技术分享】NB860+Lierda云平台=上电即上云——云管端协作让万物互联更简单(二)

利尔达科技集团 2022-11-01 09:47 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

//

随着物联网行业的快速发展,越来越多的物联网云服务平台涌现。如何快速实现应用开发,如何管理,如何让设备快速上云,成为关注的焦点。

第一期中我们介绍了基于MQTT协议快速接入利尔达物联网全连接云平台,本期我们将介绍如何使用NB860系列模组通过云云对接快速接入利尔达云平台,并介绍两者数据交互操作流程,帮助用户或开发人员尽快完成相关的应用开发。

所需产品

本次接入的利尔达物联网全连接云平台是我司自主研发的云平台,为设备提供安全可靠的连接管理能力,整合物联网产业链上下游,向下连接智能设备,向上承接物联网应用,形成端到云完整链路物联网解决方案,赋能企业各类IOT场景接入。

另外用到的利尔达NB860/MB960/MB260系列模组是基于5G NB-IoT芯片自主开发的第三代NB-IoT模组。该款模组集高性价比、高安全性和低功耗等优点于一身,拥有蓝牙、OpenCPU等能力,为智能表计、智能烟感、智能停车、智慧路灯等百万级成熟NB-IoT应用提供了更优选择。

利尔达NB860/MB960/MB260系列模组支持TCP/UDP、MQTT、LwM2M等多种协议接入云平台,为行业应用开发提供了更多的可能性。本文我们将为大家介绍利尔达NB860模组基于Lwm2m协议依托AEP平台实现云云对接功能快速接入利尔达物联网全连接云平台,实现数据交互。

设备端流程:上电即上云

利尔达NB860/MB960/MB260系列模组支持上电即上云。设备上电后,模组会自动向云平台发起流程操作,完成一系列驻网注册登录平台流程,用户在此期间无需任何指令配置即可完成云平台对接。

云平台端流程:保姆级配置教程

利尔达物联网全连接云平台提供了完善的云上配置流程及操作步骤。用户可通过文档中心查阅相关文档进行快速配置。

点击进入详细教程链接

01

在电信平台添加应用和产品

在进行物联网平台云网关配置前,需在中国电信AEP平台完成产品创建,并添加应用。

向上滑动阅览

前提条件

已完成中国电信AEP平台账号注册认证

操作步骤

1、登录中国电信AEP平台

2、在产品中心页面,单击右上角的创建产品

3、在弹出的对话框中,完成参数配置后,单击确定。

本示例配置参数如下表所示。

3b4e816a-574e-11ed-b116-dac502259ad0.png

4、单击左侧导航栏的应用管理,单击页面右上角的新增应用,完成参数配置后,单击创建

可根据页面提示,自定义配置参数。应用创建完成后,在应用列表,单击该应用的查看详情按钮,查看并保存App KeyApp Secret的值。

5、在产品中心找到相应的产品定义电信物模型,电信非透传产品才能在电信平台定义物模型数据。

02

在物联网平台创建产品

您需要在物联网平台创建产品,产品名称最好与中国电信AEP平台产品名称一致,方便对应相应产品。

向上滑动阅览

前提条件

已在中国电信AEP平台完成应用产品添加。

操作步骤

1、登录物联网平台控制台

2、在右侧导航栏,单击创建产品,完成参数配置,单击确认,创建产品完成后系统将会自动订阅(包括设备上下线通知,设备数据变化通知,设备事件上报通知,设备指令响应通知),删除产品将会删除所有订阅。

此处参数配置如下。

3b61b758-574e-11ed-b116-dac502259ad0.png3b68ffc2-574e-11ed-b116-dac502259ad0.png3、在物联网云平台侧边栏点击产品管理,点击创建好的产品名称查看产品详情,点击物模型定义,点击编辑物模型进行新增物模型数据如下:

属性:

3b8159e6-574e-11ed-b116-dac502259ad0.png

4、单击左侧导航栏的应用管理,单击页面右上角的新增应用,完成参数配置后,单击创建

*提示:物联网云平台添加的物模型和电信平台添加的物模型可以不一致,中间通过物联网平台的数据脚本解析将两种物模型数据进行解析对应,但还是建议两个平台物模型保持一致,方便使用和创建数据解析脚本。

03

使用云网关创建设备

您只需要在物联网平台某一产品下创建设备,平台将会同步在电信平台相应的产品下创建设备,设备名称与中国电信AEP平台设备名称建议一致,以便对应查找。

向上滑动阅览

前提条件

已在中国电信AEP平台完成应用产品添加,已在物联网平台完成电信关联产品添加

操作步骤

1、登录物联网平台控制台。

2、点击上面导航栏中云平台,单击侧边栏设备管理,点击添加设备完成参数配置,单击确认。

3、按照页面提示填写信息,然后单击确认。

3ba0c920-574e-11ed-b116-dac502259ad0.png3bacc5e0-574e-11ed-b116-dac502259ad0.png

也可以使用批量导入导入电信设备,请下载模板使用模板导入。

*提示:电信设备的设备ID需要去电信AEP平台查找,本平台不可见。

04

创建云云对接数据解析脚本

完成设备产品物模型的创建,为了和电信AEP平台进行通信,物联网平台的物模型和中国电信平台物模型的数据格式不同,需要在产品管理相应产品下创建数据解析脚本进行格式转换。

示例编写了电信非透传设备的JS脚本,如下:

向上滑动阅览

1 //上行:属性上报,事件上报

2 var PROPERTY_REPORT_NAME = "property_report"; //属性上报。

3 var EVENT_REPORT_NAME = "event_report"; //事件上报。

4 var EVENT_HUMI_WARNING_PROPERTY = "TEST_EVENT"; // 测试事件,和后台物模型定义事件标识保持一致

5

6 // 下行:服务调用

7 var EXAMPLE_SERVCE_IDENTIFY = "ontemp";

8

9

10 /**

11 * 上行平台间物模型数据格式转换

12 *

13 */

14 function rawDataToProtocol(strString) {

15 var jsonMap = {}

16 var report = JSON.parse(strString);

17

18 if (report.reportType == 1) {

19 jsonMap['report_type'] = PROPERTY_REPORT_NAME; //必要字段,JSON格式,属性上报

20 var params = {};

21 params['temp'] = report.temp; //对应产品属性中temp。

22 jsonMap['params'] = params; //必要字段,JSON格式,属性上报参数。

23 } else if(report.reportType == 2) {

24 jsonMap['report_type'] = EVENT_REPORT_NAME; //必要字段,JSON格式,事件标识。

25 // 判断事件标识

26 jsonMap['event'] = EVENT_HUMI_WARNING_PROPERTY;

27 var params = {};

28 params['temp'] = report.temp; //对应产品属性中prop_int16。

29 jsonMap['params'] = params; //必要字段,JSON格式,事件上报参数。

30 }

31 // 必须stringify 格式化

32 return JSON.stringify(jsonMap);

33 }

34

35 /**

36 * 下行平台间物模型数据格式转换

37 *

38 */

39 function protocolToRawData(json) {

40 var result ={};

41 var obj= JSON.parse(json);

42 var params=obj.params;

43 result.serviceIdentify=EXAMPLE_SERVICE_IDENTIFY; //必要字段,JSON格式,服务标识。

44 result.params=params; //必要字段,JSON格式,服务调用参数。

45 return JSON.stringify(result);

46 }

脚本写完后可以在旁边的模拟数据中先进行测试,如果所有的模拟数据对应的模拟运行结果如预期一样则说明脚本编写完成,如下:

3bb85590-574e-11ed-b116-dac502259ad0.png

电信透传设备JS脚本编写可参考如下:

向上滑动阅览

1 var PROPERTY_REPORT_VALUE = 0x00; //属性上报。

2 var PROPERTY_REPORT_NAME = "property_report"; //属性上报。

3 var EVENT_REPORT_VALUE = 0x01; //事件上报。

4 var EVENT_REPORT_NAME = "event_report"; //事件上报。

5

6

7 var EVENT_HUMI_WARNING_VALUE =1; // 湿度告警标识

8 var EVENT_HUMI_WARNING_PROPERTY = "TEST_EVENT"; // 湿度告警标识,和后台物模型定义事件标识保持一致

9

10 var COMMAND_TYPE_FLAG =

"command_type"; //下行指令类型标识符号

11

12

13 // service 示例

14 var EXAMPLE_SERVICE_IDENTIFY = "service1";

15 var EXAMPLE_SERVICE_IDENTIFY_VALUE = 1;

16

17

18 // 属性上报 head+参数1+参数2+......

19 var property_report = "00f0ff013FA00000";

20 // 事件上报 head+ 事件标识 + 参数1+参数2+......

21 var event_report = "0101f0ff013FA00000";

22

23 /**

24 * 上行16进制字符串转物模型JSON入口

25 *

26 */

27 function rawDataToProtocol(strString) {

28 var bytes = str2Bytes(strString);

29 var uint8Array = new Uint8Array(bytes.length);

30 for (var i = 0; i < bytes.length; i++) {

31 uint8Array[i] = bytes[i] & 0xff;

32 }

33 var dataView = new DataView(uint8Array.buffer, 0);

34 var jsonMap = new Object();

35 var fHead = uint8Array[0]; // command

36

37 if (fHead == PROPERTY_REPORT_VALUE) {

38 jsonMap['report_type'] = PROPERTY_REPORT_NAME; //必要字段,JSON格式,属性上报topic。

39 var params = {};

40 params['prop_int'] = dataView.getInt8(1); //对应产品属性中prop_int16。

41 params['uint8_prop'] = dataView.getUint8(2); //对应产品属性中prop_bool。

42 params['bool_prop'] = uint8Array[3];

43 params['prop_float'] = dataView.getFloat32(4); //对应产品属性中prop_float。

44 jsonMap['params'] = params; //必要字段,JSON格式,属性上报参数。

45 } else if(fHead == EVENT_REPORT_VALUE) {

46 jsonMap['report_type'] = EVENT_REPORT_NAME; //必要字段,JSON格式,属性上报。

47

48 var event_flag_value = uint8Array[1];

49 // 判断事件标识

50 if(event_flag_value == EVENT_HUMI_WARNING_VALUE){

51 jsonMap['event'] = EVENT_HUMI_WARNING_PROPERTY;

52 }

53 var params = {};

54 params['prop_int'] = dataView.getInt8(2); //对应产品属性中prop_int16。

55 jsonMap['params'] = params; //必要字段,JSON格式,事件上报参数。

56 }

57 // 必须stringify 格式化

58 return JSON.stringify(jsonMap);

59 }

60

61

62 /**

63 * 下行json格式数据转十六进制字符串入口

64 *

65 */

66 function protocolToRawData(json) {

67 var command_type = json['command_type'];

68 var payloadArray = [];

69

70 // 参数

71 var params = json['params'];

72 var prop_float = params['prop_float'];

73 var prop_int16 = params['prop_int'];

74 var prop_bool = params['prop_bool'];

75 var prop_int = params['on'];

76

77 payloadArray = payloadArray.concat(buffer_uint8(COMMAND_SERVICE_CALL_VALUE)); //command字段。

78

79 //判断服务标识,自定义服务标识对应的标识值

80 if(json['service_identify']==EXAMPLE_SERVICE_IDENTIFY){

81 payloadArray = payloadArray.concat(buffer_uint8(EXAMPLE_SERVICE_IDENTIFY_VALUE));

82 }

83 payloadArray = payloadArray.concat(buffer_int16(prop_int16)); //属性'prop_int16'的值。

84

85 return bytes2Str(payloadArray);

86 }

87

88

89 //以下是部分辅助函数。

90 function buffer_uint8(value) {

91 var uint8Array = new Uint8Array(1);

92 var dv = new DataView(uint8Array.buffer, 0);

93 dv.setUint8(0, value);

94 return [].slice.call(uint8Array);

95 }

96 function buffer_int16(value) {

97 var uint8Array = new Uint8Array(2);

98 var dv = new DataView(uint8Array.buffer, 0);

99 dv.setInt16(0, value);

100 return [].slice.call(uint8Array);

101 }

102 function buffer_int32(value) {

103 var uint8Array = new Uint8Array(4);

104 var dv = new DataView(uint8Array.buffer, 0);

105 dv.setInt32(0, value);

106 return [].slice.call(uint8Array);

107 }

108

109

110 /*

111 字符串转字节数组

112 */

113 function str2Bytes(str)

114 {

115 var pos = 0;

116 var len = str.length;

117 if(len %2 != 0)

118 {

119 return null;

120 }

121

122 len /= 2;

123 var hexA = new Array();

124 for(var i=0; i

125 {

126 var s = str.substr(pos, 2);

127 var v = parseInt(s, 16);

128 hexA.push(v);

129 pos += 2;

130 }

131 return hexA;

132 }

133

134 /* 字节数组转字符串 */

135 function bytes2Str(arr)

136 {

137 var str = "";

138 for(var i=0; i

139 {

140 var tmp = arr[i].toString(16);

141 if(tmp.length == 1)

142 {

143 tmp = "0" + tmp;

144 }

145 str += tmp;

146 }

147 return str;

148 }

05

效果展示

至此,我们已完成电信平台应用,产品,产品物模型创建,物联网平台电信关联产品,设备,产品物模型创建,数据解析脚本编写。

数据上行

设备上电入网后自动注册到平台,可在设备列表中看到设备连接状态为在线。

3bcda8d2-574e-11ed-b116-dac502259ad0.png

通过AT指令AT+NMGS向平台发送数据(如不符合定义的物模型数据,将会解析错误),即可在物联网平台设备物模型设备数据中的属性上报看到结果。

3bdd7b9a-574e-11ed-b116-dac502259ad0.png

数据下行

在线调试,选择透传调试,输入有效的数据点击发送。

3bf1b5b0-574e-11ed-b116-dac502259ad0.png

设备收到消息为:

3c0a4d14-574e-11ed-b116-dac502259ad0.png


3c179988-574e-11ed-b116-dac502259ad0.gif

至此,我们已完成依托AEP平台与利尔达物联网全连接云平台进行云云对接的端(LierdaNB860模组)到云(物联网全连接云平台)对接实现数据交互功能。第三期我们将介绍NB860模组配合利尔达物联网全连接云平台基于TCP协议进行直连对接快速上云,敬请期待。

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

    关注

    2939

    文章

    47322

    浏览量

    407904
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    由Memfault赋能的Nordic-nRF Cloud服务将硬核加持联网通信应用

    解决方案合作伙伴。” Birkenes补充道:“此次获奖让我们的客户更有信心地利用我们的技术打造连接物联网产品。此举反映我们致力于在整个产品生命周期内提供支持,这一过程更轻松、更快捷、
    发表于 11-27 22:30

    华为携手共赢万物互联的智能时代

    9月20日,在华为全联接大会2025(HUAWEI CONNECT 2025),华为常务董事汪涛在主题演讲中表示,面向万物互联的智能时代,华为坚持“创新引领,开源开放,共创智能世界生态新选择
    的头像 发表于 09-20 15:54 1480次阅读

    低代码联网平台是什么?看完这篇,你就领先一步

    联网技术快速渗透各行各业的今天,低代码联网平台正成为打通设备互联、数据分析与业务应用的核
    的头像 发表于 08-14 15:16 540次阅读

    联网平台解决方案:破解行业痛点,赋能场景落地

    的精准种植,从城市的智能交通到家庭的安防监控,联网平台解决方案正在用技术破解各领域的效率瓶颈。解决方案的核心价值,在于将碎片化的设备数据转化为可执行的决策依据,
    的头像 发表于 08-08 17:43 995次阅读

    联网平台的作用有哪些?万物互联

    、城市管理、民生服务等诸多领域的运作模式。 一、设备互联的“翻译官”:打破异构设备的通信壁垒 联网的核心是“万物互联”,但现实中设备的多样性和协议的碎片化,使得“连接”成为首要难题。
    的头像 发表于 08-07 18:00 773次阅读

    从功能到优势:联网低代码平台智能应用开发变简单

    万物互联的时代,联网平台早已不是技术人员专属的“专业工具”,而是成为普通人也能轻松上手的“智能应用搭建
    的头像 发表于 08-01 17:09 750次阅读

    HarmonyOS5服务技术分享--函数预加载文章整理

    “预加载”或“函数”即可)。 ​​、创建一体化工程:5分钟搭好架子​​ 咱们以HarmonyOS应用为例(元服务流程类似),快速搭建一个
    发表于 05-22 20:33

    HarmonyOS5服务技术分享--ArkTS开发Node环境

    函数将在​​跨协作​​、​​AI集成​​(如调用华为HiAI)等场景中发挥更大价值。 ? ​​下一步行动​​: 尝试在你的项目中添加一个函数,处理用户反馈表单或实时天气查询,体验Serverless
    发表于 05-22 17:21

    火山引擎2025“大模型+智能硬件”机智特邀研讨会圆满收官 共绘万物智能产业蓝图

    4月19日下午,由机智与字节跳动旗下火山引擎联合主办的「擎启大模型:从万物互联万物智能——2025大模型+智能硬件特邀研讨会」,在深圳湾字节跳动公司圆满举行。这场聚焦AIoT行业智
    的头像 发表于 04-24 11:10 1200次阅读
    火山引擎2025“大模型+智能硬件”机智<b class='flag-5'>云</b>特邀研讨会圆满收官 共绘<b class='flag-5'>万物</b>智能产业蓝图

    中软国际打造企业服务解决方案

    近日,华为生态大会2025在芜湖隆重举行。中软国际华为技术与解决方案集团应用与服务业务线总裁胡启明受邀参加华为伙伴联合解决方案宣讲会,并在会上作了题为《中软国际企业
    的头像 发表于 04-16 11:34 846次阅读

    【第章 模型与设备连接】手把手教你玩转新版正点原子

    【第章 模型与设备连接】手把手教你玩转新版正点原子玩过联网的朋友们都知道,我们在接触各大主流平台时会知道
    发表于 03-12 09:27

    什么是计算平台?搭建计算平台需要什么条件

    计算平台是一种以计算技术为基础的计算服务平台,用于提供灵活、可扩展、可共享的计算资源和系统服务。它允许用户在网络
    的头像 发表于 01-09 10:43 837次阅读

    怎么更改电脑存储位置,更改电脑存储位置教程

        ‌存储是一种通过互联网将数据存储在远程服务器技术‌,用户可以通过互联网随时随地访问和管理自己的数据。
    的头像 发表于 01-07 16:43 1718次阅读
    怎么更改电脑<b class='flag-5'>上</b>的<b class='flag-5'>云</b>存储位置,更改电脑<b class='flag-5'>上</b>的<b class='flag-5'>云</b>存储位置教程

    互联网是什么意思

    互联网,通常称为计算,是一种基于互联网的计算模式,它允许用户通过网络访问和使用远程服务器的存储、管理和处理数据的资源。主机推荐小编为您
    的头像 发表于 01-07 09:50 1008次阅读

    搭建简易电脑,搭建简易电脑教程

        远程连接办公是新兴热门办公方式,凭借信息技术互联网普及,不受地理、硬件限制,可自由安排工作时间和地点。随着对工作生活平衡和环境可持续性的重视,未来远程办公将受青睐。今天小编给大家分享搭建
    的头像 发表于 12-26 13:24 833次阅读
    搭建简易<b class='flag-5'>云</b>电脑,搭建简易<b class='flag-5'>云</b>电脑教程