いよいよハードウェアの製作に入りましょう。ただし、今回使うセンサーモジュールのAE-BME280は半完成品になっていて、基板とコネクターをハンダ付けする必要があります。基板は熱に弱いので、注意してハンダ付けをしてください。
無事ハンダ付けが終わったら、まずはブレッドボードで動作を確認してみましょう。利用するセンサーモジュールは3.3Vで駆動するので、これの「VDO」端子をラズパイのGPIO1番ピンにつなぎます。
ラズパイで、I2C用に用意されているのは3番ピンと5番ピン。3番ピンの「SDA」にセンサーモジュールの「SDI」、5番ピンの「SCL」にモジュールの「SCK」をつなぎます。
センサーモジュールの残りの端子ですが、「GND」と「SDO」はGPIOの9番ピン「GND」につないでおきましょう。つなぐと分かりますが、今回はGPIOに向かって左側、上から4本のピンを使うことになります。これでハードウェアの準備は完了です。
I2Cで認識をしているか、「i2cdetect」というコマンドを入力して調べます。
$ sudo i2cdetect -y 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 --
この表示が出れば「0x76」で接続されていますので、無事認識されたことになります。この表示がでない場合は、接続をもう一度確認してください。
では次の作業に移ります。実際にBME280を扱うための方法もいろいろとありますが、今回はPythonで動くプログラムを使ってデータを収集します。電子部品メーカーのスイッチサイエンスにサンプルコードが掲載されていますので、そちらを使うことにします。
まずは適当な場所にディレクトリを作成してダウンロードしましょう。ここでは「BME280」というディレクトリを作っていますが、名前は何でも構いません。「mkdir」(make directoryの意味)コマンドで作成します。
$ mkdir BME280 $ cd BME280 $ wget https://raw.githubusercontent.com/SWITCHSCIENCE/BME280/master/Python27/bme280_sample.py
なおこのサンプルプログラムでは「smbus2」というパッケージが必要となりますので、以下の手順でこちらをインストールしておきます。
$ wget https://github.com/SWITCHSCIENCE/BME280/archive/master.zip $ unzip master.zip $ cd BME280-master/ $ sudo pip install smbus2
smbus2のインストールには少し時間がかかりますので、反応がないからと「Ctrl+C」で中断してリブートしてはいけません(私は気が短いのでよくやってしまいます……)。ダウンロードとインストールが終了したら、以下のコマンドを入力して実際に動かしてみましょう。
$ python ~/BME280/bme280_sample.py
すると以下のように計測したデータが表示されます。
temp : 27.93 ℃ pressure : 1017.10 hPa hum : 40.29 %
これで現在の気温、湿度、気圧が測定できました! ハンダ付け作業は大変だったかもしれませんが、測定自体はそれほど難しいものではなかったかと思います。「習うより慣れろ」──実際に手を動かしてみると、意外とできるものですよ。
次回はこの値をCSV形式で記録する手順について紹介していきましょう。
Copyright © ITmedia, Inc. All Rights Reserved.
Special
PR