このページでは、2008年ごろに作った温度と共にGPSの測位位置を記録する温度計の使い方について説明しています。
ガーミンの組み込み用GPS受信機とH8/Tinyマイコン、高精度ADコンバータ、高精度サーミスタ、
SDカードを組み合わせて長期間稼動する温度・位置ロガーを作りました。
都市の熱環境を測定するのに使えます。
ヒートアイランド現象とは、都心部の気温が郊外よりも高くなり、気温分布が島状となる現象です。 この調査を効率的に行うための観測装置として、気温・時刻・位置を同時に記録する車載型GPS付温度計測器を開発しました。
GPS温度計の開発目的は、 車載型GPS付温度計測器を開発することで、移動観測における労力を減らし、都市の詳細な気温分布を長期間にわたって観測可能にすることです。 小型のワンチップマイコンとGPS受信機を組み合わせることによって、気温と正確な時刻と位置を同時に記録し、小型で可搬性に優れ、特に長期間の観測が行える計測器の開発を目指しました。
開発したGPS温度計の使用形態と内部構造と仕様を以下に示します。ただし、2号機だけは気球に搭載できるよう、ケースを別物とし、バッテリーも軽い単4電池にしました。
![]() |
![]() |
GPS温度計の使用形態 | 内部の構造 |
![]() |
仕様一覧 |
従来のヒートアイランド現象の観測は、アメダス等の固定観測点の利用や自動車を使用した移動観測によって行われています。 前者は長期間の観測が行えるものの観測点の密度が低いため詳細な気温分布を得ることはできず、 後者では、詳細な気温分布を得ることができるが、気温を測定した時刻や地点,測定値の記録を人力に頼ることが多く、観測後のデータ整理においても労力がかかるため、連続的な観測が困難という問題がありました。
このGPS温度計の利点は、移動観測とすばやい情報処理によって詳細な気温分布情報を得られることです。 観測が自動で行われるため、データはパソコンに吸い出すだけですみます。また、10分に1回の観測では1ヶ月を超えて稼動します。
0号機 「とんた」です。初めは金属製のケースに収めていました。とりあえず作ってみる事を目的にチャチャット作った作品。データの記録はEEPROMへ保存していた。EEPROMは消費電流が少ないが保存データ容量も少ないという特徴がありました。 |
1号機 「とんた」で養った経験を基に回路を完全に作り直しました。記録はSDカードへとる様に変更。専門棟4Fで実験中です。この後A/D変換の不具合に気がついたので、このとき取ったログは意味の無いことに・・・。さらにこの後、回路をいじっている最中にFET(電子スイッチ)が吹っ飛んだので1号機はバラバラの部品に戻しました。 |
1号機からはこの様にケースに収めました。2号機以降は若干1号機と回路の作りが違います。3号機以降も一部で変更しちゃいました。 |
このケースは防水なので水洗いしてもOKです。じゃぶじゃぶ。 |
2号機はこのように、小さめのケースに収めました。バッテリーが小さい分、軽くなりました。ニッケル水素NiMH充電電池4本で6時間稼動します。 |
製作したGPS温度計の実力を測るために、八代高専斎藤研究室では今までの手法と比較しました。以下はその結果を示しています。 下図が設定した測定コースで、2時間ほどで回れて検証がし易い様なコースが選ばれました。 そのさらに下には、コースのみを黒線で表しています。左が設定したコースで、右はGPSのトラッキングデータから描画したコースです。 八代ではGPSの受信を妨げるような大きな建物が少ないのでかなり良好なデータが得られました。他の実験データでも、測位点の飛びは僅かです。
![]() |
![]() |
設計した観測コース | 実際にGPS受信機のログより得られた観測コース |
下図が実験の結果得られた気温分布図です。実験は2008/2/16日の早朝と正午過ぎに行われました。早朝のデータでは丁度海より暖かな風が吹いて急激に温度変化がおきているのを確認できました。 正午過ぎのデータでは、市街地でヒートアイランドが起きていることが確認できます。
全般的にGPS温度計の方が測位密度が高い分より詳細な気温分布図を得られました。 また、観測データをこの様な図に起こすまでの作業量は、GPS温度計がデータをシリアルで読み出した後にプログラムで解析するだけに対して、 おんどとり&音声録音による位置記録を用いた従来の方法は、学生が1日掛けてデータに起こすという手間がかかりその差は歴然です。後は使い勝手さえもっとよければ・・・。
測定日 | GPS温度計による観測データ | デジタル温度計 おんどとりによる観測データ |
2008/2/16 早朝 | ![]() |
![]() |
2008/2/16 正午過ぎ | ![]() |
![]() |
内部の構造について少し詳細に示したのが左の図です。 計測器は耐候性のあるケースに収められており、マイコンがそれぞれのハードウェアを制御しつつデータをSDカードへ保存する様子を表しています。 バッテリーは通常はケース内部の物を使用しますが、室内での長時間実験に配慮して外部電源に接続できるようにしています。 |
![]() |
この測定器のプログラムの更新を行うための開発環境について紹介します。プログラムの開発に使用するのはベストテクノロジーよりダウンロードできる「GCC Developer Lite」です。 私が使用しているのはver1.9.1.9です。プログラムの更新に必要なものは計測器本体のほかにはこのソフトウェアと、計測器とパソコンをつなぐケーブルです。 プログラムの書き込みはSCI(シリアルコミュニケーションインターフェース)を通して行われるので測定器に実装されているシリアルインターフェースICの電源を入れておかねばなりません。 右写真にIC用の電源スイッチを示します。このスイッチの操作は指ではなく絶対に細目のピンセットを用いるようにしてください。 一度自分自身で指を用いてやったことがありましたが、スイッチが基板から取れそうになるなど危険でした。 プログラムの書き込みが終わったら、電池の消耗を抑えるためにこのスイッチはOFFにしてください。どっちにスライドするとONになるかは私も忘れました。 電流計に繋いだまま操作するとスイッチが入ったかどうかが分かりやすいですが・・・。 |
![]() ![]() |
プログラムは2号機用と、3号~5号機用の2種類あります。これらの違いは使用するバッテリーの終止電圧ですので、
それに関した箇所(Battely_check関数)だけに差異があります。プログラムソースはここからダウンロードしてください。
2008/7/21現在の最新バージョンはver6.1.5です。最終更新は2008/7/21に行っています。
プログラムの依存関係を以下に示します。
|___"3687.h"
|___<string.h> |___"sci3_mori0.c" |___"MMC.c" ......|___"MMC.h" |___"gps2006mori.h" |___"mo_string.h" |
// H8 Tinyの内部I/O定義
// 文字処理関係の標準関数 // シリアル通信関連 統合ファイル // SDカードアクセス用の自作関数 // 上のファイルが必要とするヘッダファイル // 構造体などをまとめてあるファイル // 文字処理を軽い関数でやるための自作関数 |
*使用できるSDカードについて*
SDカードの制御にはSPIモードを使用しています。
この制御方法では最大4Gbyteのメモリが使用できますが、本プログラムではアクセスできるページ数をソースコード中のdefine宣言中において1000000としていますので、512Mbyteの容量の物に特化していると言えます。
もちろん、defineで宣言したページ制限数を書き換えれば他の容量のものにも対応できることになります。
GPS温度計を使って気温の記録をとらせるには、"write"コマンドを使用します。GPS温度計が起動するとまず起動メッセージが表示され、コマンドを入力するよう促されます。 そこで、"write"と入力してエンターキーを押すと測定器は観測&記録モードへ移行します。これをここではwriteモードと呼ぶことにします。 このモードではSDカードへ次のデータを保存します(プログラムバージョン6.1.5時点)。
で、実際に計測を始めるにはさらに測定条件を3つ入力します。
以上の条件を入力すると測定が始まります。ですが、そのまま放って置いても始まりません。初めにGPSのから正確な時刻を得るまで待機します。 この間、省電力モードであってもGPSの電源は入りっぱなしです。しかも、GPSの受信状態が悪い室内であるといつまで経っても計測が始まりません。 その場合、温度センサーの校正の節で紹介しているGPS再放射アンテナ(又は中継アンテナとも言う)を使用すると非常に助かります。
ここでは温度センサーの校正のために、GPS温度計の取り扱い上必要な事柄を説明します。 GPS温度計の動作モードとしてはwriteモードを選び、それで記録される観測データを校正データとして使用します。 このモードでのお勧めの動作設定は次の通りです。
また、実験データから温度センサーの校正関数を得ますが、お勧めは3次近似式で、有効桁を5~6位は取ってください。
|
この実験は普通室内で行いますのでGPSの受信感度は悪くなります。感度が悪いと計測のデータ落ちが良く起こるし、計測開始時刻が大幅に遅れます。 実験を円滑に行うために、左の写真に示す様なGPSの再放射アンテナがあると非常に便利です。 通販で入手できるところはI.D.A Online です。価格は、安い奴で8000円位からあり、高級なので10万円位です。 |
***未編集
鉛蓄電池は放電したまま放って置くと、あっという間に劣化して充電も放電もあんまりできなくなってしまいます。なので、実験後や長期保存(2週間以上の場合)では満充電の状態にした上で保管してください。
*気温センサーが持つ時定数による気温の補正
ここで言う時定数とは、温度センサーをある気温雰囲気(雰囲気1)から別の気温雰囲気(雰囲気2)へ移した際、気温センサーが、雰囲気2の気温値の約63%を出力するまでに掛かる時間です。例えば、ホームセンターで売られている赤い灯油入りの温度計ではパッケージの裏面に「5分お待ちになってください」と書いてあるので、時定数はおそらく2,3分位でしょう。この時定数が大きいと、現実の気温と測位した位置座標がズレてしまいますし、そのデータから作った気温分布図はやはり現実から外れた物になります。
理屈の上では、この時定数が分かっていれば、実験で得られた気温データを時定数のズレた分だけ補正してやる事によって真の気温分布を得ることが出来ます。このページの最後に挙げている文献[1]では、この時定数分だけ計測時間と気温の計測値の間に遅れがあると仮定して補正を行っています。
しかし、実際の時定数は2つの雰囲気の気温差(つまり、計測対象となる地域の気温勾配に相当)や、温度センサー周りの気流速度によって変化します。これを無視した補正データを使用して気温分布図を作ると、より誤差が悪化しかねません。よって、現実的には気温センサーの時定数を小さくするしか無いと思います。よって、補正は必要なし!
ここでは、今まであったトラブルについてその対策をまとめたものを掲載しています。もし、他に質問したいことがあれば管理者までメールで連絡をお願いします。
No. | ||||
1 | GPSが受信できない!!! GPSのデータがおかしい!!! |
今まで、回路はコマンドに対して応答するのにGPSのデータがおかしい、GPSが受信できないということが何度もありました。 考えられる原因は次のように複数あります。
センテンスとは、GPS受信機が出力する、情報の種類によって分類されるデータの集合体の事。例えば、速度ベクトル情報、時刻・測位情報、誤差情報などがある。 これらの内、どれが原因か特定するには、次のようにします
これを実行して、GPSの測位情報が画面に表示されない場合、または出力さているセンテンスが「$GPGGA」と「$PGRMF」で始まるもの以外だった場合は3.に進んでください。 以下のように表示されているならば、正常です。1秒ごとにパラパラとデータを受信して、表示するはずです。 図では途中で測位に成功している様子を示しています(初めは測位衛星数が0ですが途中からいきなり5になっています。このまま放って置けば測位衛星数が最大12まで増えるはずです)。
|
||
2 | 電源が入らない |
まず確認してほしいものは電源スイッチです。基板上にある、スライドスイッチをいじってみてください。GPS温度計2号機には、電池ボックスにもスイッチがあるのでこちらもONでなければいけません。
これでもだめな時は、バッテリーからの電線が切れている可能性があります。テスターを使って回路の電圧を計測するとすぐに分かります
|
||
3 | 2号機と3号機以降って、何が違うんですか? |
H20年5月25日現在、2号機は写真に示すような単4電池駆動品となっています。 3号機以降では鉛蓄電池を使用しています。回路上の違いはこれだけですが、それによって電池の保護電圧が異なっています。 2号機の保護電圧は、GPS受信機が動作する限界電源電圧である3.8~3.9V程度ですが、3号機以降は鉛蓄電池の放電保護のため5.4Vとなっています。 というのも、鉛蓄電池は放電しきってしまうと充電ができなくなってしまうためです。
|
||
4 | non | non |
ここでは、GPS温度計(プログラムバージョン 6.1.5)のコマンドについてまとめたものを掲載しています。もし、他に質問したいことがあれば管理者までメールで連絡をお願いします。
No. | ||||
1 |
SDカードへ保存したデータを読み込みます read -gコマンドと違う点は、SDカードから読み込んだデータをそのまま送信する点です。これによって、SDカードに書き込まれた状況がより詳しく分かります。 SDカードへ書き込まれるデータのフォーマットに関しては、管理者の特別研究論文に詳しく掲載していますので、そちらをとりあえず参照してください。 図 コマンドの実行を行ったときの動画 |
|||
2 |
SDカードへ保存したデータを読み込みます。 ターミナルソフト側でログを残すように設定していると、保存されるテキストデータがCSVファイル形式になるので、欲しい部分だけ後で切り取りしてやるとExcelなどのソフトで処理しやすくなっています。
|
|||
3 | 観測を開始します。気温センサを使った気温計測には外部A/Dコンバータを使用し、単発A/D変換を使用します。 |
|||
4 | コマンド一覧を表示します。簡単な解説も載ってます。 |
|||
5 | GPS受信機のテストを行います。出力形式は文字処理されたものです。観測に必要なデータをここで表示します。もし、表示がおかしい場合はtransferコマンドを実行してみてください。 |
|||
6 | GPS受信機のテストとA/D変換のテストを行い、その結果を出力します。温度計の校正に便利です。 |
|||
7 |
A/D変換のテストを行います。マイコン内臓のA/Dコンバータと外部ADコンバータ(22bit Δ-Σ型 A/D変換IC)のいずれかについて単発A/D変換テストを行います。 このモードで、バッテリ電圧測定や気温測定を行うことができます。 |
|||
8 | GPS受信機の出力するセンテンスの設定を行います。 |
|||
9 | バッテリー電圧の推定値(誤差0.2V位)を表示します。 |
|||
10 | GPS受信機が出力しているデータをマイコンがリレーしてパソコンへ送信するモードです。GPS受信機の出力情報をそのまま観察することができます。 |
|||
11 | SDカードへ保存したファイルの数やファイルの大きさを表示します。 |
|||
12 | SDカードへ保存したファイルの削除や新しいSDカードのフォーマットを行います。 |
|||
13 |
マイコンのsleepモード(省電力モード)のテストです。 初めはNMI割り込み復帰モード、次はRTC(リアルタイムクロック)による復帰を行うモードです。 メンテナンス以外に使用しないでください。 一度このモードに入ったら、リセットボタンを押すか、電源を入れ直さないと復帰しません。 |
|||
14 | 外部ADコンバータ(22bit Δ-Σ型 A/D変換IC)の連続A/D変換テストを行います。 |
|||
15 | テスト用隠しコマンドその1。外部ADコンバータ(22bit Δ-Σ型 A/D変換IC)の連続A/D変換,インターバル動作テストを行います。 40回連続でA/D変換を行った後に一旦ADコンバータの電源を入れなおし、再度連続変換を行うというのを繰り返すモードです。 実際の計測では、時間節約のためにA/D変換を1回しかやりませんが、その変換値は連続変換値の平均に比べると低く出る傾向があります。 そこで、どんな特性があるのかを確認する意味でこの隠しコマンドを設けています。 |
|||
16 |
テスト用隠しコマンドその2。マイコンのsleepモード(省電力モード)のテストです。一度このモードに入ったら、 リセットボタンを押すか、電源を入れなおすか、パソコンからシリアルで任意の文字を送信しないと復帰しません。 |
|||
17 | ESCキー |
[1]P440 ログ付小型GPS受信機及びサーミスター温度計を利用した気温の移動観測 : 愛知県岡崎市の例(1),田平 誠 他,社団法人日本気象学会,p.482,2003/5
入手先:CiNii「http://ci.nii.ac.jp/naid/10013699726/」