いろいろネタが揃ってきたので、 Raspberry Piで環境情報をつぶやかせてみることにしました。
まず、環境を取得するハードウェアは、以前作った気圧計・温湿度計を使います。LCDの表示がついていますが、とりあえずはそのままにしておきます。Arduinoベースのこの気圧計・温湿度計は、5秒ごとに気圧、温度、湿度を測定し、9600bpsでUSBシリアルに送信してきます。
次にソフトウェアです。いきなりRaspberry Piで動作させようとすると、スクリプトの編集が面倒なので、デスクトップのLinuxMint 64bitで先に作ってしまいます。
1.Pythonのタイムゾーンライブラリをインストールします。
所定の時刻でつぶやくために、タイムゾーンライブラリをインストールしました。
$ sudo easy_install pytz Searching for pytz Reading http://pypi.python.org/simple/pytz/ Reading http://pytz.sourceforge.net Reading http://sourceforge.net/project/showfiles.php?group_id=79122 Reading http://www.stuartbishop.net/Software/pytz Reading http://sourceforge.net/projects/pytz/ Best match: pytz 2012d Downloading http://pypi.python.org/packages/2.7/p/pytz/pytz-2012d-py2.7.egg#md5=e6f9219ae6eff242f13c6700413df69e Processing pytz-2012d-py2.7.egg creating /usr/local/lib/python2.7/dist-packages/pytz-2012d-py2.7.egg Extracting pytz-2012d-py2.7.egg to /usr/local/lib/python2.7/dist-packages Adding pytz 2012d to easy-install.pth file Installed /usr/local/lib/python2.7/dist-packages/pytz-2012d-py2.7.egg Processing dependencies for pytz Finished processing dependencies for pytz $
2.つぶやきのPythonスクリプトを作成します。
すでにtweepyでつぶやきそのものはできていますし、シリアルからのデータ受信もシリアルポートライブラリを動かしてみていますので、受信データを解釈してメッセージを組み立ててつぶやくだけです。
ここでは所定の周期(の切りのいい時刻)でつぶやくようにプログラムを作成し、デバッグ完了後に30分に1回(毎時0分と30分)につぶやくように設定を変更しました。
3.PC上で十分動作確認します。
PC上の方が楽ちんですからね・・・。
4.Raspberry Pi上に環境構築して動作させます。
環境の構築方法はLinuxMintとなんら変わりません。apt-get、easy_installなどがそのまま使えます。
環境構築したら、Raspberry Pi上にPythonのスクリプトを持っていって、動かすだけです。
動かす際は、sshの先で動かすので、screenコマンドを使ってネットワークが切れていても動きつづけるようにしました。
結果はこんな感じです。設置場所は室内のプリンタの脇なので、温度・湿度は気象観測的な意味ではまったく意味がありません。気圧の方は室内とはいえ、換気用の穴などでつながっていて、それなりに信用がおけそうな気がするので比較してみました。
9月15日 気象庁 自宅 差異 ===================================== 8時 1019.1 1016.97 -2.13 9時 1019.5 1016.68 -2.82 10時 1019.4 1016.5 -2.9 11時 1019.1 1016.06 -3.04 12時 1018.7 1015.34 -3.36 13時 1018.6 1015.13 -3.47 14時 1018 1014.39 -3.61 15時 1017.8 1014.43 -3.37 16時 1017.5 1014.32 -3.18 17時 1017.6 1014.36 -3.24 18時 1018.1 1014.86 -3.24 19時 1019 1015.65 -3.35 20時 1019.5 1016.17 -3.33 21時 1019.7 1016.26 -3.44 22時 1020.2 1016.89 -3.31 23時 1020.6 1017.21 -3.39 24時 1020.2 1016.72 -3.48
気象庁は東京の海面換算の気圧です。自宅の方は土地の標高が2~3mくらいに加えて、地上高が20mくらいありますので、20m強の海面高になります。気圧は概ね標高10mで1hPa減少しますので、若干(1hPa程度)低めの値ですが、遊びとしては十分な精度だと思います。
なお、Twitterの方はしばらくしたら平常時は止めるつもりです。Raspbery Piで他の事もしたいので。