热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

iot架构mqttnetty_设备上报二进制数据在IoT平台解析实践

在IoT场景中,很多传感器采集到的是私有协议二进制数据流,设备端又不具备转换成结构化JSON的能力,这时设备可以通过自定义Topic上报二

f51f9abf0ed7cf4ae64a616c3adc0f3c.png

在IoT场景中,很多传感器采集到的是私有协议二进制数据流,设备端又不具备转换成结构化JSON的能力,这时设备可以通过自定义Topic上报二进制数据,在IoT物联网平台支持云端配置解析脚本,动态转换成结构化的JSON数据

完整端到端开发过程如下:

  1. 明确二进制上报Topic和数据规则
  2. 云端预先配置针对指定Topic的原始数据配置JS解析脚本
  3. 在脚本解析模拟数据输入,校验脚本业务逻辑正确后,提交到IoT云端
  4. 运行设备,指定Topic上报原始数据
  5. 云端日志服务查看数据解析过程

我们以手表为例,传感器上报hex进制数据,到IoT物联网平台,在云端解析,最终以结构化JSON流转到业务系统。

一、技术架构

设备端二进制数据在云端 IoT 平台转换链路,如下图:

dd7ad10310bf8be3a93ea95b5cca37b5.png

消息转换前后变化:

2506d9a51524b4476e039e8166c00617.png

二、IoT物联网平台 云端开发

创建产品和消息通信Topic选择:

51f0dd21a9fe10fe995a3c39166b0318.png

原始数据:

0x035e8192fd0000000d0000001b00000a8c

数据业务格式:

230447fa43d8c12279103ecd5febaa61.png

在控制台产品详情>数据解析 配置并提交脚本

41c4d20c113b90088d607f6415c5769d.png

完整脚本内容如下:

function transformPayload(topic, rawData) {/*原始hex数据 : 0x035e8192fd0000000d0000001b00000a8c转换后JSON数据 : { "heartbeat": 15, "id": 1585549855, "steps": 2700, "speed": 56}*/ var jsonObj = {} if (topic.endsWith('/user/update')) { var uint8Array = new Uint8Array(rawData.length); for (var i = 0; i

在产品下注册设备,并获取设备身份三元组,如下:

716a8c900cc142d452de2c143388af68.png

三、设备端开发

我们通过Node.js程序模拟设备端上报二进制数据:

const mqtt = require('aliyun-iot-mqtt');//设备身份const options = { productKey: "a1kaK7XC8OB", deviceName: "BlXj1yasIJXmpKxymoUC", deviceSecret: "41798535d799760c8f67f02efd28b01c", regionId: "cn-shanghai"};//建立连接const client = mqtt.getAliyunIotMqttClient(options);// 消息Topic携带?_sn=default标识const topic = `/${options.productKey}/${options.deviceName}/user/update?_sn=default`;// 原始数据var payloadArray = [ 3, 94, 129, 169, 59, 0, 0, 0, 23, 0, 0, 0, 79, 0, 0, 30, 220 ];var payload = new Buffer(payloadArray);// 发布数据到topicclient.publish(topic, payload);

四、联机运行

设备运行后,我们可以在 IoT 控制台的日志服务里查看到完整的数据处理过程,包括设备上报的原始数据,以及脚本解析处理后的结构化JSON数据,如下图:

e2841ea44f6f48def7010094a6e5d923.png

往期推荐

1、39张传感器工作原理GIF图汇总

2、智能手持测温枪开发实践

3、JMeter压测MQTT服务性能实战

4、IoT物联网平台日志服务详解

5、自建MQTT集群迁移阿里云IoT实践

6、工业Modbus电力104规约接入IoT平台

7、设备免烧录三元组,即时注册解决方案

8、IoT+TSDB+Quick BI 搭建楼宇环境监控

9、JS全栈开发,构建智能家居小程序

74e38b2102c5e0b8cc1e7b7f72809910.gif




推荐阅读
author-avatar
王妮美的小姐姐
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有