Making an electronic weather station (part 2).
前回は、電子百葉箱のハードウェア(半田付とケース加工)を作製し、ESP32 マイコンのファームウェアを書きました。完成した百葉箱は長屋の窓枠に取り付けました。
今回は、サーバー側アプリケーションの設計です。書かなくてはいけないプログラムは 2点で、
- MQTT メッセージブローカーに subscribe し、百葉箱からのセンサーデータを読み出し、時系列データベースに格納する
- データ視覚化ツール Grafana からの要求を時系列データベースに投げ、返ってきたデータ(観測気圧と気温)から海面更正値(海面高度における気圧)を求めて Grafana に返す
ものです。
プログラムはいずれも Python で簡単に書けます。前者は大したプログラムでないので公開しませんが、今回は次の機能を特別に追加しました。すなわち、通常は 1分間隔でデータベースに格納するところ、気圧の変化が急峻な場合には即時データベースに格納する、というものです。前回の書き込みで竜巻災害について言及しましたが、竜巻が近づいているときには、できるだけ高頻度でデータを測定するほうが良さそうだと考えたからです。(アナログ気圧計ならば、そんな工夫は不要なのでしょうが。)
後者は、以前に書いたこちらの記事を御参考ください。前回は気温と湿度から露点を計算しましたが、今回はそれが海面更正に変わっただけです。海面更正の計算は、気象庁が配布しているこちらの冊子(?)を参考にしました。
無事に海面更正した気圧がプロットできるようになりました!
なお、このデータは神奈川県相模原市南区(小田急相模原駅近く)で測定したものです。
はい、とりあえず完成です。