IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

Linuxでブラ散歩

CTC 教育サービス

 [IT研修]注目キーワード   OpenStack  OpenFlow/SDN  情報セキュリティ  Python  システムトラブルシュート 

第2回 ラズパイで気温を測定してみよう (小澤昌樹) 2017年3月

はじめに

みなさん、こんにちは。株式会社シオラボの小澤です。
前回より始まりましたコラム「Linuxでブラ散歩」の第2号です。

今回は、前回セットアップしたラズパイに、温湿度・気圧センサーを接続して気温、湿度、気圧を測定してみたいと思います。温湿度・気圧センサーには、スイッチサイエンスで販売されているBME280を搭載した温湿度・気圧センサモジュールを使用します。

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研修]注目キーワード   OpenStack  OpenFlow/SDN  情報セキュリティ  Python  システムトラブルシュート