気温・湿度のSDカード記録器の製作

[公開:any]

[電子工作/AVR]
[AVR,ATmega328P,SHT11,湿度計,RTC-8564NB,HT7733,測定器]

origin 2011-03-15


 冬季の室内結露を観測するために気温と湿度を長時間(2〜3日程度)測定する必要があったので、ブレッドボード上に回路を組み立てて実験し、そのブレッドボードのまま使用していました。構成は、各シリアルデバイスをAVRで制御してSDカード(マイクロSDカード)に記録するものです。
 使用したシリアルインターフェースをもつデバイスは、以下の4種類です。

  • リアルタイムクロックモジュール(秋月電子RTC-8564NB)
  • 低電圧I2C液晶モジュール(ストロベリーリナックス)
  • SDカード(サンハヤトマイクロSD用コネクタ変換基板)
  • SHT11(気温・湿度センサー)

 各モジュールの通信プロトコルは、リアルタイムクロックモジュール、シリアル液晶がI2C、SDカードがSPI、SHT11がI2Cに似た変則タイプとなっています。I2CとSHT11制御のプログラムはそれほど苦労しなかったのですが、SDカードの利用はFAT形式を扱うため、独自開発は断念し、インターネットから検索した趣味の電子小物の自作さんの作成されたSDカード関連のソフトウェアをそのまま利用させていただきました。


 2か月程度、問題なく使用できましたが、このままにしておくわけにもいかないので、ちゃんと組み立ててケースに入れることにします。
 改めてブレッドボート上に組みなおして、ケースに入れて操作できるようにスイッチ制御のプログラミングを行いました。AVRはATmega168を使用していましたが、時刻設定や記録インターバルの変更処理などを追加すると16Kのフラッシュメモリに収まらなくなるので容量の大きなATmega328Pに変更しました。


 データの記録はSDカード上に開始時の日時刻をファイル名とするCSV形式のファイルを作成し、設定したインターバルで年、月、日、時、分、秒、気温、湿度を書き込みます。インターバルは1秒、10秒、1分(60秒)が選択できるようにしてあります。時刻はリアルタイムクロックで管理しますが、電池交換時などでも時刻がリセットされないようにコイン電池(CR2032)でRTCモジュールのみバックアップしています。
 RTCモジュールのINT端子に1秒ごとの割り込み信号を出力させ、それをAVRのピン割り込みで検出することで1秒、10秒、60秒のインターバルを作っています。
 
 最終的な回路図です。電源は、乾電池2本としてAVRや各モジュールに必要な3.3VをDC-DCコンバーターICのHT7733を使用して昇圧します。電源のオン・オフと記録の開始・停止は、1個のプッシュスイッチ入力をソフトウェア制御することで実現します。電源オフの状態でスイッチ入力があると電源オンとなります。電源オンの状態では、記録の開始・停止スイッチとして機能し、スイッチの長押しで電源オフとなります。


 秋月電子のユニバーサル基板に実装図を作成しました。各モジュールのサイズが大きいので重なり合っても干渉しないように注意しながら設計しました。


 液晶モジュールを搭載する前の部品実装面と半田面です。時刻等の設定用スイッチは、使用頻度が少ないので基板上にタクトスイッチで実装しました。


 電池やスイッチ等を取り付けて動作確認しました。


 電源オフはソフトウェアで行うので、スイッチ入力から実際に電源オフするまでに色々と処理することが可能です。記録動作中であればファイルをクローズしてSDカードをアンマウントしたり、液晶にメッセージを出力することができます。
 電源で使用するニッケル水素電池などの充電可能な電池は、過放電に注意する必要があります。特にニッケル水素電池は完全に放電させると充電できなくなるなどのトラブルを招きます。このため、電池入力電圧をAVRのAD変換機能で常時モニターし、ある一定電圧を下回ると自動的に電源オフする機能も搭載しました。また、液晶モジュールにバッテリーステータス表示があるので、これを利用して大まかなバッテリー電圧がモニターできるようにしました。


 AVRは、内蔵クロック8MHzをさらに1/8にして1MHzで動作させます。消費電流値は、記録時で6mA弱となりました。CPUのスリープ機能を利用すると、さらに省電力化が可能ですが、単3ニッケル水素電池容量1500mAとすると250時間(10日以上)の動作が可能なので、このままで十分と判断しました。


 ケースは、単3電池を使用したかったので、大きめの秋月電子のポリカーボネートケース(大)を使用しました。単4電池やコイン電池を利用すれば、もう一回り小さなケースでも問題なく収容できると思います。


 SHT11は、センサー部のみ露出させて正確に外気を測定できるようにしました。以前、SHT11を使った温度計・湿度計の製作で作ったものと比較しても誤差の少ない値が測定できます。SHT11は、製品ごとのばらつきの少ない、使いやすいセンサーです。


 測定対象のネタとしては、つまらないもの・・・ですが、自分の部屋の気温と湿度の変化を測定してみました。19時から24時間を1分間隔で観測したものをExcelに取り込んでグラフ化してみました。気温と湿度の変化から、エアコンが空気を乾燥させることが良くわかります。

気温と湿度グラフ


▲ページ Top へ...