注意書き

本サイトでは、アフィリエイト広告およびGoogleアドセンスを利用しています。

スマートプラグミニとPico Wで作るワットチェッカー

ハードウェア

SwitchBot スマートプラグミニと Raspberry Pi Pico W を組み合わせて、お手軽なワットチェッカーを作成しました。両者合わせて、約3000円のコストです。

スポンサーリンク

デバイス

Raspberry Pi Pico W

Raspberry Pi Pico W に、値の取得や可視化を担当させます。最近になって Wi-Fi および Bluetooth の両対応版のファームウェアが提供されるようになったので実現できました。

created by Rinker
Raspberrypi
¥1,350 (2023/11/22 05:46:05時点 Amazon調べ-詳細)

SwitchBot スマートプラグミニ

本来はアレクサから操作したり、 SwitchBot の提供する管理API やアプリケーションで操作するのですが、Bluetooth でも情報を得ることができるようになったのでこのデバイスを選択しました。

システムの構成

Raspberry Pi Pico W でBluetoothというと、多くの場面でペリフェラル側で紹介されています。今回はデバイスに接続する側、セントラルになるので、この点に注意が必要です。また Pico W で Webサーバーを動かし、センサー情報をブラウザに向けて提供するという役割を持ちます。

Bluetooth での読み取りについて

同じようなことを思う方が既にいて、Bluetooth での読み取りについて参考にさせてもらいました。

SwitchBot プラグミニの消費電力を取得しZabbixでグラフ化 | KUSONEKOの見る世界
LinuxサーバでBluetoothを使用し、SwitchBotプラグミニに繋いだエアコンの消費電力を取得しました。その情報からZabbixでグラフを作ってみました。

注意点として、Raspberry Pi Pico Wでは MicroPython を使用していて、Bluetoothのライブラリ利用が制限がありました。 ubluetooh モジュールを使用して実装する必要があります。

このモジュールでセントラルとして動かすためには、下記のページを参考にしました。

【BLE】RaspberryPi Pico W MicroPythonでBluetoothを使う方法【チュートリアル セントラル編】
RaspberryPi Pico WでMicroPythonを使って、Bluetooth(BLE)のセントラルを作る方法を解説します。 コードはPico Wの公式の記事で紹介されている、公式チュートリアルのものを使用、より詳細かつ、分かりやすくした内容を、日本語で解説していきます。 チュートリアルには以下の3つのコード...

グラフ化

あまり見栄えがするものではないですが、こんな感じで動いています。グラフはリアルタイムで更新されます。ここでは Raspberry Pi 4 を電源投入して、ベンチマークを動かすというところをやって変動を観測していました。ベンチマーク中は 4.5W 付近になるようですね。
※ アニメ画像は早回しをしているので、実時間ではない点に注意してください

プログラムについて

今回作成したものは GitHub にて公開しています。作りが甘いのでそのまま使える場面は少ないかもしれませんが、目的に合わせて作りこむベースとするくらいはできるかなと思っています。

GitHub - techmadot/mini-watt-checker
Contribute to techmadot/mini-watt-checker development by creating an account on GitHub.

Webサーバーの機能には、 Microdot を使用しています。Flask みたいな感じで扱える点は大変よかったです。また WebSocket も使えるので、センサーの値を表示するようなリアルタイム性があるものに使える点もよいです。

今回の背景について

ここからは余談です。ワットチェッカーが欲しいと思ったのは新しいPCを組み立てて、その消費電力をチェックしたいと思ったからです。BIOSなどでパラメーターをいじってみて様子を観察したかったのです。

スマホアプリを使えば消費電力の確認ができますし、WebからもAPIで情報をとることができるようです。それらを使えば簡単に消費電力のモニタリングができるのに、BluetoothやらWebサーバーやらをコーディングするという大変な道を進んできました。

理由は SwitchBot スマートプラグミニを Wi-Fi 接続して、外部からのアクセス可能なようにはしたくなかった・・・という点です。ただこれだけです。この機材を自宅以外に持ち歩いて、検証デバイスにつないで消費電力を測る、ということも簡単にできるといいなぁという思いもありました。

また、Raspberry Pi を使えば Bluetoothのモジュールもいくつかを選べますし、そもそもWebサーバの機能も簡単に実現できます。なのに、Pico-W を選んだのはコンパクトさです。あとは、若干の好奇心です。

手間のことを考えると、グラフもちゃんと書ける、リアルタイムで処理できるワットチェッカーを選んで購入するほうが一番近道ですが、お安く済ませるにはこういう方法もあるということで、参考になれば幸いです。

コメント

タイトルとURLをコピーしました