見出し画像

Raspberry Pi Zero Wを使って自宅の電力使用量をBルートから取得

ラズパイ自体は下記でルンバのお掃除最適化のために購入したものがあるので、それを使います。

問題はここにWi-SUNモジュールを接続してBルートと通信できるのか、というところですね。そこさえクリアできれば、あとはインターネット経由でTiDBに使用量を書き込んでくれればいいので、さしてハードルは高くないはず(下記の日記でやったことの移植)

本当は、瞬時電力以外にも色々やりたいわけですが、まずは一連の流れを繋ぎ切りたいですね。

まずは、前回の実装通りにBルートから電力データを取得できるか、それをTiDBに書き込むことができるか、それがGrafanaで表示されるかを一通り確認した上で、

ラズパイにWi-SUNモジュールを接続して電力データが同様に取得できるか、ラズパイからTiDB Cloudにデータを書き込むことができるか、の順で確認していきましょう。

自分のMac端末で取得したデータを表示した結果はこんな感じ。なぜかよくDBとの接続が切れるので再接続の処理を追加してもらったけど、それでもまだ欠損が多いのでチューニング必要そう。

ラズパイにWi-SUNモジュールを接続

まずはsshでラズパイに接続します。えい!

あまりに気したことなかったけどここのメッセージは何だろう

調べてみたところロケール設定(言語や地域設定)が正しく構成されていないとのこと(GPT先生談)。せっかくの機会なので、設定を試みる。

complete. かっこいい.

しかし、よく見るとen_USとja_JPを生成しようとしているのにen_GBを生成してcomplete.って言ってるんだよな。何がコンプリートやねん。面倒になってしまったので飛ばすことにします。

さて、過日、Macで試したときは、まずシリアル通信を行うためのpyserialライブラリのインストールから始めていました(pythonはラズパイに環境構築済み)。

仮想環境で実行し忘れて一回怒られた

次はWi-SUNモジュールが正しく認識されているかどうかですが、ls /dev/tty.*はラズパイ上ではエラーになってしまうので、下記で認識しているか確認。

dmesg | grep tty

Wi-SUNモジュールがUSBポートとして認識されているか確認。

Future Technology Devices Internationalと書いてあるやつがそうですね。

利用可能なシリアルポートを表示すると出力の中にttyUSB0なるものがある。

おそらくこれかな?

※実は初手のレスポンスの中にttyUSB0ってガッツリ書いてあった。

特にここの確認に詰まることはなかったのでよしとする

ラズパイからTiDB Cloudにデータを書き込み

いずれにせよ、ポートがわかったので、以前のスクリプトの中身を書き換える。こんな簡単にいくのかなと思いながら実行してみると案の定エラー。MySQL Connectorが必要とのこと。インストールする。

その後、証明書の部分を書き換えが必要とエラーが出たものの、素直に直して実行したところ、接続が成功。

成功した!!すごい!!

グラファナでも発火を確認!やった〜!

これをバックグラウンドで実行し続けて欲しいのだが。nohupで実行。

動いてはいるようだ。

同時刻にデータベースにちゃんと書き込みできている!成功では!

いや〜よかったよかった

これであとは、しばらく様子見て欠損値がどれくらい出るかの確認ですね〜スマメとお友達に慣れて嬉しいよ〜

先々は瞬間電力量以外も色々見られるようになりたいな〜というのと、毎分データ記録してても(多分大丈夫だと思うけど)TiDB Cloudの無料枠で収まるのだよねということの確認だけしておこう。おつかれさまでした!





いいなと思ったら応援しよう!

まかない
ご覧いただきありがとうございます。とても嬉しいです。