気象ロガーの制作
2019/08/18


先日、PICマイコンを使ってA/Dコンバーターで気温を取り入れたのだが、どうもノイズが乗っているようで、あまりかんばしくなかった。
どうもイマイチ気分がよろしくないのと、もう一つ重大な欠陥を発見してしまったのである。

一日分のデータをチェックしていたら、夜中にパソコンがスリープ状態になっていて、データに取りこぼしがあったのである。
確かに、数時間使っていなかった場合にはスリープ状態になるように設定されているのだが、定期的にUSBで通信をしているプログラムが動作中でもスリープしてしまうようなのである。

確かに、ただ気温を定期的に計測しているだけでパソコンをずっと動作させておくのも、なんだかイマイチである。


温度の記録を取りこぼしなく取るためには、どういう設計が良いのか?
良さげな機能とは、どういうものか?

1、電池で動作するハンディタイプのデータロガーにする。

2、そのロガーには気温、湿度などのデータが一定時間間隔で記憶される。

3、そのロガーを持ち帰ってUSBでデータをパソコンに取り込む。

だいたいこんな仕様で考えてみようと思うのである。

そこで、PICマイコンの中にどのくらいのデータが収容可能か調べると、さすがにPIC18F14K50は少ないのだが、PIC18F4550は2バイト整数で360で2個の配列は取れることが解った。
※単純にint xx[360];int yy[360]と書いたらコンパイルでエラーが出なかっただけであるが・・・・

360個のデータとは、24時間×60分->1440分、360で割ると4分間隔ならまる1日のデータが取れる。
まぁ、本当は1分間隔くらいで欲しいのだが、まぁあまり贅沢は出来ない。
最初はまぁ、余裕を持って5分間隔でデータを取ってみようと思うのである。

5分×360->30時間の記録が可能。



引き出しの中をひっくり返してみるが、さすがに湿度センサーというものは無い。
その代わりにCDSという照度センサーがあった。

これは単純に光が当たると抵抗値が下がる物性を持つもので、けっこう敏感なセンサーなのである。

test_pgm092
取り敢えず、温度センサーと、照度計の二つのセンサーを取り付けた気象ロガーを作ってみる。

単三電池3本で約4.5Vの電源とし、電源投入から5分間隔でデータを蓄積する設計にした。

写真ではLEDが点灯しているが、野外にセットするときはLEDを外した。

test_pgm091
データの取り込みにはUSBを接続して行う。

一回のやり取りで65バイトのデータを取得可能である。
色々な付加情報も追加されるので、実際に取得可能なデータは一回につき28個であった。

360×2->720個のデータ、720/28->26回の取り込みで全データを取得出来る。
「PCからのデータ取り込み」というコマンドを作って、USBと通信する。

そして、取得したデータをテキストで書き出す。



test_pgm093
テキストデータをエクセルで取り込んでグラフにしてみる。

データの開始は昨夜(土曜日の夜)19時から、先ほど16時ちょっと過ぎまでである。

温度データはそう大きな変化が無いのだが、照度は極端に大きな変動になる。
どうやら朝の4時頃から急激に明るくなるようである。


test_pgm094
温度データだけでグラフを作ってみる。

照度より若干遅れて、朝の8時頃から温度は上がり始めるようである。

最後のあたりでガクッと下がるのは、室内の冷房がきいた部屋に持ち込んだためである。


取り敢えずで作ってみて、いくつかの変更点が浮かんでいるのである。

1、配線を短くすれば、ノイズは大丈夫らしい。

2、5分間隔で30時間固定というのはどうもイマイチである。

ロータリースイッチでも付けて変更が可能なようにしたい。

・1分間隔で6時間
・2分間隔で12時間・・・などなどのように

3、秋月電子のUSB付きPICの基板の使用をやめる。

夜に軒下に今回作った気象ロガーをぶら下げてみたら、秋月電子のUSB付きPICの基板には、小さいながらもパイロットランプが付いていたので、ぼんやりと明るいのである。
CDSのデータを見ると、そう問題にはなってなさそうなのだが、どうも気分がよろしくない。
秋月電子のUSB付きPICの基板を使わずに、パイロットランプを消せるようにしたい。

4、湿度のデータが欲しい。

可能なら湿度計のデータも取りたいので、安くて簡単な湿度センサーを探そうと思うのである。
ただ気象データを増やすと、当然ながらとっておくデータの総量は決まっているので、急激にデータの間隔が伸びる。

悩みどころなのである。


HOME