しばらく前から放射線量計測や気象観測をどうやるか色々と挑戦してきたが、せっかくのゴールデンウィークなので、清瀬市北部の空間線量を定期的に計測し、Twitterに流す野良モニタリングポストを作ってみた。
以前は Strawberry Linux の USB-GEIGER を使っていたが、
- ハードウェアで何かとトラブルを抱えていたこと
- そもそも自己ノイズが結構あったりすること
から、若松通商製の簡易モニタリングポストキット Mark2 を投入した。
しばらく前から放射線量計測や気象観測をどうやるか色々と挑戦してきたが、せっかくのゴールデンウィークなので、清瀬市北部の空間線量を定期的に計測し、Twitterに流す野良モニタリングポストを作ってみた。
以前は Strawberry Linux の USB-GEIGER を使っていたが、
から、若松通商製の簡易モニタリングポストキット Mark2 を投入した。
以前、USB Weather Board の雨量計誤検知対策でファームウェアを変更したことを書いたが、信号の変化で割り込みをかけてソフトウェア的に処理することから、割り込み部分の処理が結構重くなっていた。そこで、教えてもらったローパスフィルタを追加してみた。
以前、雨量計を別途ベランダに直置きして誤検知が発生するか試すと書いたが、結果から言えば誤検知は発生した。どうやら、雨量計につながるケーブルにノイズが乗っているのが原因らしい。そこで、ノイズが乗ることを前提にファームウェア側で処理することにした。
雨量計の信号は常時 HIGH になっていて、マスが転倒する際にマスについた磁石がリードスイッチを通過することで一瞬 LOW になる。Sparkfunのファームウェアの場合、HIGH → LOW のタイミングで割り込みを発生させ、割り込みが発生すれば雨量計が転倒したものとしてカウントアップする。ただし、マスが転倒していある間は信号にノイズが乗るので、前回のカウント時から 100 μ秒以内の割り込みについてはカウントアップしないものとして処理している。キーとなる点は、雨量計の中のマスが転倒する際、ノイズと比べると転倒に比較的時間がかかるということ。
実投入したWeather Meters だが、これで観測される風向および風速については、あくまでもその瞬間のデータとなる。だが、いわゆる「風向」「風速」とは瞬間風向、瞬間風速のことではなく、10分間の平均風向・風速を指すらしい。
ここで問題がひとつある。風向、風速とは平たく言えば風の単位ベクトルとスカラーのことであり、風速はともかく風向の平均とはベクトル平均のことになる。算術平均を計算してしまうと、例えば 350 度と 10 度の平均は 0 度になるべきなのに 180 度になってしまい、全く正反対の結果になる。角度の平均については「角度の平均、角度の分散について」が詳しいが、気象庁では単位ベクトル平均で計算しているらしい。なので、今回は単位ベクトル平均で計算したい。とりあえずお手軽に Ruby + SQLite3 で書いてみた。
前回、Weather Meters の雨量計が誤検知することを書いたが、これの対応としてさしあたり雨量計のみを外してバルコニーの手すり部分に設置してみた。
台風時にはこれでは困るが、とりあえずはこんな感じで問題ないはず。こんな感じで、風向、風速、雨量も含めて観測できるようになった。
以前、XBee S1 の通信距離が短いという問題があることを書いたが、10mW とより高い出力を稼げる XBeePRO ZB を入手したので換装してみた。PRO はノーマルと違って国内版とアメリカ版で出力に差があり、アメリカ版を買うと出力が大きすぎて違法になるので気をつける必要がある。