Skip to content

ラズパイでセンサーの値を取得して、InfluxDB に格納する。

License

Notifications You must be signed in to change notification settings

seotaro/rpi-sensor-experiment-with-fluxdb

Repository files navigation

ラズパイでセンサーの値を取得して InfluxDB に格納するサンプルコード

Telegraf から一定間隔で計測プログラムが実行され、計測値がサーバーの InfluxDB に格納される。

(計測プログラム) → Telegraf → InfluxDB

Install

# Node.js
make setup-node

# Telegraf
make setup-telegraf

# I2C
make setup-i2c

# 1-Wire
make enable-1-wire

# Deploy exec
make deploy

stdout

標準出力に計測値を所定のフォーマットで出力して Telegraf に取得させる。

出力例)

[{"time":"2023-11-21T12:53:55.519Z","id":"rpi4b8g-77","sensor":"BME280","temperature":24.49,"humidity":35.92742318719938,"pressure":1021.6984834213315},{"time":"2023-11-21T12:53:55.517Z","id":"rpi4b8g-44","sensor":"SHT31","temperature":25.39253833829251,"humidity":41.13679713130389},{"time":"2023-11-21T12:53:59.619Z","id":"xx-xxxxxxxxxxxxxxxxxxxxxxxx","sensor":"DS18B20","temperature":25.312},{"time":"2023-11-21T12:53:59.619Z","id":"xx-xxxxxxxxxxxx","sensor":"DS18B20","temperature":25.375},{"time":"2023-11-21T12:53:55.537Z","id":"xxxxxxxxxxxx","sensor":"SCD4X","co2":965,"temperature":29.279403686523438,"humidity":30.2978515625}]

/etc/telegraf/telegraf.conf

設定例)

[agent]
  interval = "30s"
  flush_interval = "30s"

[[outputs.influxdb_v2]]
  urls = ["http://{アドレス}:8086"]
  token = "{token}"
  organization = "{organization}"
  bucket = "{bucket}"


[[inputs.exec]]
  commands = [
    "node /usr/local/bin/rpi-sensor-experiment-with-fluxdb/index.js"
  ]

  environment = [
    "DS18B20={on|off}",
    "SHT31={on|off}",
    "BME280={on|off}",
    "SCD4X={on|off}"
  ]

  timeout = "30s"

  data_format = "json"
  json_time_key = "time"
  json_time_format = "2006-01-02T15:04:05Z07:00"
  tag_keys = ["id", "sensor"]

SCD4X は計測に10秒程度かかるのでタイムアウトに注意すること。

変更したら Telegraf を再起動する。

sudo systemctl restart telegraf.service

data-explorer

image

参考

I2C デバイスの確認

sudo apt install i2c-tools
i2cdetect -y 1

データシート

About

ラズパイでセンサーの値を取得して、InfluxDB に格納する。

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published