クラウドはAWS1年間無料なので、がんばってみようかと思いましたが、AmbientというIoT専用のクラウドを個人で運用されている人が居ます。
簡単そうなので、そちらで試してみます。
久しぶりなので写真も。
ラズパイ本体(確かpi2b+です)
BME280センサー(小さい、緑色の基盤の真ん中銀色の部分がセンサーです)
データーシート(pdfファイルへのリンク)
ラズパイとセンサーの接続状況(ラズパイ側1本pin間違っている状態)
その前に今回はラズパイに温度湿度センサー接続し、読み取れるように設定です。
★ラズパイGPIO番号と端子位置
参考リンク
★ラズパイでSPI通信の準備
参考リンク
★ラズパイI2CでBME280と接続
参考リンク
★BME230をPythonで読み出す
参考リンク
参考リンク
参考リンク
参考リンク
こんな感じでI2C経由BME280を認識できました。なかなか認識できなかったのですが、本体側のGPIOピンの接続が1本ずれてました。
【反省】「適切に接続したつもり」という思い込みは駄目。ピンヘッダー真上から見ると一目瞭然。ハードウェアは何度も目線を変えて目視確認が重要。
1
2
3
4
5
6
7
8
9
10
11
| pi@raspberrypi:~ $ 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 --
pi@raspberrypi:~ $
|
スイッチサイセンスさんがpythonスクリプトを公開しています。
1
2
3
| $ git clone https://github.com/SWITCHSCIENCE/BME280.git
$ cd BME280/Python27/
$ python bme280_sample.py
|
これではsmbus2というモジュールがないと言うことでインストール。
★smbus2のインストール
1
2
3
4
5
| $wget https://github.com/kplindegaard/smbus2/archive/master.zip
$unzip master.zip.1
$cd smbus2-master
$sudo pip install smbus2
|
これでエラーはなくなりました。
1
2
3
4
5
| $pi@raspberrypi:~/BME280/Python27 $ python bme280_sample.py
$temp : 23.94 ℃
$pressure : 1006.75 hPa
$hum : 46.24 %
$pi@raspberrypi:~/BME280/Python27 $
|
ちゃんと温度に湿度、気圧の値をセンサーから取得することができました。
その後、1分毎に計測してファイルに書き出し、昔ながらの(今は使わないらしい)
gnuplotでグラフにしてみました。
センサーはちゃんと動いて、ラズパイで読みと取れているようです。