600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 从零开始 打造基于阿里IoT云平台的LoRa解决方案(3)_配置产品功能 将上传数据解析为

从零开始 打造基于阿里IoT云平台的LoRa解决方案(3)_配置产品功能 将上传数据解析为

时间:2018-07-05 22:57:53

相关推荐

从零开始 打造基于阿里IoT云平台的LoRa解决方案(3)_配置产品功能 将上传数据解析为

本篇是 《从零开始,打造基于阿里IoT云平台的LoRa解决方案》系列教程的第3 篇,将为大家讲解:1-如何配置产品功能?2-如何将产品的上传数据解析为阿里云平台数据格式?

查看阿里物联网平台上产品的功能定义和数据解析

1-配置产品功能定义2-将产品的上传数据解析为阿里云平台数据格式本期内容到此结束~下一篇文章为大家讲解==如何在IoT Studio上创建web可视化界面==。

1-配置产品功能定义

RAK5205 lora 节点硬件上包含 GPS、温度、湿度和加速度、电池电量、速度的相关传感 器,所以需要在阿里云平台上我们已经新建的 RAK5205 产品里加上这些属性。

进入阿里云 IoT 控制台,选择“设备管理”下的“产品”:

找到 RAK5205 产品,点击右侧“查看”:

点击在该页面**“自定义功能”右侧的<添加功能>**按钮,在弹出框里配置相应数据。 以配置“温度”属性为例,功能类型为“属性”,功能名字为 “温度”,标识符为 “Temperature”,数据类型为double 型,取值范围为-99 到 100, 步长为0.01, 单位 为“摄氏度”。

点击<确定>按钮,“温度”属性配置成功。如法炮制,依次配置“湿度”,“经度”, “纬度”,“海拔”,“X 加速度”,“Y 加速度”,“Z 加速度”,“速度”,“电池 电压”,“大气压”属性,具体数据如下:

创建后的结果如下图:

2-将产品的上传数据解析为阿里云平台数据格式

RAK5205 上报的数据是二进制格式,如 01880537A5109D5A00846C,其中1,2 字节为数 据标识码:01 88,3,4,5 字节为 altitude 数据:(altitude:339m),6,7,8 字节为 latitude 数据:(latitude:34.1925),9,10,11 字节为 longitude 数据:(longitude:108.8858)。而阿里云平台的数据格式为 Alink-JSON 格式。

接下来需要使用产品定义里的“数据解析”,把二进制数据自动转化为 Alink-JSON 格式, 转化规则可以参考文档。

打开 RAK5205 产品的“数据解析”界面:

“编辑脚本”里输入数据解析脚本,“模拟输入”里输入模拟数据,验证脚本的正确性, <保存草稿>可以保存已编写的解析脚本,输入模拟数据后点击<运行>按钮,右侧“运行结 果”里会显示解析后的 JSON 格式,只有运行正确的解析脚本,才能点击<提交>按钮提 交。

在“编辑脚本”里输入如下解析脚本:

1. // var COMMAND_REPORT = 02;2. // var COMMAND_SET = 01;3. var ALINK_PROP_REPORT_METHOD = 'thing.event.property.post'; //标准 ALink JSON 格式 topic, 设备 上传属性数据到 云端4. var ALINK_PROP_SET_METHOD = 'thing.service.property.set';5. 6. function rawDataToProtocol(bytes) {7. var uint8Array = new Uint8Array(bytes.length); 8. for (var i = 0; i < bytes.length; i++) {9. uint8Array[i] = bytes[i] & 0xff; 10. }11. 12. var dataView = new DataView(uint8Array.buffer, 0);13. var jsonMap = {};14. // var fHead = uint8Array[0]; // 第 0 个 BYTE 为上报协议15. // if (fHead == COMMAND_REPORT)16. {17.jsonMap['method'] = ALINK_PROP_REPORT_METHOD; //ALink JSON 格式 - 属性上报 topic18. jsonMap['version'] = '1.0'; //ALink JSON 格式 - 协议版本号固定字段19. jsonMap['id'] = '' + 12345; //ALink JSON 格式 - 标示该次请求id值20. var params = {};21. switch (dataView.getInt16(0)) {22.case 0x0267:23. params['Temperature'] = dataView.getInt16(2) * 0.1;24. params['Humidity'] = 100 * dataView.getUint8(6)*0.01 / 2;25. params['Atmosphere'] = dataView.getInt16(9) * 0.1;26.break;27.case 0x0188:28. var buffer = new Uint8Array(4);29. buffer[0] = 0;30. buffer[1] = uint8Array[2];31. buffer[2] = uint8Array[3];32. buffer[3] = uint8Array[4];33. var latitude = new DataView(buffer.buffer, 0);34. params['Latitude'] = latitude.getInt32(0)*0.0001;35. 36. buffer[0] = 0;37. buffer[1] = uint8Array[5];38. buffer[2] = uint8Array[6];39. buffer[3] = uint8Array[7];40. var longitude = new DataView(buffer.buffer, 0);41. params['Longitude'] = longitude.getInt32(0)*0.0001;42. 43. buffer[0] = 0;44. buffer[1] = uint8Array[8];45. buffer[2] = uint8Array[9];46. buffer[3] = uint8Array[10];47. var altitude = new DataView(buffer.buffer, 0);48. params['Altitude'] = altitude.getInt32(0)*0.01;49.break;50.case 0x0371:51.params['Battery_voltage'] = dataView.getInt16(2) * 10;52.params['Battery_voltage'] = dataView.getInt16(4) * 10;53.params['Battery_voltage'] = dataView.getInt16(6) * 10;54.break;55.case 0x0902:56. params['Gas_resistance'] = dataView.getInt16(2) * 10;57. params['Speed'] = dataView.getInt16(6) * 0.01;58.break;59.case 0x0902:60. params['Gas_resistance'] = dataView.getInt16(2);61.break;62. }63. 64. jsonMap['params'] = params; //ALink JSON 格式 - params 标准字段65. }66. return jsonMap;67. }68. 69. function protocolToRawData(bytes) {70.var method = json['method'];71.var id = json['id'];72.var version = json['version'];73.var payloadArray = [];74.75.return payloadArray;76. }

然后点击<保存草稿>。

之后输入我们的原始数据“01880537A5109D5A00846C”进行调试:

可以看到右侧有“运行成功”的提示,并且解析出了 Latitude、Longitude 和 Altitude。 这时候点击<提交>即可让脚本生效。

点击右侧的“监控运维”,然后点击日志服务,在右侧产品下拉框选择 RAK5205:

点击“物理模型数据分析”,

筛选出指定 DeviceName,就可以看到 RAK5205 节点上报的数据了,有“原始数据”和 解析后的“内容(全部)”数据。以其中一条记录为例,原始数据为01880537a9109d5b00c670,“内容(全部)”为:

可以看到上传的数据已经能正常解析了。

本期内容到此结束~下一篇文章为大家讲解如何在IoT Studio上创建web可视化界面

搭建一个基于阿里IoT云平台的LoRa解决方案,可以分为四个步骤:

1-配置LoRaWAN网关

2-在阿里物联网平台创建产品和设备

3-配置产品功能,数据解析

4-创建web可视化界面

从零开始 打造基于阿里IoT云平台的LoRa解决方案(3)_配置产品功能 将上传数据解析为阿里云平台数据格式

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。