この記事では、ラズベリーパイ3とBME280モジュールで気温・湿度・大気圧の測定する方法をソースコード付きでまとめました。
BME280
BME280は、気温・湿度・大気圧を測ることができるセンサーです。
このセンサーは、I2C通信とSPI通信のどちらかを選択して計測したデータを送ることができます。
今回はI2C通信を使ってみます。
※ラズベリーパイ側で事前にI2C通信機能を有効化しておく必要があります。
| – | 関連記事 |
|---|---|
| 詳細 | ■【ラズベリーパイ3】I2C通信を有効化 |
また、以下のコマンドでpythonライブラリをインストールしておきます。
$ sudo apt-get install python-smbus
回路構成
ラズベリーパイとBME280モジュールを下記の表ように6本のジャンプワイヤーで接続しました。
接続構成
| ラズベリーパイ3 | BME280モジュール(HiLetgo) |
|---|---|
| 3.3V(11ピン) | VDD |
| 3.3V(17ピン) | CSB |
| GND(6ピン) | GND |
| GND(6ピン) | SD0 |
| SCL(5ピン) | SCL |
| SDA(3ピン) | SDA |
※スイッチサイエンスのBME280の場合は、BME280側のピンの名称が若干異なります。
使用機器
| 機器名 | 数量 |
|---|---|
| ラズベリーパイ3 | 1個 |
| ブレッドボード | 1個 |
| 温湿度・気圧センサモジュール BME280 (550円) | 1個 |
| ジャンパーワイヤ | 数本 |
※スイッチサイエンスのBME280モジュールは1600円くらいでした。
一方、HiLetgoが販売しているBME280モジュールは550円だったので今回はそちらを使ってみました。(要はんだ付け)
ソースコード(Python3)
サンプルプログラムのソースコードです。
| – | リンク |
|---|---|
| 関数版 | sample.py |
| クラス版 | bme280.py |
実行結果
サンプルプログラムの実行結果です。
Temp: 25.265137638919988 Humid: 50.16727337955698 Pressure: 1022.1794535049137
正常に作動しました。550円で気温湿度大気圧を測れるのはコスパが良いですね。
【参考文献】
Raspberry Pi + BME280モジュールで自動で温度・湿度・気圧を測定してグラフ化する
【関連記事】
ラズベリーパイ3で電子工作入門
Python入門 サンプル集

コメント
サイトのとおり、接続構成しても、うまく機動しません。
他のサイトの接続図に代えても、機動しない。
どのようにすればよいか、全くお手上げです。
解決策があれば、教えていただきたいです。
よろしくお願い致します。
※shimizu様
コメントありがとうございます。
I2C機能は有効にされていますでしょうか?
通りすがりに横やり失礼します。
ピンかジャンパのはんだづけがうまくいっていないとか、接続するピンが隣だったりとかの単純なことではないかなぁ、と個人的には思いましたが、もう少し詳しく状況を説明しないと管理者様も返答に困るのではないでしょうか?
I2C開通させる、ピンの番号を確認する、はんだの状態や接続状態を確認するなどどの部分は問題ないのか確認してここに書き出されてはいかがでしょうか?