サンプルプログラムをcronに組み込む

サンプルプログラムを自動実行させて、定期的に気圧と温度のデータを取得する。これには「cron」という標準のプログラムを使う。詳細は本連載の第2回(3ページ目)を参照してほしい。

本連載第2回のサンプルスクリプトは3分おきに自動実行させたが、今回のサンプルプログラムは毎分記録にする。ただ、自動実行した場合は出力先を指定しないと記録にならない。今回は2つのおまじないをする。

Linuxの世界では、記録ファイルは「/var/log」ディレクトリに書くというのがお約束だ。今回は「/var/log/lps」ディレクトリを作って、ファイル名「lps.log」で記録することにした。「sudo crontab -e」を実行するとテキストエディタが起動するので、一番下に以下の行を追加して保存する。

* * * * * /home/pi/lps/lps_get >> /var/log/lps/lps.log

crontabの記述。前回のサンプルスクリプト「Get06Mago.sh」は3分おきの自動実行だったが、今回のサンプルプログラム「lps_get」は毎分計測なので、左側に「* * * * *」とアスタリスクが5つ並ぶ

このままだとログファイルが延々と記録されるので、一週ごとに分割するとあとで処理しやすいだろう。Raspbianには標準で、logファイルを分割管理する「logrotate」というプログラムが動いている。「cd /etc/logrotate.d」コマンドでディレクトリを移動し、「nano lps」コマンドを実行(テキストエディタのnanoで、新規ファイルのlpsを作成)。以下のように記述して、保存する。

/var/log/lps/lps.log {
  rotate 55
  weekly
  uncompress
  missingok
  notifempty
}

あまり長い記録ファイルだと扱いにくいので、ログを週単位で分割する設定を行う

これで週ごとにログファイル(気圧と気温の計測情報)を変更し、古いファイルは最長55週、無圧縮で保存される。1年が経過する前にWindows PC側に吸い出せば、夏休みだけでなく将来的にも記録を続けられるだろう。

台風の接近と通過にともなう気圧変化をグラフで確認

本稿をまとめた週は、台風11号が日本各地に大きな被害をもたらした。1週間の気圧を簡単なグラフにしてみると、8月3日(日)からはずっと気圧が高かったが、台風11号の接近でガクッと気圧が落ちたことが分かる(下がり始めたのが8月9日の20時、下がりきったのが8月10日の17時くらい)。

この気圧グラフと気象庁の天気図を比較すると、台風が通過することで気圧が変わることが理解できると思う。夏休みの課題に天気というのはポピュラーだが、天気の移り変わりや天気図を並べるだけではなく、自宅の定点データを入れると完成度がグッと高まる。

10日分ほどのデータをExcelでグラフ化してみた。気圧が連続して下がっているのは、東京地方に台風が接近してきた影響

気象庁のサイトで天気図を見てみる。実況は3時間おきに掲載されており、8月10日(日)18時の段階で、台風11号は東京から離れつつあることが分かる

次回は高層ビルのエレベーターで短時間の気圧変化を測定

今回は、Raspberry Piが備えるI2Cインタフェースを利用して、気圧・温度センサーによる長期間の測定と記録を行った。cronによるプログラム自動実行の場合、最小で1分ごとの記録が行えるが、もっと短いサイクルで計測したいときはcronが使えない。

そこで次回は、Raspberry Piと気圧・温度センサーを外に持ち出して、より短い間隔の計測を紹介しよう。Raspberry Piを屋外でモバイル利用するには電源などの問題があるので、それを解決するハードウェアも追加する。