2015年4月18日

BME280を使ってRaspberry Pi 2から温度/湿度/気圧を取得しようとした

2015-07-06 取得することができました

”取得してみた”ではなく、”取得しようとした”という事でまだデータは取れていないのですが(汗)、今日はRaspberry Pi 2にお仕事をさせようと、スイッチサイエンスさんから最近発売された温湿度・気圧センサーモジュール「BME280」を使ってみる事にしました。

前に”Raspberry Piに温度/気圧センサーを取り付ける”で使ったモジュールはBMP085というやつで、これはI2C接続と公開されているプログラムでサクッと温度と気圧が取得でき、現在も実家でモリモリ動いているのですが、今回のBME280では温度と気圧に加えて湿度も取得できるという事で、もうすぐやってくる梅雨の時期とか観測できそうとRaspberry Pi 2で使えるかどうかを調査する事もなく勢いで買ってみた次第です。
チップ自体はBMP085と同じくらい小さいのですが、ジャンパーピンの半田付けは自分でやる必要があり、ちょっと曲がってしまいつつもなんとか半田付け完了。

じゃあ早速I2C接続でデータ取得だ!と思ってスイッチサイエンスさんの使い方ページを見たところ、何やら抵抗が必要になるらしい。。あいにく手元になかったので、夕方急いで千石電商で1/4W抵抗10KΩを2つと追加のジャンパー線を買ってきました。
(でも色の順番を見ると書いてあるのと違う気がする。。)

ブレッドボード上の接続は先のページ(Arduino Unoですが)に従って接続。最初3.3VとGNDを逆にしてしまい、Rasperry Pi 2が落ちる現象に遭遇して冷や汗。テストする習慣を身につけてないと。

気を取り直してI2C接続のコマンドを実行したところ、無事認識とレジスタ値の取得は成功。ただ、使い方ページを見るとレジスタには結果の値が入っているのではなく、基準値?の他に補正値が入っており、それを使って計算する必要があるようです。
# 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 --                         

# レジスタ値を全て取得
$ sudo i2cdump -y 1 0x76 b
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
80: 84 70 89 8f 60 05 f0 06 4b 6f 6c 68 32 00 8f 90    ?p??`???Kolh2.??
90: ee d5 d0 0b 14 1c f2 ff f9 ff ac 26 0a d8 bd 10    ???????.?.?&????
a0: 00 4b 3d 00 00 00 00 00 00 00 00 00 33 00 00 c0    .K=.........3..?
b0: 00 54 00 00 00 00 60 02 00 01 ff ff 1f 60 03 00    .T....`?.?..?`?.
c0: 00 00 00 ff 00 00 00 00 00 00 00 00 00 00 00 00    ................
d0: 60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    `...............
e0: 00 60 01 00 15 08 00 1e 68 41 ff ff ff ff ff ff    .`?.??.?hA......
f0: ff 00 00 00 00 00 00 80 00 00 80 00 00 80 00 80    .......?..?..?.?
サンプルスケッチや公式のソースを見てみたものの、気軽に移植できそうではなかったので今日はここまで。。有志の方がRasPi対応版ソースを公開される事を信じて待つ事にしたいと思います。