InfluxDB 和 NodeRED

3

我已经有一段时间没有编写代码了,这是我第一次处理Influxdb和NodeRED。 我正在从连接到树莓派的传感器中获取四组测量数据。这是在调试期间拍摄的屏幕截图,测量值正在通过。

enter image description here

我成功将传感器数据导入到NodeRED中:

enter image description here

我面临的问题是:
  • 如何在InfluxDB中构建表格(测量数据)并将这些数据放入正确的列中;
  • 如何/在哪里定义采样间隔以避免大量数据进入数据库?

我稍后将尝试将数据库连接到Grafana,这对我来说都是新的。任何帮助都将不胜感激。

1个回答

1
首先,在每个传感器节点的末尾添加一个函数节点,并将输出保存为变量。代码将根据您获取传感器数据的方式而大不相同,但以下是我如何实现的:
msg.payload = Number(msg.payload);
flow.set("presion_agua_psi",msg.payload);
flow.set("sensor_presion_agua","Wemos D1");
return {payload: msg.payload};

在下面的示例中,我使用MQTT发送传感器数据Sensor node
然后,单独使用一个注入节点,并将其设置为每xx分钟重复一次。这是您实际将数据保存到influxDB中所使用的时间框架。

Inject Node

在注入节点之后,添加一个函数节点来创建一个字典,使用变量名和其值。这将确保您在Influx中存储的列具有名称。
再次强调,代码会有所不同,但以下是一个示例:
msg.payload = { 
    Timestamp:date, 
    Device:flow.get("sensor_nivel_agua"), 
    Nivel_Agua_Tinaco:flow.get("Agua_Tinaco"),
}

return msg;

最后,添加您的influxDB凭据并进行调试,以确保数据被正确存储。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接