BME280をhomebridgeに載せてホームアプリに温度・湿度を表示させる
Raspberry Piを購入して、homebridgeを実装した当初から、温度・湿度もホームアプリに表示できるようにしたいな、と考えていました。
通常、ホームアプリに部屋の温度と湿度を表示させようと思うと、homekitに対応したElgatoなどの製品を購入するのが簡単でしょう。
https://amzn.to/2rrtWZT
手元にRaspberry Piがあること、センサーを単品で買う方が安いことから、homebridgeでセンサーの表示をすることを目指し、うまくいかなかったときはまたその時に考えよう、という方針を固めました。
用意したパーツやワイヤは下記のとおりです。
- BME280搭載 温湿度・気圧センサモジュール( https://amzn.to/2FMP3A9 )
- ブレッドボード
- ブレッドボード用ジャンパワイヤ
- Raspberry Piとブレッドボード接続用ジャンパワイヤ
また、今回参考にさせていただいたサイトは下記のとおりです。
qiita.com
karaage.hatenadiary.jp
www.instructables.com
1.センサーとRaspberry Piを配線する
まずは上記のセンサーをブレッドボードに配置し、ワイヤでRaspberry Piと接続します。
(その前にBME280のピンヘッダを半田付けする必要があります。半田ごてがない場合や、半田付けが苦手な人向けに半田付け済みの製品もあります。 https://amzn.to/2G4MXf1 )
接続は参考先のサイトに従い、下記のように接続しました。
2.センサーの値を取得できるように設定する
I2Cを有効にするため、raspi-configを実行します。
$ sudo raspi-config
メニューから"5 Interfacing Options"を選択し、"P5 I2C"で Enable にします。
Enable にしたら必要なツールをインストールします。
$ sudo apt-get install i2c-tools $ sudo apt-get install python-smbus
1.で接続したセンサーの確認をします。
$ sudo i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- 76 --
上記のように 0x76 になっていれば問題ありません。上記のように表示されない場合は接続を確認してください。
3.センサーの動作確認
今回の使ったBME280の販売元のスイッチサイエンスさんがサンプルのPythonコードを作ってくれているので、適当なディレクトリにダウンロードします。
$ mkdir ~/python_apps/switchsience $ cd !$ $ wget https://raw.githubusercontent.com/SWITCHSCIENCE/BME280/master/Python27/bme280_sample.py
サンプルコードを実行してセンサーの動作確認をします。
$ chmod 755 bme280_sample.py $ sudo python bme280_sample.py temp : 20.47 ℃ pressure : 1016.69 hPa hum : 64.87 %
温度、気圧、湿度が湿度が取得できました。
4.homebridgeの設定
homebridgeを起動しているユーザーをi2cグループに追加します。
$ usermod -aG i2c [ユーザー名]
本ブログの通り設定している場合、ユーザー名は homebridge になります。
yorino.hatenablog.com
BME280用のhomebridgeプラグインをインストールします。
$ sudo npm install -g homebridge-bme280 --unsafe-perm
エラーが出た場合は下記を実行します。
$ sudo su - $ npm install -g homebridge-bme280 --unsafe-perm
プラグインをインストールしたら、configファイルを編集します。
$ sudo vim /var/homebridge/config.json { "bridge": { "name": "Homebridge", "username": "xx:xx:xx:xx:xx:xx", "port": 51826, "pin": "031-45-154" }, "accessories": [ { ・ ・ ・ }, { "accessory": "BME280", "name": "Sensor", "name_temperature": "Temperature", "name_humidity": "Humidity", "options": { "i2cBusNo": 1, "i2cAddress": "0x76" } } ] }
homebridgeを再起動します。
$ sudo systemctl restart homebridge
iPhoneのホームアプリに温度と湿度が表示されていることを確認します。
※ホームアプリでは気圧は表示されません。
設定は以上です。
お疲れ様でした。