(超详细二)onenet数据可视化详解,如何用截取数据流绘图

本文介绍如何利用OneNET平台,通过仪表盘和曲线图展示传感器数据。从硬件搭建到数据流导入,再到创建仪表盘获取最新数据并绘制曲线,提供了详细步骤和代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

前言

硬件搭建

onenet平台准备

数据流导入

 仪表盘程序段(获取上传最后一组数据)

曲线代码段

注意



前言

上一篇我们采用传感器接入了onenet平台,实时上传采集的数据。当我们打开设备,打开数据流看着一排排在刷新的数据,有没有什么方法更直观一些呢?比如截取数据流进行可视化处理,用数据点绘制曲线,或者用仪表的方式感受采集数据的变化?

硬件搭建

https://blog.csdn.net/qq_45998204/article/details/124686714

详见上一章

onenet平台准备

新建一个面板

自行添加所需格式的常规图表

数据流导入

打开数据,管理数据源

 

 

这样我们再打开数据源选择时,就能找到我们上传的数据流了

如何对仪表盘进行控制,打开私有过滤器,进行修改,看看值的变化

 data-----选择的数据流值

rootdata----该设备下的所有数据流值

 OneNET View提供了过滤器来对数据源进行个性化处理,用户可以自行写入JavaScript代码,实现数据结构转换、筛选和一些简单的计算

 输入data,我们可以观察到,仪表板随着返回的数据流值发生了改变

打开数据处理结果,可以直观的观察到数据流返回信息,前边我们设置了刷新间隔5秒,数据点数100,在这么多数据处理结果里面,我们需要截取最新一组数据应用仪表盘显示

接下来就是如何截取我们所需的数据值来绘图

打开私有过滤器,进行修改,让它返回最后一组数据

调用函数 last(arr)

将last(data)赋给value

打开数据处理结果,最新一组数据显示一致

 仪表盘程序段(获取上传最后一组数据)

// last([1, 2]); // -> 2
function last(arr) {
    var len = arr ? arr.length : 0;
    if (len) return arr[len - 1];
}
return [{
    value: last(data).value,
    name: '温度'
}]

修改程序后一定要保存

观察单个数据无法很好表达整体情况

于是引入曲线图

选中定义的曲线图,添加数据源后,修改私有过滤器,返回数据流data(保存!)

 再打开数据处理结果,这里很多组数据,我们需要选取有用数据来帮助绘图,比如上传时间,上传的采样值(温度)

 通常数据源返回的结果大多是数组类型,通过迭代可以对每个元素进行处理。

 打开私有过滤器

曲线代码段

data.forEach((item, index) => {
    // console.log('元素:', item, ';下标:', index);
    item.x = item.update_at
    item.y = item.value
});
return data 

多设备多数据流上传情况同理

链接

(个人可视化图后来重做了一遍用于项目了,暂时关闭访问)

注意

看了评论发现有的人没有出图,流程没有问题,有个小细节注意一下

导入常规图表时这里是有三个系列,复制程序后发现只有x轴更新,是因为这里的y轴字段名是y1,而程序赋值的是y,修改此处就好了

有空再更一下rootdata的使用

欢迎交流


---------------------
作者:麓南的风
来源:CSDN
原文:https://blog.csdn.net/qq_45998204/article/details/124716864
版权声明:本文为作者原创文章,转载请附上博文链接!
内容解析By:CSDN,CNBLOG博客文章一键转载插件

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值