Raspberry Pi3とBME280(温湿度気圧センサ)で部屋の温度を測定する

Pocket



最近は暇さえあればRaspberry Pi3をいじっているわけですが、うまい具合にLチカができたので、調子に乗ってBME280(温湿度気圧モジュール)を使って部屋の情報の取得に挑戦したいと思います。
と言っても、私は半田を持っていないので配線関係はブレッドボードを使い、BME280はスイッチサイエンスのピンヘッダ実装済みのものを使います。

・・・なんて意気込んでみたものの、私のようなドシロウトにはどんな部品が必要かすらさっぱりわからず、結果的に不要なものまでいくつも買ってしまいましたので、参考までに必要な材料を以下にメモしておきますね。
ちなみに私が探した限り半田付けがいらない温湿度気圧モジュールはスイッチサイエンスでしか販売していないようですので、一箇所で全て購入できるようにリンク先は全てスイッチサイエンスのものになっています。

材料

  1. BME280(温湿度気圧モジュール)ピンヘッダ実装済
  2. 普通のブレッドボード
  3. 普通のジャンパワイヤ(オス~メス)(使用するのは6本程度)

他にも何かする予定がある場合は、ジャンパワイヤはこちら「ジャンパワイヤ 50本セット」をお勧めします。

Ubuntu MATEでi2cを有効にするには

部品が手元に届いたらすぐに使い始めたいところではありますが、i2cを有効にするにはこちらの情報にある通り[/boot/config.txt]や[/etc/modules]を編集し、[i2c-tools]をインストールする必要があります。
まずは以下コマンドで[/boot/config.txt]を開きます。

sudo vi /boot/config.txt

viで[/boot/config.txt]を開いたら

:1073

で1073行目にジャンプして項目[#dtparam=i2c_arm=off]を[dtparam=i2c_arm=on]に変更して上書き保存します。

続いて、以下コマンドで[/etc/modules-load.d/modules.conf]を開きます。

sudo vi /etc/modules-load.d/modules.conf

先ほど同様viで[/etc/modules-load.d/modules.conf]が開いたら、最終行に以下を追記して上書き保存します。

i2c-dev

2つのファイルの更新が終わったら端末上で以下コマンドを実行して[i2c-tools]をインストール(インストールされてるかもしれません)します。(ついでに後で実行するサンプルスクリプトが参照するpython-smbusも)
インストールが完了したらRaspberry Pi3を再起動します。

sudo apt-get install i2c-tools python-smbus

Raspberry Pi3の再起動が完了したら端末上で以下コマンドを実行してi2cが有効になっているか確認します。

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: — — — — — — — —

BME280の配線と接続テスト

Raspberry Pi3の設定が済んだら配線ですが、さっぱりわからないのでこちらを参考にさせていただきました。配線がすんだら先ほどのi2cdetectを再度実行します。

sudo i2cdetect -y 1

コマンド実行の結果、先ほどとは違いこんな結果が帰ってくればBME280の配線と接続テストは完了です。

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 —

サンプルコードの実行

これで準備が整いましたので、スイッチサイエンスがGitHub上で公開しているサンプルコードをコピペして保存、root権限で実行してみましょう。

仮にサンプルコードを[~/Documents/raspberrypi/bme280.py]として保存した場合、実行するコマンドは以下になります。

sudo python ~/Documents/raspberrypi/bme280.py

我が家の初測定の結果です。
若干気温が高めに出ているような気がしますが、こんな感じで結果が帰ってくればOKです。
ちなみに、サンプルコードの120行からの設定値の意味は、スイッチサイエンスのBME280搭載 温湿度・気圧センサモジュールの使い方のページを確認してみてください。なお、webページの方は2進数で値が記載されていますが、サンプルコードに設定する際は10進数です(たぶん)ので気をつけてください。

temp : 25.16 ℃
pressure : 996.36 hPa
hum : 54.82 %

次回は照度センサを使ってみようかな

今回はBME280で温度・湿度・気圧を読み取ってみたわけですが、様々な方が様々な情報をweb上に残しておいてくれているおかげでなんとかうまくいきました。
次回は照度センサで明るさを取得してみたいと思います。
それにしても元々作りたかったものを作るにはもう少し手を動かさないとダメっぽいなぁ。

コメントを残す

メールアドレスが公開されることはありません。