いんくらyochさんの日記

興味あることの忘備録

MPPTチャージコントローラのロギング

先週はチャージコントローラの通信を無線化することに成功したが、チャージコントローラの通信プロトコルがmodbusと呼ばれるものであることが分かり、これを読み出してDBに書き出せばSolarStationMonitorを立ち上げずともロギングができることから調べてみた。
調べた結果、ArduinoでmodbusのライブラリがありEPEVERのコントローラを読み出しているコードがGitHubに公開されていたので、これを使わせてもらうことにした。
github.com
また、influxdbのArduinoライブラリもあることが分かったので、ESP-WROOM-02からラズパイ上のDBにライブデータを書き出すよう上記のコードに下記サンプルを例に手を加えた。

// InfluxDB server url, e.g. http://192.168.1.48:8086 (don't use localhost, always server name or ip address)
#define INFLUXDB_URL "influxdb-url"
// InfluxDB database name
#define INFLUXDB_DB_NAME "database"

// Single InfluxDB instance
InfluxDBClient client(INFLUXDB_URL, INFLUXDB_DB_NAME);

// Define data point with measurement name 'device_status`
Point pointDevice("device_status");
// Set tags
pointDevice.addTag("device", "ESP8266");
pointDevice.addTag("SSID", WiFi.SSID());
// Add data
pointDevice.addField("rssi", WiFi.RSSI());
pointDevice.addField("uptime", millis());

// Write data
client.writePoint(pointDevice);

github.com
■Grafanaで表示した結果
f:id:yoch:20210515202324p:plain