デジタル百葉箱製作覚え書き

ラズベリーパイで教材づくり IOT百葉箱

BME280について

デジタル百葉箱のキモとなるパーツに、気温、湿度、気圧センサのBME280があります。
正確に言うとBME280を使ったモジュールです。
姉妹品にBMP280というのがあり、こちらは湿度センサがないタイプです。
これらのパーツを数個使ってみましたが、少なくとも気圧センサとしては非常に優秀です。
気温センサは気圧の温度補正用みたいなかんじですが、素人が使う温度計としては問題ないレベルらしいです。気になる人はしっかり調べてね。

KKHMF BME280 温度 センサー 湿度 センサー 気圧センサ 温湿度センサー ブレイクアウト Arduinoに対応
KKHMF BME280 温度 センサー 湿度 センサー 気圧センサ 温湿度センサー ブレイクアウト Arduinoに対応
Apple Trees E-commerce co., LT
BISS

アマゾンだと500~1,000円くらいで中国発送のものが手に入ります。私もこれを注文中です。中国発送だと安いけど時間がかかるのが難です。
これを待ってるとこのブログも中断してしまいます。


どうしようか考えてたら、思い出しました。BME280、ありました。
こちらはマルツオンラインというところから入手したものです。

私がデジタル百葉箱を作ろうとしたきっかけの一つです。
ラズパイマガジン2018年10月号に付属するIoTCAP基板用の部品セットなんですが、これにBME280が入ってました。


このキット、チップ状のパーツのはんだ付けは半端なく難しかったです。


で、このBME280を使ってとりあえず製作を続けようと思います。型番はME-BME280となっていました。3.3V対応です。ラズパイは本体にプルアップ抵抗が入ってるとのことで、何も考えず直結していきます。


その前に、昨日設定したラズパイカメラの定時撮影は、次のように変えました。
$ crontab -e
でエディタを開いて、最終行の1文字目を0にしました。
0 * * * * /home/pi/fsbmetest.sh


これで毎分撮影するのを、毎時(1時間に1回)の撮影に変更できました。
さっき確認したらちゃんと動作してます。0と*(アスタリスク)の間にはスペースがあります。これも私は最初わからず、悩みました。



続き。一度ラズパイの電源を切ってから、配線します。
ラズパイの初期設定で、I2Cを「有効」にしてあることを確認してくださいね。

ここからしばらく、次のサイトを丸パクリです。


配線については、こんな風になります。使用するリード線?は、両方ジャック?になってるのを、5本使います。この図、右上がかどになります。

BME280に接続した線は、次の通り。配線の色はお好みで。自分のための配色記録です。

  • SDOー黄色----Rpiの17番へ(I2Cアドレスを0x77にします)
  • CSBー使わない
  • SDAー緑色----Rpiの3番へ
  • SCLーオレンジ色ーRpiの5番へ
  • GNDー黒色----Rpiの9番へ
  • 3V3ー赤色----Rpiの1番へ


4番の5Vと6番のGNDには空冷ファンがつながってます。5V動作品なので。
SDOは、GNDにつなぐとI2Cアドレスが0x76になります。多くの記事ではこれが標準です。私はなぜか0x77で1号機を作ったので、これと同じにしますが、0x76にする人は今後気を付けて読み進めてください。
この配線の説明で、他の方の記事ではGPIOの番号だったり、PINの物理的な番号だったりして、わかりにくいです。下の写真も見て、よく確認して接続します。SDOの接続には注意、です。14番のGNDにつなぐと0x76です。下の写真は0x77です。


動作確認します。I2C関係のソフトをインストールします。

$ sudo apt-get update

$ sudo apt-get install i2c-tools

$ sudo apt-get install python-smbus

なんか、やる必要なかったみたい。


まあ気を取り直して。

$ i2cdetect -y 1


とやります。


やったぜ一発成功。私はアドレス0x77にしてます、再度念のため。0x76に設定している(SDOをGNDにつないでいる)場合は当然76が表示されます。


次。サンプルプログラムをダウンロードします。

$ git clone https://github.com/SWITCHSCIENCE/BME280.git

$ cd BME280/Python27/

$ python bme280_sample.py

あう。エラー。

$ nano bme280_sample.py

で、編集します。3行目
from smbus2  →from smbus
数字の2を削ります。
7行目
i2c_address = 0x76  →i2c_address = 0x77
数字を77にします。


さっきi2cdetectで76だった人は7行目そのままでいいです。っていうか変えないでください。
ctrl+o で保存して ctrl+xで終了して、もう一回。(上矢印を2回押すと出るはず)

$ python bme280_sample.py


やったね。気温18.13℃、気圧1014.01hPa、湿度41.42%
だそうです。で。


気温がわかってよかったねーで終わっている記事のなんと多いことか。(ちこちゃんふう)
上の方で紹介したからあげ氏の記事はここが圧倒的に違いました。これをデータ化してグラフ化するんです。見せ方って大事ですよね。
からあげ氏の記事の丸パクリ、次回に続けよ(なつぞらふう)