てぃーだブログ › 作る人 (つくるんちゅ)日記 › 工作、いろいろ › Arduino 一番簡単な温度ロガー(LM35使用)



2010年10月09日

Arduino 一番簡単な温度ロガー(LM35使用)

Arduino 一番簡単な温度ロガー(LM35使用)
以前、買った、手の平サイズのマイコン「Arduino(アルデュイーノ)」。
→ 後日改造。「ArduinoのUSB直差し化!

ネットを見ると、例えば部屋の温度や明るさを自動測定して、LAN経由でTwitterに「暑いなう」「朝だなう」等とつぶやくなど、いろいろな回路が紹介されています。

マイコンなので、イーサネット・ボードを組み合わせたり、ライブラリーを追加すると、いろいろな事ができちゃうのが、「Arduino」の面白いところ!


そういうマニアックな世界も面白そうだけど、もっと身近な所にも、マイコンの使い道はあります。
今回は、とってもシンプルなデータロガーを作ってみました。


簡単な温度ロガーを求めて


データロガーとは、センサーなどの入力機器からの情報を、継続的に計測・保存してくれる装置。

例えば、人間が10分おきに、何かのデータをノートに書いていく。というのは、大変だし、単調過ぎて眠くなります。
でも、マイコンだったら朝飯前。キッチリとデータを記録し続けてくれます。

僕はよく、パワーLEDを扱いますが、ある条件で過熱し過ぎないかなど、簡単に記録できる方法は無いか、ずっと探していました。

専用の温度ロガーを買うと、結構な価格がするんです。

自分で作れたら、いろいろ応用が効くし、なんと言っても面白そう!
「Arduino」は、そんな願いもかなえてくれる、マイコンなんです。


見つからないスケッチ


「Arduino」のプログラムは「スケッチ」と呼びます。

C言語に似た記述でプログラムを書いていくのですが、すでに大勢の方がスケッチを公開されています。
初心者でも、それをコピーして改造する事で、自分なりのプログラムを短期間で作る事も可能‥。
これは、ネット社会の便利さですね。


が、しかし。いろいろ検索してみても、温度ロガー単体のスケッチが、意外と見つからないのです。
(スケッチを公開している皆さんは、さすがに腕に自信の方ばかりなのか、いろいろ難しい機能を追加されています)

困った。
僕みたいな初心者は、まず「簡単でちゃんと動く!」スケッチから始めたい所なんですが‥。


スケッチを改造


それでも、ようやくLM35という温度センサーを使ったシンプルなスケッチを見つける事ができました。
→ 「ArduinoとLM35温度センサー

で、ふと引き出しを探してみると、僕の部屋にも同じICのストックがありました。(ラッキー! )
以前、秋月電子でパワーLEDと一緒に発注しておいたものです。

さっそく、上記のスケッチをお借りして、改造していきます。

改造はほんのちょっとですが、これで、自分が欲しかった仕様が完成しました。


手作り! 温度ロガー、完成


Arduino 一番簡単な温度ロガー(LM35使用)左は、10秒毎に、対象の温度を記録していくロガーの様子です。

Arduino(アルデュイーノ)にスケッチを書き込んで、3本足のセンサーIC「LM35」をブレッドボードに配線すると、できあがり。

シリアルポートから、10秒毎に送られてくるデータをパソコンの画面に表示する事ができました。

データはタブ区切りにしているので、コピーしてエクセルにペースト。
グラフ化したのが下の画像。

Arduino 一番簡単な温度ロガー(LM35使用)

ノートパソコンの排気口近くにセンサーを置いて、温度を計測してみたものです。
グラフが細かく動いていますが、それでもデータの振れは1℃程度。

今回は温度だけですが、各種センサーを交換すれば、湿度や照度、気圧等も(同時に)PCに記録していく事が可能です。


実際のスケッチ


#define INTERVAL 10 //更新間隔(約 x秒)
int analogpin0 = 0; //analog0に入力

int data = 0;
int summary = 0;
int i,t_1,t_2,time_m,time2,time_h;

long time;

double t_value; //temperature value


void setup() {
analogReference(INTERNAL); //use internal 1.1v reference
Serial.begin(9600);

}


void loop() {

summary = 0;
for(i=0;i<50;i++){
data = analogRead(analogpin0); //read data from analog0 pin
summary = summary + data;
delay(2);
}

t_value =(double)(summary) / 50.0 * 1.1 / 1024.0 * 100.0;

t_1 = (int)(t_value);
t_2 = (int)((t_value - (double)t_1) * 100.0);

time_m = time/60;
time_m = (int)(time_m);
time2 = time - time_m*60;

if (time_h < 10)Serial.print(0);
Serial.print(time_h);
Serial.print(":");

if (time_m < 10)Serial.print(0);
Serial.print(time_m);
Serial.print(" ");

if (time2 < 10)Serial.print(0);
Serial.print(time2);
Serial.print("\t");

Serial.print(t_1);
Serial.print(".");
Serial.println(t_2);

time = time + INTERVAL;
delay(INTERVAL*1000-160); // 段々遅れていくので実測で調整
}


※利用方法
以前、書いた記事「Arduino(アルデュイーノ)ってマイコンを買っちゃった!(入門編)」を参考に、セットアップ。
IDEのスケッチ入力画面に上記内容をコピーペースト&アップロード。
IDE画面上側のアイコンの一番右側(Serial Monitor)をクリックすると、温度が表示されます。


Arduino 一番簡単な温度ロガー(LM35使用)
▲ブレッドボードへの配線の様子。





同じカテゴリー(工作、いろいろ)の記事



この記事へのコメント
追い付かないまでも、少しは理解出来たい

今は遠く遠く…………




ばいや~。
Posted by 超酒酔人 at 2010年10月10日 02:11
※このブログではブログの持ち主が承認した後、コメントが反映される設定です。
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。

※記事内容に言及無いコメントは、コメントスパムと判断して削除する場合があります。