OneNet平台使用可视化界面(MQTT协议)

本文档详细记录了如何利用OneNET物联网平台,结合Keil软件和野火指南者开发板,创建一个可视化界面。该界面能够展示下位机的温度和湿度,并通过仪表盘和开关控件控制灯的开关状态。在数据可视化界面,通过新建项目,配置数据源和过滤器,实现了数据与控件的关联。此过程包括了数据流的选择,仪表盘、折线图和开关的设置,以及相应的数据过滤和解析。

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

项目效果:

在OneNet平台建立一个可视化界面,实现效果是下位机的温度,湿度可以在该界面显示,同时该界面可以控制下位机的灯亮与灭。

搭建环境:

软件:keil(编写C语言-修改硬件的程序)+onenet平台(建立可视化界面-上位机功能);

硬件:野火指南者开发板;

可视化界面:

含有折线图,仪表盘和开关。

折线图是显示湿度值;仪表盘用来显示温度值;开关用来控制灯亮灭。

注意:每个控件都需要和产品的数据流有关联。----“数据流选择”

OneNET - 中国移动物联网开放平台 注册登陆进入onenet平台,点击右上角-“控制台”,进入如下界面,点击“多协议接入”,找到“MQTT协议”,添加产品,然后进入下一个界面。

点击这个新建的产品进入到如下图的界面,点击“设备列表”,“数据流” 去建立设备和数据流,然后点击“应用管理”,跳转到“数据可视化”界面。(具体网址: 物联网平台

图示1

进入数据可视化界面,点击“新建项目”,选择2D-空白模板,然后建个名称,开始编辑这个模板。 

 在画布上面添加仪表盘,具体操作参看如下界面的标示。 

点击“数据”---〉“数据源选择”(目的:数据和控件关联关系),按照下图的步骤创建,其中数据类型--onenet,名称可任意设置,红色椭圆标记是参考前面“多协议接入”建立新产品时的产品ID,accesskey--来自产品概况(图示1),设备--来自设备列表的设备名称(图示1),数据流--来自数据流模板(图示1){控件功能是什么对应相关的数据流,比如:仪表盘--数据流为temperature,折线图--数据流为humidity,开关--数据流为ledFlag}

往下找到“数据”---〉“私有过滤器”,修改程序(可以参考官方的网址 OneNET - 中国移动物联网开放平台,最终呈现的效果就是可以显示标题“温度”和数值。

function last(arr) {

    var len = arr ? arr.length : 0;

    if (len) return arr[len - 1];

}

return [{

    value:last(data).value,

    name: '温度'   

}]

 相同的方法设置“基本折线图”,放置相关控件,然后“数据”---〉“数据源选择”---〉humidity(对应项目的数据流),同时“数据过滤器”内的程序改为:

data.forEach((item, index) => {

    item.x = item.update_at

    item.y = item.value

});

在“样式”---〉“数据系列”--〉“系列名”---湿度。

同样在“控制”中找到“按钮”,放置该按钮,然后在“样式”--〉“数据系列”---〉“系列1”---〉“命令内容”改为“LEDON”(单片机程序可以控制灯亮的命令),“系列2”---〉“命令内容”改为“LEDOFF”,在“数据”---〉“数据源选择”---〉对应项目的数据流。

这篇文章是参考了up主(学的很杂的一个人)B站视频最终实现了我的效果(感谢),主要为了记录这个实现过程,本文主要介绍可视化界面的控件实现的过程。

### OneNet 新版云平台数据可视化功能使用教程 #### 1. 创建数据流 在新版 OneNet 平台中,创建数据流是实现数据可视化的第一步。可以通过手动或者自动的方式完成数据流的配置[^1]。 - **自动添加数据流**:当设备通过 MQTT 协议接入并上传数据时,OneNet 可以自动生成对应的数据流。 - **手动添加数据流**:进入“数据管理”模块,在页面上填写所需参数后点击“创建”,即可生成新的数据流。 #### 2. 配置仪表盘 为了更好地展示数据,可以利用 OneNet 提供的仪表盘工具进行定制化设置[^2]。具体操作如下: - 进入仪表盘编辑界面,选择合适的图表类型(如折线图、柱状图等),并对样式、布局和交互方式进行调整。 - 绑定已有的数据源到对应的图表组件中,并确保数据能够实时更新显示。 #### 3. 实现按键控制 除了静态数据显示外,还可以借助网页上的虚拟按钮来发送指令给连接至云端的硬件设备。以下是基本流程概述: - 在仪表盘设计区域新增一个按钮控件; - 定义该按钮触发事件后的返回值逻辑处理机制; - 将此动作关联至目标对象所处位置下的特定字段名下作为输入端口之一;最后经过测试验证无误后再正式投入使用前还需进一步优化用户体验效果等方面考虑因素综合作用之下得出结论即为最终成果呈现形式。 ```python import paho.mqtt.client as mqtt def on_connect(client, userdata, flags, rc): print("Connected with result code "+str(rc)) client.subscribe("command/response") def on_message(client, userdata, msg): print(msg.topic+" "+msg.payload.decode()) client = mqtt.Client() client.on_connect = on_connect client.on_message = on_message client.connect("mqtt.one.net", 1883, 60) # 发送命令消息 client.publish("device/command", payload="turn_on") ``` 上述代码片段展示了如何基于 Python 的 `paho-mqtt` 库向 OneNet 推送一条开关机命令的消息实例。 ---
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值