应用场景
市面上生产的传统设备,往往不具备联网能力,且外界通信主要通过串口传输二进制数据。在将这些设备接入物联网平台,进行数字化管理过程中,会遇到一个问题“如何将上报的二进制数据变成更易读的JSON数据?”,比如:上报“01040209E8A9”如何变成“温度:25.36℃”,这个将原始数据转换成JSON数据的过程就是数据解析。
数据解析流程
数据解析简化流程:黑盒二进制数据->解析处理->易读JSON数据。
数据解析配置
* 说明:温控器不具备入网能力,这里用DTU作为网关透传。
后续的解析脚本会按照模型设置的数据点来返回解析后的数据。
2. 配置数据解析脚本
//GroovyUtils为通用解析工具
import com.zlgcloud.iotplatform.iotmapping.commons.GroovyUtils
import java.nio.ByteBuffer;
/**
* 将二进制报文解析成物模型的map数据
*
* @param rawData 二进制报文
* @return 物模型数据
* @description 方法名必须为rawDataToJson,参数必须是byte[]类型
*/
static Map rawDataToJson(byte[] rawData) {
Map map = new HashMap<>();
Map dataMap = new HashMap<>();
//定义解析数据的map,key固定为data,用于存放对应事件内字段的数据
map.put("data", dataMap);
//设置数据模型配置中定义的数据点
map.put("event_name", "MX_TEMP_fn.raw");
//初始温度、湿度为0
float temperature = 0;
float humidity = 0;
//开始解析数据
ByteBuffer byteBuffer = ByteBuffer.wrap(rawData);
//从第0个字节开始读取
int offset = 0;
//读取长度
int dataLen = byteBuffer.get(offset);
offset += 1;
//如果长度为4,则同时解析温度和湿度数据;否则长度就为2,只解析温度数据
if (dataLen == 4) {
// 解析温度
temperature = byteBuffer.getShort(offset);
if (temperature >= 4096) {
// 负值
temperature = -1 * (temperature - 4096);
}
temperature = temperature / 100;
//解析湿度
offset += 2;
humidity = byteBuffer.getShort(offset);
humidity = humidity / 100;
} else {
//解析温度
temperature = byteBuffer.getShort(offset);
if (temperature >= 4096) {
// 负值
temperature = -1 * (temperature - 4096);
}
temperature = temperature / 100;
}
//将数据按数据模型配置定义的格式放入返回值中
dataMap.put("temperature", temperature);
dataMap.put("humidity", humidity);
return map;
}
说明:
1. 解析脚本中支持对多个数据点进行解析处理,不仅限于两个数据点。
2. 解析脚本中的数据点要与数据模型中配置的一致,否则会解析保存失败。
将编写好的解析脚本配置到温控器的设备类型上:
3.查看解析后的数据
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
致远电子
+关注
关注
13文章
398浏览量
31096
原文标题:【产品应用】IoT云平台如何识别设备透传的黑盒数据?
文章出处:【微信号:ZLG_zhiyuan,微信公众号:ZLG致远电子】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
【产品应用】ZWS云平台应用(3)-设备基于DTU接入
传统设备要接入物联网,选择什么方式比较好?本文将介绍通过DTU智能网联终端CATCOM-100接入ZWS物联网云平台的功能。对于一些工业制造、机械设备对温度有特殊的要求,我们就需要控制温度。这些
esp8266怎么让串口透传?
esp8266可以开机不配置直接当串口透传,直接接在一台设备的串口上,设备波特率固定,上位机通过udp直接接受,esp826可以做到吗,以前用的是串口转wifi模块
发表于 11-08 07:43
STM32通过NB-IoT连接阿里云IOT平台
NB-IoT技术介绍
整体框架结构
• 硬件连接注意事项
• DEMO运行效果
• 在阿里云物联网平台创建并配置产品
• 在云
发表于 09-11 07:04
物通博联设备联网智能网关设备数据采集上传百度云IOT平台
在当今的数字化时代,物联网(IoT)技术正以其无可比拟的便利性和效率,设备需要通过互联网进行数据采集和分析对各行各业产生深远影响。随着物联网技术的不断发展,越来越多的设备被连接到互联网
STM32F429通过at指令将esp32c3设置为透传模式,esp32c3发给STM32F429的透传数据at client没有正常接收是为什么?
STM32F429的透传数据,at client没有正常接收,
比如+IPD,0,3:123, at client 只接收了 +IPD,0,3: ,将透
发表于 08-20 16:59
【IoT毕设】机智云平台+STM32+树莓派的草莓采摘机器人控制系统
模块实现连接机智云服务器,实现采摘机器人本机信息以及采摘数量上报到手机或电脑客户端,另外上报信息的种类可以根据需要进行扩展。
开发机智云平台的物联网功能首先在机智云网站新建
发表于 08-16 17:35
【产品应用】如何通过ZWS-IoT低代码开发平台搭建一个环保系统
使用ZWS-IoT低代码开发平台,可以快速搭建不同web应用页面,以及多个页面的物联网应用系统。本文将介绍通过ZWS-IoT低代码开发平台如何自主搭建一个智慧环保系统。简介ZWS-
【福利活动】深度体验OpenHarmony对接华为云IoT
),第二次设备重启之后可以正常对接华为云。
登录平台可以看见数据上报的具体信息,也可以进行命令下发等操作控制设备,具体如下图11-13。
发表于 07-28 10:55
评论