Raspberry Pi に BME280 モジュールを接続して温度、湿度、気圧を計測する

BME280 モジュールを Raspberry Pi に接続して温度、湿度、気圧を計測したときのメモです。
BME280 はスイッチサイエンスからピンがはんだ付けされていないものを購入しました。

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

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

こちらの Qiita 記事を参考にしています、接続もこの通りです。

まず i2c 関係のツールが入っていないのでこれと、smbus をインストールします。

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

起動時にモジュールを読み込めるように設定を追加します。

$ sudo vi /boot/config.txt
device_tree=bcm2708-rpi-b.dtb
device_tree_param=i2c1=on
device_tree_param=spi=on

最後に追加すれば大丈夫っぽいです。
再起動してくればモジュールが読まれます。

これでモジュールにアクセスできるはずです。
i2cdetect でアドレスを確認すると、0x76 を使っています。

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

スイッチサイエンスで公開しているスクリプトで各種データを取り出せるので取ってきます。

$ mkdir ~/src/ss
$ cd ss
$ wget https://raw.githubusercontent.com/SWITCHSCIENCE/BME280/master/Python27/bme280_sample.py

BME280 にアクセスできるアドレスが 0x76 でなかった場合はダウンロードしたスクリプトの7行目に書かれたアドレスを変更すれば大丈夫な気がします。

i2c_address = 0x76

sudo でスクリプトを実行するとセンサーで取得した値が返ってきます。

$ sudo python bme280_sample.py
temp : 26.36  ℃
pressure : 1007.30 hPa
hum :  62.44 %

ファイルサーバーの隣にセンサーを設定しています。