设施上报二进制数据在 IoT 平台解析实际
在 IoT 场景中,很多传感器采集到的是公有协定二进制数据流,设施端又不具备转换成结构化 JSON 的能力,这时设施能够通过自定义 Topic 上报二进制数据,在 IoT 物联网平台反对云端配置解析脚本,动静转换成结构化的 JSON 数据。
残缺端到端开发过程如下:
1. 明确二进制上报的 Topic 和数据格式规定
2. 云端事后配置针对指定 Topic 的原始数据配置 JS 解析脚本
3. 在脚本解析模仿数据输出,校验脚本业务逻辑正确后,提交到 IoT 云端
4. 运行设施,指定 Topic 上报原始数据
5. 云端日志服务查看数据解析过程
咱们以手表为例,传感器上报 hex 进制数据,到 IoT 物联网平台,在云端解析,最终以结构化 JSON 流转到业务零碎。
1. 技术架构计划
公有协定数据转换链路:
音讯转换前后变动:
2 云端开发产
品定义和音讯通信 Topic 抉择
数据转换脚本
原始数据:0x035e8192fd0000000d0000001b00000a8c
数据业务格局:
云端产品数据解析脚本配置
残缺脚本内容
/**
* 将设施自定义 topic 数据转换为 json 格局数据, 设施上报数据到物联网平台时调用
* 入参:topic 字符串,设施上报音讯的 topic
* 入参:rawData byte[]数组 不能为空
* 出参:jsonObj JSON 对象 不能为空
*/
function transformPayload(topic, rawData) {var jsonObj = {}
/*
原始 hex 数据 : 0x035e8192fd0000000d0000001b00000a8c
转换后 JSON 数据 :
{
"heartbeat": 15,
"id": 1585549855,
"steps": 2700,
"speed": 56
}
*/
if (topic.endsWith('/user/update')) {var uint8Array = new Uint8Array(rawData.length);
for (var i = 0; i < rawData.length; i++) {uint8Array[i] = rawData[i] & 0xff;
}
var dataView = new DataView(uint8Array.buffer, 0);
var fHead = uint8Array[0]; // command
if (fHead == 0x03) {
//
jsonObj['id'] = dataView.getInt32(1);
// 心跳
jsonObj['heartbeat'] = dataView.getInt32(5);
// 速度
jsonObj['speed'] = dataView.getInt32(9);
// 总步数
jsonObj['steps'] = dataView.getInt32(13);
}
}
return jsonObj;
}
3 设施端开发
设施上报 hex 原始数据的代码片段:
const mqtt = require('aliyun-iot-mqtt');
// 设施身份
const options = {
productKey: "a1kaK7XC8oB",
deviceName: "BlXj1yasMJXmpKxymoUC",
deviceSecret: "41798535d799c60c8f67f02efd28b01c",
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);
// 公布数据到 topic
client.publish(topic, payload);
4 运行日志
设施上报原始 hex 数据日志
往期举荐
1、39 张传感器工作原理 GIF 图汇总
2、智能手持测温枪开发实际
3、JMeter 压测 MQTT 服务性能实战
4、IoT 物联网平台日志服务详解
5、自建 MQTT 集群迁徙阿里云 IoT 实际
6、工业 Modbus 电力 104 规约接入 IoT 平台
7、设施免烧录三元组,即时注册解决方案
8、IoT+TSDB+Quick BI 搭建楼宇环境监控
9、JS 全栈开发,构建智能家居小程序
物联网平台产品介绍详情:https://www.aliyun.com/produc…
阿里云物联网平台客户交换群