Zabbix に RP2040(Ras Pi Pico 互換)からデータを投げる

先日製作した Raspberry Pi 3B Zabbix サーバーに RP2040(Ras Pi Pico 互換)ボードで温度、湿度、気圧を測定してデータを送って、グラフ表示をさせてみた。

RP2040(Ras Pi Pico 互換)ボードはこのようにホコリが付かないようにポリカ板でケースを作った。

センサは秋月で購入した定評のある BME280 を I2Cで接続、とりあえずはケースにいれないままでテスト。

まずはデータがきちんと収集できるか確認。 Mu Editor でシリアル接続で表示されることを確認した。

 

Zabbix にデータを送信する CircuitPython プログラムの記述はここを参考にした。

akkiesoft.hatenablog.jpほとんどサンプルの通りだが、Zabbix のアドレス、BME280 のデータ収集のコードの主なところこんなふう。


# Zabbix Server Address
zabbix_server = "192.168.20.112"
.
. # Data Read temp = bme280.temperature hum = bme280.relative_humidity press = bme280.pressure #Data Send if zabbix_server: data = json.dumps({ "request": "sender data", "data":[ {"host":"PanariPico","key":"bme280.temperature","value":temp}, {"host":"PanariPico","key":"bme280.humidity","value":hum}, {"host":"PanariPico","key":"bme280.pressure","value":press} ] }) zabbix_send(zabbix_server, data) time.sleep(30)

データを受信する Zabbi x側の設定はトラッパーアイテムで設定。

30秒ごとにデータを送信し、通信の結果を Mu Editor で表示するとこのように。

 

Zabbix 側で受信したデータをグラフ表示させると、

このとおり。うまく表示できた。

Zabbix の膨大な機能の一部しか使っていないし、グラフ表示などは、かなり工夫の余地ありそうだ。