『昼夜逆転』工作室
[トップページへ戻る]

RTC利用 温度・湿度ロガー

2016年5月
DHT11使用 温度・湿度計」の最後で予告(?)した、 温度・湿度センサーAM2302を使用したロガーを作りました。時刻の生成にはRTCモジュールDS1307RTCを利用しました。
ちなみに「キャラクタLCD LCD16X2-I2C 動作テスト」の最後で 「何かに使わないともったいない」と言っていたLCDモジュールの利用先となりました。

全体構成

LCDモジュールのI2C接続ではレベル変換を行っています。レベル変換を噛ませたのには次のような理由もあります。
I2CバスにRTCモジュールとLCDモジュールを、それぞれ単独で接続した場合は正常に動作しましたが、一緒に接続するとどちらも正常に動作しませんでした。 ※このときLCDモジュールのプルアップ抵抗は取り外した。
I2Cバスに複数のデバイスを接続するとき、しばしばこのようなことが起こるようです。 プルアップ抵抗の値を試行錯誤するのが面倒だったので、レベル変換ICのOE(OutEnable)端子を利用し、LCDモジュールを接続・切断できるようにしました。

製作中の様子

上基板のピンヘッダの取り付けが最悪に面倒くさかったです。
完成後に下基板のスイッチの位置を右へずらしました。※スペーサーとスイッチの隙間が狭くて指が入れにくかった。
実験中 工作中 工作中
ハンダ付け完了 動作テスト

秋月の「C基板用アクリルパネル」(P-09853)を天板にしたらグッと見栄えが良くなりました。お勧めパーツです。

回路図と配線図

回路図
回路図

配線図
配線図 配線図

ソフトウェア
ファーム(ロガー基板上のAVRに書き込むHEXファイル)
ダウンロード RtcHuTemLogger_firm_proj.zip
開発環境: Windows7SP1/64bit, AtmelStudio6
ログ読み込みソフト(PC側で使用する、ログ読み込みと時刻設定のソフト)
ダウンロード RtcHuTemLogger_pc_proj.zip
開発環境: Windows7SP1/64bit, VisualStudioCommunity2013/C#

操作方法

本ロガーはUSBコネクタを電源に接続すると同時に動作開始します。スイッチはオフにしておきます。この状態でLCDは消灯、シリアル通信もできません。
PC側ソフト

現在時刻と測定間隔を設定する
(1)PCとロガーを接続する
PCにUSB-シリアル変換モジュールを取り付け(例:秋月のAE-UM232R)、ロガー本体の通信コネクタに、TX/RX/5V/GNDを接続します。
スイッチをオンにします。この状態でLCDは点灯、日時や温度・湿度が表示されます。PCとシリアル通信ができます。
コマンドプロンプトから次のように入力し、割り当てられたCOMポートを確認します。[Serial port]の段に表示されます。
>RtcHuTemLogger.exe

(2)現在時刻と測定間隔を設定する
コマンドプロンプトから次のように入力します。60分間隔で測定する例です。
>RtcHuTemLogger.exe -com3 -d -t60

ログを読み出す
PC画面に表示するには、コマンドプロンプトから次のように入力します。
>RtcHuTemLogger.exe -com3 r

ファイルに保存するにはリダイレクトします。コマンドプロンプトから次のように入力します。
>RtcHuTemLogger.exe -com3 r >c:\work\readdata.txt
このとき、画面表示上はプログラムが停止しているかのように無反応ですが、ロガー本体からデータを読み込んでいる様子が表示されていないだけで、動作はしています。 ただしこのままでは読み終わった後の「Press any key.」も見えないので、読み込み中にスペースキーを1回押しておきます。

設定が完了したら
ロガー本体のUSBコネクタに電源を接続します。その後、ロガー本体の通信コネクタに挿したケーブルを外します。
スイッチはオンのままでも構いません。電池駆動の場合は節電のためオフにしておきます。

部品について

RTCモジュール、温度湿度センサーは、パーツショップに同じ物がなかったり高価だったりして入手しにくいかもしれません。 可能であれば海外通販の利用も検討してみてください。

温度湿度センサーAM2302のプルアップ抵抗R2は、回路図では5.1kΩですが、実際に使用したのは10kΩです。特に問題ありません。

マイコンは、回路図ではATmega88ですが、実際に使用したのはATmega328Pです。ATmega88Pでも動作しました(もちろんリビルドした)。ATmega88Vでは動作しませんでした(同)。 公開しているファームはATmega328P用です。

三端子レギュレータは、3.3VのLDOタイプで15mA程度取れるものなら何でもよいです。データシートを確認し、コンデンサの容量・種類を適宜変更してください。 ※種類というのは、積層セラミックコンデンサなのか、電解コンデンサなのか、ということ。

キャラクタLCDモジュールはI2Cのものなら接続可能ですが、コントローラやスレーブアドレスが異なる場合はソースを書き換えてファームをリビルドする必要があります。

RTC利用 温度・湿度ロガー 部品一覧  (回路図はここをクリック
部品名部品番号個数参考価格/備考
AVR(マイコン) U1 ATmega328P 1 250円(秋月電子
RTCモジュール U2 DS1307+AT24C32 1 M1307-12P(aitendo
温度湿度センサー U3 AM2302 1 別名DHT22
三端子レギュレータ3.3V U4 LP2950L-3.3 1 LDOタイプ
I2Cレベルコンバータ U5 AE-FXMA2102 1 200円(秋月電子)
キャラクタLCDモジュール U6 コントローラSPLC792A 1 LCD16X2-I2C(aitendo/品切れ)
同等品K-LCD792-I2C(aitendo)
電解コンデンサ C1 10uF/10V 1 10円
積層セラミックコンデンサ C2,C3 0.1uF [104] 1 10個100円
積層セラミックコンデンサ C4,C5 1uF [105] 1 10個100円
抵抗 R1 10kΩ [茶黒橙金] 1 100個100円
抵抗 R2 5.1kΩ [緑茶赤金] 1 100個100円
抵抗 R3 470kΩ [黄紫黄金] 1 100個100円

◆ ◆ ◆

そんなに悪くないと思いますが、中途半端な感じの工作物になりました。 次に作るときは、気圧センサーと容量の大きなEEPROMを追加して、リチウムイオン電池で動かすものにしようと思います。


 
(C) 『昼夜逆転』工作室
[トップページへ戻る]