BLOGTIMES
2017/01/02

Raspberry Pi 2で温度・湿度・気圧を測る

  raspberrypi  slack 
このエントリーをはてなブックマークに追加

BME280搭載 温湿度・気圧センサモジュール

先日、I2Cを使って Raspberry Pi 2 から温湿度・気圧を計測できるようにしたらなかなか面白かったので、忘れないうちにやり方をメモ。

組み込み的な物は専門じゃないので避けていたのですが、ある方に「温度くらいなら I2C 使えばすぐですよ!ハードウェアの知識いらないです!」と言われたので試してみたらあっという間にできてしまったのでびっくりしました。結局一番時間がかかったのはピンの半田付けと結線でした。

以下、構築メモ。

必要な物

とりあえずセンサーがないと始まりません。今回使ったのは秋月の BME280使用 温湿度・気圧センサモジュールキット。ピンアサイン等に気をつければ BME280 が載っている他社のキットでも基本的に手順は同じだろうと思います。

あとはブレッドボードとか、半田ごてとか、ニッパーとか、適当なワイヤーとかの電子工作用の工具が必要です。

センサーと Raspberry Pi をつなぐ

説明書に従ってピンヘッダを半田付けし、I2C を有効化するために J3 をはんだでジャンパしておきます。今回のセンサモジュールからは6本のピンが出ていますが、これを Raspberry Pi の GPIO のピンアサインに従って以下のように結線を行います。

BME280 RaspberryPi2 1 VDD → 1番ピン 2 GND → 6番ピン 3 (使わない) 4 SDA → 5番ピン 5 GND → 6番ピン 6 SCL → 3番ピン

ピンアサインの確認は以下のサイトがグラフィカルでわかりやすいと思います。

モジュールと Raspberry Pi を通信させる

まず、Raspberry Pi の I2C を有効化します。

  • sudo raspi-config を実行
  • 表示された画面の [5 Interfacing Options] を選択 → [P5 I2C] を選択
  • [Would you like the ARM I2C interface to be enabled?] と聞かれるので <はい> を選択
  • [The ARM I2C interface is enabled] と表示されるので <了解> を選択

終了したら lsmodi2c_dev, i2c_bcm2708 があるかを確認しておきます。

次に、必要なツール群を apt でインストール。

sudo apt-get install i2c-tools sudo apt-get python-smbus

問題なくできていれば、以下のコマンドを実行すると 76 という数字が表示されるのが確認できるはずです。

$ 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 --

センサーから値を取得してみる

センサーから値を取得するためにスイッチサイエンスが公開している SWITCHSCIENCE/BME280 を使います。必要になるのは bme_280_sample.py だけですが、最新版だと smbus2 が必要になってしまっているので、smbus で実装されている旧バージョンを使用します。

これを wget などでダウンロードして実行すれば、温湿度、気圧が取得できます。
サンプルプログラムの中身は簡単なので必要に応じてカスタマイズすれば良いと思います。

$ wget "https://raw.githubusercontent.com/SWITCHSCIENCE/BME280/a43306ece7e17f3009748599e1ca4d0160729559/Python27/bme280_sample.py" $ sudo python bme280_sample.py temp : 14.27 ℃ pressure : 1011.27 hPa hum : 35.30 %

僕は Slack に自動投稿するようにしてみました。
Slack による温室度通知 - Raspberry Pi 2で温度・湿度・気圧を測る


    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/9052
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン