CTC 教育サービス
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes
みなさん、こんにちは。株式会社シオラボの小澤です。
前回より始まりましたコラム「Linuxでブラ散歩」の第2号です。
今回は、前回セットアップしたラズパイに、温湿度・気圧センサーを接続して気温、湿度、気圧を測定してみたいと思います。温湿度・気圧センサーには、スイッチサイエンスで販売されているBME280を搭載した温湿度・気圧センサモジュールを使用します。
このセンサモジュールは、1チップで温度と湿度、気圧の3つの環境情報を測定できる優れものです。センサモジュールの通信方法はI2CかSPI。今回はI2C通信を使うことにします。
通信方式のI2C、SPIとは、同期シリアル通信の規格のことで、RS-232Cなどでの非同期シリアル通信にくらべて高速な通信方式です。ただし、通信における伝送可能距離が短いため、基板内や基板間といったところで使われるのが主です。
なお、I2C通信ではプルアップ抵抗を必要としますが、今回使用するセンサモジュールには実装されていません。ただし、ラズパイの基板上には既にI2Cのプルアップ抵抗が実装されていますので、ラズパイを使う限りではあまり気にしなくてもよいです。
早速、ラズパイとセンサモジュールを接続してみましょう。接続にはブレッドボードを介して接続する方法が一般的ですが、今回はメス・メスのジャンパーケーブルを使用して、センサモジュールとラズパイを直結することにします。
| ケーブル | BME280 | ラズパイ |
|:----|:-------|:---------------|
| 赤 | Vio | 1pin(3.3V) |
| 橙 | GND | 6pin(GND) |
| 紫 | CSB | 17pin(3.3V) |
| 黄 | SDI | 3pin(SDA) |
| 青 | SCK | 5pin(SCL) |
| 緑 | SDO | 14pin(GND) |
ラズパイとセンサモジュールが接続できたら、ラズパイを起動します。また、パッケージなどをインストールしましょう。
1. ラズパイでのI2Cを有効にします。
ラズパイの「設定」画面を開き、「I2C」項目を「有効」にします。
2. 必要なパッケージをインストールします。
$ sudo apt-get update $ sudo apt-get install i2c-tools python-smbus
`i2c-tools` はI2Cデバイス(ここではセンサモジュール)へアクセスするためのパッケージ、 `python-smbus` は python でI2Cを使うためのパッケージです。
3. `i2cdetect` コマンドを発行して、センサモジュールが正しく接続されているか確認します。
正常に接続されている場合は、以下のように `0x76` が出現します。表示されない場合は接続を再度確認しましょう。
$ sudo i2cdetect 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 --
4. サンプルプログラムを clone して、実行してみましょう。
今回のセンサモジュールを制御するプログラムは、スイッチサイエンスのリポジトリで公開されていますので、cloneします。
$ git clone https://github.com/SWITCHSCIENCE/BME280.git
clone できたら実行してみましょう。以下のように表示されると思います。
$ python BME280/Python27/bme280_sample.py temp : 24.74 ℃ pressure : 936.42 hPa hum : 26.42 %
5. サンプルプログラムを参考に、定期的に測定し続けると、以下のようにグラフ化することもできます。このグラフはオフィスの気温、湿度、気圧を測定したものです。稼働している9時~18時に変化する様子がわかりますね。
今回は、ラズパイにセンサモジュールを接続し、気温、湿度、気圧を測定してみました。ラズパイに接続できるセンサモジュールは、この他にも様々なものがあります。試してみると楽しいですね。
それでは、また!
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes