つぶやきガイガーカウンター

 2011年3月11日に発生した大地震は、国内観測史上最大のマグニチュード9.0を記録し、大規模な津波の発生により多くの地が壊滅的な被害を受けました。震災で亡くなられた多くの方々のご冥福を心よりお祈りいたします。

■放射能漏れに関して

 今回の地震と津波の影響で福島第一原子力発電所にて重大な事故が発生しています。原子炉および使用済み燃料の冷却機能が喪失し、炉心溶融、水素爆発、圧力容器の損傷などが立て続けに起こり、すでに多くの放射性物質が外部に漏れる事態となりました。

 東京電力をはじめ多くの方々の命がけの作業により事態を収束させようと努力している最中ではありますが、仮に現段階で炉心および使用済み燃料の冷却が継続的に維持する事ができる状態になったとしても、放射性物質の漏れを完全に停止するには、漏れの実態調査と、修復作業が必要な事から、少なくとも数週間で解決できるような問題ではないことは確かです。

■当面必要と思われること

 福島第一原子力発電所の影響により、東京において活動する場合でも少なからず被ばくすることになります。その数値が「直ちに健康に影響の無いレベル」であったとしても、被ばく量は時間を考慮することがポイントになります。

 つまり自分の活動する場所がどの程度の放射線量で、その場所に何時間滞在したのかと言う事を認識し、放射線量×滞在時間で被ばく量を評価することが肝要です。

■放射線の測定

 放射性物質や放射線は目に見えませんので、今後、行政によるきめ細かな測定情報の提供が行われるようになると思いますが、現時点において必ずしも十分な箇所でリアルタイムな情報が提供されている状況ではありません。

 放射能漏れのニュースの後、多くの知人よりガイガーカウンターの値に関するお問い合わせを頂くようになりました。

 そこで、非公式ではありますが、わが家で所有しているガイガーカウンターを twitter に接続する試みを行い、当面の期間、放射線に関する情報を @jun930 にてつぶやくことにしました。

■ガイガー的つぶやき装置

 ここより先は、ガイガーカウンターを twitter に接続する技術的な内容になります。もしも同様のガイガーカウンターをお持ちの方で電子工作および ruby によるプログラミングができる方でしたら同様のシステムを構築できるでしょう。概要は以下の通りです。

 ガイガーカウンター
 ⇒ インタフェース回路
 ⇒ Arduino+EthernetShield
 ⇒ twitter ゲートウェイプログラム(by ruby)
 ⇒ twitter

■インタフェース回路

 使用したガイガーカウンターは eberline 社製の model E-140 です。カウンターには PHONE 端子が付いており、放射線を検出するとパルス信号が出力されます。本来は専用のスピーカーが接続され、プチプチとしたパルス音で放射線量を確認することができるのです。コネクターは特殊な物で型版すら分りませんが、TV の同軸を接続するための F コネクターのネジがぴったりなので、それを利用することができます。

 この端子からはマイナスのパルス信号がレンジに合わせた幅で出力されます。x1 レンジで約 2,700 usec、x10 レンジで 1/10、x 100 レンジで 1/100 の幅になります。アナログメータを振らすための処理を行った状態のパルスが出力されているようです。

 余談になりますが、以上の事からこのガイガーカウンターの校正は、パルス幅を適切に設定することである事と推測できます。

 この信号をマイコンのデジタルピンに入力させるには 5V のパルス信号に変換する必要があります。そこで、以下の様な簡易的なインタフェース回路を作りました。

 ガイガーカウンターは電池で動作しており、マイナスのパルスが出力されます。そこで、0.01 uF のカップリングコンデンサーで信号を受けることにしました。パルスが発生すると Tr のベース電位が下がり E-C 間が ON になることで 5V のパルスが生成されます。ダイオードはパルスによるベース電位の上昇を逃がすための物で、Tr を壊さないよう念のために入っています。

 もう少しちゃんと作る場合は、フォトカプラで完全にアイソレーションするのがよいでしょう。

■Arduino+EthernetShield

 5V のパルスができてしまえば半分こっちのものです。5V パルス信号を Arduino の割り込み機能を使ってカウントし、1分単位で EthernetShield がどこかのサーバに回数を送信するようにします。

 ファームウェアのソースコードを公開します。ソースコードのダウンロード

 インタフェース回路のパルス出力を Arduino のデジタルポート 2,3 に入力してください。上の写真の青いケーブルがポート 2 とポート 3 に接続されています。オレンジのケーブルはデジタルポート4 からLEDを点灯させています。LEDは特に必要ありません。動作確認用に点灯しているだけです。

 ご興味がある方のためにソースコードの内容を少し解説します。

 割り込み信号は、ポート2で立ち上がり、ポート3で立ち下がりを検出します。0.01 uF のカップリングコンデンサで受けたパルスは、必ず 10〜30 usec の幅で出力されます。ノイズなどをカウントしないように立ち上がり立ち下がりの割り込みからパルスの幅を判定するような処理になっています。

 loop() は1分間のインターバルで動作し、twitter ゲートウェイプログラム(ruby)に対して毎回コネクトしデータ送信後に切断します。コネクトに失敗した時はシリアルポートにデータを送出します。Arduino の開発環境でイーサーネットのテストをする時の確認用の動作です。

 また、IPアドレスの取得には DHCP を使用していますので、DHCPの環境が無い場合このファームは使えません。

■twitter ゲートウェイプログラム(by ruby)

 次に考える事は、twitter への自動投稿の仕組みです。アプリケーションから twitter にメッセージを送信するには OAuth と呼ばれる認証の仕組みを使わなくてはなりません。OAuth に関する詳細は色々な人が書いているので割愛します。まず、必要な手順として、以下の URL からアプリケーションの登録申請を行い、Consumer key、Consumer secret、Access Token (oauth_token)、Access Token Secret (oauth_token_secret)を入手します。

 https://dev.twitter.com/apps/new

 次に OAuth のもとで twitter を使うための ruby の環境を作ります。

 sudo gem install oauth twitter

 2つの gem をインストールして下さい。準備は以上で終わりです。

 twitter ゲートウェイのソースコードを公開します。ソースコードのダウンロード

 ご興味がある方のためにソースコードの内容を少し解説します。

 私の環境は Fedora10 で Ruby 1.9.1p378 を使用し動作しています。お使いになる時はソースコード上の Twitter.configure のブロックをご自分の OAuth のものに書き換えてください。修正箇所は以上になります。

 このプログラムは TCP/IP のサーバープログラムです。12344ポートでリッスンし1行の文字列を受信します。Arduino から送信される文字列は、時刻、カウント数の 2つです。受信文字列よりカウント数を切り出し、@values 配列に追加します。30分間隔で @values の平均値をツイートします。

 この時、カウント値(CPM)を uSv/h に変換していますが、この変換係数はお使いのガイガーカウンターによって変更する必要があります。私の場合は、ガイガーカウンターのメータから、120 CPM = 0.1 mR/h (= 1 uSv/h) として変換しています。

 また 3分間メッセージが届かないと自動的にリセットするようになっていますので、ハードウェア側のメンテナンス時でもこのプログラムを止めるなどしなくて OK です。ログファイルは日ごとに 1分間隔の生データを追記するようになっています。

■運用

 千葉県松戸市、屋内窓際+お古のタッパーにて運用中

■観測値の解釈について

 使用しているガイガーカウンターはメーカーによる適切な校正がなされておりません。従って絶対値は必ずしも信頼できるものではありません。しかし、相対的にどの程度放射線が増えているのか減っているのか判断する事ができます。

 また、行政が計測している多くの値は屋外でのものです。ツイートしている数値は屋内での物です。絶対値の精度は少し怪しいですが、このデータは屋内と屋外での放射線の差を知るための一つのヒントや目安になると思われます。

 今回の事故の性質から、関東地方での生活するには中長期的に放射線と付き合う覚悟が必要と認識します。そのための第一歩が見える化であると思います。行政には一日も早くモニタリングポストの増設とリアルタイムでの情報提供の仕組みを整備して頂きたいと切に願っています。


Latest update at 2011/3/22