grafana - InfluxDB 和 NodeRED
问题描述
自从我编写代码以来已经有一段时间了,这是我第一次处理 Influxdb 和 NodeRED。我正在从连接到 Pi 的传感器获取四组测量值。这是调试过程中截取的屏幕截图,测量即将结束。
我设法将传感器中的数据输入 NodeRED:
我面临的问题是:
- 如何在 InfluxDB 中构造表(测量值)并将这些数据放入正确的列中;
- 以及如何/在哪里定义采样间隔以避免数百万数据进入数据库?
稍后我将尝试将数据库与 Grafana 连接,这对我来说是全新的。任何帮助表示赞赏。
解决方案
首先,在每个传感器节点的末尾添加一个函数节点,并将输出保存为变量。代码会根据您获取传感器数据的方式而有很大差异,但我是这样做的:
msg.payload = Number(msg.payload);
flow.set("presion_agua_psi",msg.payload);
flow.set("sensor_presion_agua","Wemos D1");
return {payload: msg.payload};
然后,单独使用一个注入节点并将其设置为每 xx 分钟重复一次。这是您将用于将数据实际保存到 influxDB 的时间范围。
在注入节点之后,添加一个使用变量名称及其值创建字典的函数节点。这将确保您的 influx 列以名称存储。
再一次,代码会有所不同,但这里有一个例子:
msg.payload = {
Timestamp:date,
Device:flow.get("sensor_nivel_agua"),
Nivel_Agua_Tinaco:flow.get("Agua_Tinaco"),
}
return msg;
最后,添加您的 influxDB 凭据并进行调试,以确保正确存储数据。
推荐阅读
- regex - 正则表达式搜索字符串的实例然后删除某些字符
- function - 函数有没有办法根据输入返回整数或字符串?
- android - 如何在工具栏中的 SearchView 中处理单击返回箭头
- javascript - 导航回屏幕时反应原生元素按钮组按钮消失
- reactjs - 有没有办法根据 keydown 事件以编程方式触发自动完成?
- graph - 如何在 Stata 中为多个时间段创建不同活动的“堆叠条形图”?
- python - 通过 RTSP 使用相机进行 YOLOv3 对象检测
- python - numpy 安装的一些问题
- javascript - formBuilder.group() 无法从 angular8 中的@input 获取数据
- sql - 是否可以使用 int 变量来设置 SQL 中另一个变量的大小