2017年08月10日

Orange Pi Zero + BMP180/BME280 でデータ計測

I2C経由で気温や気圧が取れる、BMP180とBMP280というチップを買った。Orange Pi Zero に繋いで、データを取ってみる。
OrangePiのOSはARMBIAN 5.31 stable。

買ったのは、
全部合わせて1000円ほど。他に必要なものは、ハンダと半田ごて。

まずハードウェア側の整備。
OrangePi本体のI2Cポートはピンが出てないので(RaspberryPiは出ているのだが…)ピンヘッダを半田付けし、BMP180/BME280モジュールは付属してくるピンヘッダを半田付け。
--
OragePi 1 - VCC BMP180
OragePi 3 - SDA BMP180
OragePi 5 - SCL BMP180
OragePi 9 - GND BMP180
--
をジャンパーケーブルで結線する。
IMG_20170810_154343s.jpg
こんな感じになった。

次いでソフトウェア側の整備。
/etc/modprobe.d/fbdev-blacklist.conf にblacklistを2行追加してreboot。
aptitude install i2c-tools libi2c-dev をインストール。

# vi /etc/modprobe.d/fbdev-blacklist.conf
--
blacklist pcf8591 ←この行追加
blacklist bmp085 ←この行追加
--
# reboot

# aptitude install i2c-tools libi2c-dev
i2cdetectしてみると、モジュールが見えた。
# i2cdetect -y 0
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 --
そして、センサー値の取得は、https://www.blackmagicboxes.com/?p=608 に掲載されているデータ取得用のプログラムを使用。
デバイスが、/dev/i2c-1 ではなく、/dev/i2c-0 で見えているので、プログラムを一部書き換え。

char *bus = "/dev/i2c-1";

char *bus = "/dev/i2c-0";
そしてコンパイルして実行。
# gcc -g -Wall -Wextra -pedantic -std=c11 -o bme280_p bme280_p.c
# ./bme280_p -a
Temperature in Celsius : 26.07 C
Temperature in Fahrenheit : 78.92 F
Pressure : 1006.47 hPa
Relative Humidity : 0.00 %RH
見えた!カンタン!!!

この例で繋いだのはBMP180だったので湿度は取れていないが、同じようにBME280を繋げば、湿度も取れる。
気圧のデータを、muninに取ってみた。グラフ出力サンプルはこんな感じ。

pressure_withjma_1-day.png

緑のラインはBMP180の計測値、青のラインは最寄りの気象台が発表している1時間毎の気圧。
こうしてみると、ほぼ一定の誤差で、気圧の変動は気象台の計測値を完全にトレースしている。まあ、当然と言えば当然だが、わざわざ自前で気圧を測らなくても、気象庁のデータで十分だろうということが分かってしまった……。

しかし、たかだか数百円で、カンタンにデータが取れるようになったので、これはなかなかいいんじゃなかろうか。夏休みの自由研究とかに向いているのではなかろうか?
タグ:OrangePi
posted by usoinfo at 16:00 | Comment(0) | Linux | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]