Groveコネクタとi2cハブを使ってi2cセンサを接続してみました。こうすることによって接続を間違えたり、見た目が悪くなったりしないように出来ると思います。
まずここでのGroveコネクタとはSeeed社の規格のことです。共通の規格でセンサ類の接続が容易になるということと理解しています。このGroveコネクタを搭載している開発ボードはM5Stack系などいろいろとあると思います。今回はi2cのセンサ2個をGroveで接続します。私自身の気持ちとしては「Grove対応のi2cセンサを自作する」ということです。ここではソフトウェアエンジニアの私がこのように作ってみましたということでご覧頂ければと思います。
ここからの画像はそれぞれクリックで拡大します。
Groveのコネクタとi2cハブ
袋に入った状態で以下です。電子部品を扱っているショップで入手出来ます。
L型ヘッダーソケット 1列×4P
センサについているピンヘッダではなくこのヘッダソケットをはんだ付けしました。
温湿度センサと光量(照度)センサを接続した状態
i2cハブからはRaspberry Piに接続するためにジャンパワイヤで延長しています。
温湿度センサBME280
ここでは以下の製品を使用しました。実際に動作したのですが何とも表記があいまいです。商品名にSPIとありますが、4ピンのI2C接続です。あと電圧ですがどうも5Vでないと動作しないようです。また基板にBMP280の表記もありますが、BME280のライブラリでデータが取得出来ます。GAOHOUとは深センの企業のようです。
小さくて4ピン接続なのでこれを使ってみました。
実際の商品です。
L型ヘッダーソケットをはんだ付けしました。
光量(照度)センサ BH1750
これもL型ヘッダーソケットをはんだ付けしました。
Raspberry Piとの接続
Raspberry PiのI2cと5V、GNDに接続します。何ともまとまりはないですが、以下のようになりました。Raspberry Piに重ねているのは、前回の電源管理ボードです。
センサ部分拡大です。
コマンドでI2cのアドレスを確認します。”i2cdetect -y 1″ を実行します。温湿度センサのアドレス(0x76)と光量センサのアドレス(0x23)が確認出来ました。(UUは電源管理ボードのRTCだと思います。)
温湿度データの取得
実際に温湿度を取得します。このサイトで何回も利用していますがスイッチサイエンスさんの以下のライブラリを利用します。以下のようにPython2.7で実行してデータが取得出来ました。
SWITCHSCIENCE/BME280 GitHub
光量(照度)データの取得
ここでのプログラムは以下を利用させて頂きました。ありがとうございます。
⑦Raspberry Pi3で照射量を取得する(BH1750FVI) – Qiita
結果は以下です。
以上で接続からデータの取得まで出来ました。見た目やまとまりという点ではまだまだかもしれないですが、今回はここまでとします。
ケース関連で少し補足
Grove Wrapperという製品があってこれを利用すれば今回のI2cハブも固定したり、安定させることが出来ると思います。実際にハブを設置した状態が以下です。
これはいいなと思ったのですが国内で購入するとなると以下のマルツさんしか見つかりませんでした。しかも在庫なしで取り寄せになるようです。私も実際に一ヶ月ほど待ったと思います。(それ程は売れないものなのでしょうか。)
Grove – Blue Wrapper 1*1(4 PCS pack)【110070022】
それから、センサー部分のケースとしてはもちろんこれも自作すればいいのかもしれないですが、以下のタカチのケース(SW-30)なら加工は必要ですが今回のセンサ部分なら収まりそうです。参考までに。