気温、湿度、気圧を測ることことができるBME280をRaspberry Piに入れたHome Assistantで扱えるようにしました。
下記の図のようなグラフを取得できる他、気温、湿度、気圧をトリガーにアクションをさせることも可能です。
用意するもの
パソコン(microSDカードを接続できるもの)
Raspberry Pi(Home Assistantが動くならラズパイでなくても?)
BME280(湿度のないBMP280というのもある)
ESP32(WiFiを使うのでESP8266でもいいのかも?)
大まかな手順
1. Raspberry PiにHome Assistantをインストール
2. BME280とESP32を接続する
3. Home AssistantにESPHomeというアドオンを加える
4. ESPHomeからESP32へ書込みをする
5. Home AssistantでBME280を表示させる
詳細な手順
1. Raspberry PiにHome Assistantをインストール
パソコンにRaspberry Pi Imagerといアプリをインストールし、microSDカードにHome Assistantを書き込む。Home Assistantは、OS > Other specific-purpose OS > Home assistant and home automation > Home Assistant の中にあります。
Home Assistantを起動させます。Raspberry PiにHome Assistantを書き込んだSDカードを刺して電源をいれると、インストールが進んでいきます。
インストールは5分ぐらいだったかな? 完了すると下図のようになります。
PCのブラウザから、homeassistant.local:8123へアクセスし、Home Assistantの初期設定をします。
2. BME280とESP32を接続する
配線方法は下図となります。
BME280 ESP32
-------------------
VCC ---> 3.3V
GND ---> GND
SDA ---> GPIO21
SCL ---> GPIO22
あとSDOをGNDに繋ぐと、センサーのI2Cアドレスが0x76となり、SDOをVCCに繋ぐと0x77になります。複数設置する場合に使用します。SDOに何も繋がない場合のアドレスは0x76です。
センサーとESP32を接続したら、ESP32をラズパイのUSBポートに接続しておきます。
3. Home Assistantにアドオン「ESPHome」をインストール
設定>アドオン>ESPHomeへ。
インストールすると以下の画面のようになります。
4. ESPHomeからESP32へ書込みをする
「+NEW DEVICE」からESP32の追加を行います。初回のデバイスの登録時は、Wi-Fiの情報も入力することになります。名前は他にもESP32等を追加する予定なので、センサーの名前「BME280」としています。
NEXTを押すと、次の画面が表示されます。
しかし、この状態はESP32を接続しただけで、接続したセンサーの情報が記述されていないので、一旦SKIPを押します。
すると、まだOFF LINEですが、追加したESP32(名前はBME280)が表示されます。EDITで編集画面へ入ると次の状態に。
このコードの後ろに、センサーを動作させる次のコードを追加します。
i2c:
sda: 21
scl: 22
sensor:
- platform: bme280_i2c
temperature:
name: "Temperature"
id: bme_temp
pressure:
name: "Pressure"
id: bme_pressure
humidity:
name: "Humidity"
id: bme_humidity
address: 0x76
update_interval: 300s
追加したらインストールを実行。すると、ESP32の接続方法を聞いてきます。ラズパイのUSBポートに接続しているので、3段目の「Plug into the computer running ESPHome Dashboard」を選びます。
インストールが始まります。
前回のインストールはすんなり終わったのですが、今回は途中で2回も止まりました。途中で止まった場合、しばらくすると上記のように「RETRY」が表示され、途中から再度インストールが始まり、なんとか完了すると思います。
インストールが完了すると、そのままセンサーの計測が始まります。ここまで出来たら一旦STOPを押して元の画面へ戻ります。OFF LINEだったセンサーがON LINEに変わっています。
これでセンサーは使える状態になったので、ラズパイから外しUSB電源などを付け、計測したい場所へ設置してください。基本的に電源が入れば動作し始めるはずですが、計測できていない場合はリセットボタンを押してみてください。
5. Home AssistantでBME280を表示させる
Home Assistantの設定>デバイスとサービスへ行くと、BME280が表示されているはずです。
設定を押すと、追加しますか?となり、成功すると、設置エリアを聞いてきます。
以上で、オーバービューに追加されます。