Raspberry Pi 2 Model B と Rasiberry Pi Sense Hat を買いました。(ラズパイ2台目)
Sense Hat には、
- 8×8 のフルカラー LED マトリクス
- 加速度・ジャイロセンサ
- 気圧センサ
- 湿度センサ
- 気温センサ(※)
- 4方向+押下ジョイスティック
が搭載された大変強い拡張基板で、Raspberry Pi と同じくらいの値段がします。(Switch Science の商品ページ)
※)どうも、気圧センサー・湿度センサーで計測するらしい
Python でカンタンにアクセスできるライブラリが整備されている上に、Raspbian のパッケージとして降ってくるので
# apt-get update && apt-get install -y sense-hat
とかやって、
from sense_hat import SenseHat
sense = SenseHat()
sense.show_message("Hello world!")
とかいうのを実行するだけで、Hello world!
が右から左にスクロール表示できたりします。
とりあえず、部屋の気温やら何やらをロギングしてみたいので、環境センサ周りを取得してみるためにこんなコードを書いて
from sense_hat import SenseHat
sense = SenseHat();
env = {
"humidity": round(sense.get_humidity(), 1),
"temp1": round(sense.get_temperature_from_humidity(), 1),
"temp2": round(sense.get_temperature_from_pressure(), 1),
"pressure": round(sense.get_pressure(), 1),
}
print(env)
実行してみると(※出力結果は読みやすいように手動整形済み)
{
'humidity': 19.6,
'temp1': 26.3,
'temp2': 26.1,
'pressure': 1026.7
}
こんな感じ。気温が2つあるのは、使用しているセンサーが違うから(コードを見るとどこから取ってるかわかる)。
気温の数値そのものは2つのセンサーでそんなにかけ離れていないので、センサー自体はどちらを使っても似たような数字になる模様(どうせ真の値に対して 0.1 ℃の精度とか無いので気にしても仕方ない)。
問題は値の精度そのもので、
- 湿度: 別の湿度計(安物)に対して数ポイント差
- 温度: 別の温度計(安物)に対して数度差
- 気圧: 気象庁の観測データが 1020.3 hPa(大阪) 1020.1hPa(京都) に対してごらんの数字(ウチは大阪府寝屋川市・萱島駅付近なので、大阪と京都の間の大阪寄り ※)
で「うーん」と言ったところ。(もちろん高精度な測定をするためのパーツではないし、もちろん校正とかしてあるわけないので癖やら何やらでズレるのは織り込み済み)
今は設置場所が良くないので、温度や湿度はその辺の関係かも。もうちょっと独立した場所に移した上で定期的に取得してモニタリングしないと。
※) 直線で大阪管区気象台まで 11km、京都管区気象台まで 32km 程度(気圧データは気象台のもの)