12
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ラズパイ+BME280でIoT環境センサー構築(その1)

Last updated at Posted at 2018-08-03

##概要
Raspberry PiとスイッチサイエンスのBME280モジュールを使用して、屋外の気温・湿度・気圧をモニターするIoTセンサーを構築する。Raspberry PiにWEBサーバーを入れ、ブラウザでグラフ化して表示できるようにする。スイッチサイエンスがサンプルコードを公開しているので流用する。
※はんだ付けが面倒なので、ピンヘッダー実装済みを使いました。
※Raspberry PiはすべてSSHからの操作です。SSHは接続できる前提とします。

いろんな方が同じ記事を書いていて今更感あるけど、備忘録として。
実際は半年くらい使っていますが、Pi3からZero Wに置き換えたついでで、手順をメモします。

##BME280をRaspberry Piに接続する
BME280はBOSHのセンサーICで、1チップで温度、湿度、気圧が測定できます。詳細はメーカーのデータシートを確認してください。また、センサーモジュールの回路図やデータシートはスイッチサイエンスのWEBからダウンロードできます。

###1.Raspberry Piとの接続
I2Cなのでデータ(SDI)とCLK(SCK)、電源(Vio)とGND(GND)のみつなげばいいはずですが、WEBページみるとI2Cアドレス設定のためにSDOをつなぐ必要があります。私は、GNDにつなぎました。

I2Cアドレスの設定方法
I2Cアドレスは、
SDO端子をGNDにつなぐと0x76
SDO端子をVioにつなぐと0x77
になります。必ずどちらかにつないでください。

ブレッドボード上でSDOとGNDを接続し、4本をRaspberry Piに接続。写真じゃ配線は見えないけど。
キャプチャ.JPG
基板のロットによって、PIN配置が違うようなので、古いblog等の情報は危険。
回路図見ながら配線するのが安全。

###2.I2Cの有効化
まず、必要なライブラリを入れる。

sudo apt update
sudo apt -y upgrade    (必要に応じて)
sudo apt install -y i2c-tools

ハードウエアの設定画面を表示

sudo raspi-config

設定画面が表示されるので、Interfacing Optionsを選択(Enter)。これもOSのバージョンによってメニュー番号が変わることがあるので項目名で選ぶこと。
キャプチャ3.JPG
I2Cを選択。
キャプチャ4.JPG
有効にするか聞かれるので、はいを選択。
キャプチャ5.JPG
古いOSだと自動起動にするか聞かれたようですが、特に聞かれず勝手に自動起動になります。
キャプチャ6.JPG
最初の画面に戻るのでFinishで終了。

再起動する。

###3.動作確認
SDO端子をGNDにつないだので、下記コマンドで0x76が読めればOK。

sudo i2cdetect -y 1

キャプチャ7.JPG

###4.サンプルコードの実行
smbus2をインストールする。
スイッチサイエンスのライブラリをダウンロードして準備する。

sudo apt install -y python-smbus
sudo pip install smbus2

wget https://github.com/SWITCHSCIENCE/BME280/archive/master.zip
unzip master.zip
cd BME280-master/Python27

動作確認。

sudo python ./bme280_sample.py

キャプチャ8.JPG
とりあえず動いたが、自動実行するにあたり、root権限ではなくユーザー権限で実行できるようにする必要がある。そのためにはI2Cを動かしているグループにユーザーを参加させればよい。
まず、I2CのデバイスIDを確認する。

sudo i2cdetect 1

キャプチャ9.JPG
yでもnでもいいので抜ける。
/dev/i2c-1なので、グループIDを確認する。

ls -la /dev/i2c-1

キャプチャ10.JPG
グループ名はi2cとわかったので、ユーザーpiをi2cに参加させる。

sudo usermod -aG i2c pi

再起動し、所属グループを確認する。

groups

キャプチャ11.JPG
i2cがあればよい。他は使用環境により異なります。
ユーザー権限でサンプルコードを実行できることを確認。

python bme280_sample.py

キャプチャ12.JPG

とりあえずここまで。
ラズパイ+BME280でIoT環境センサー構築(その2)でWEBサーバーを作り、ブラウザで表示できるようにします。

##参考

12
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?