Arudinoで温度センサーアレイ

投稿者: | 2012年9月14日

Arduinoで温度センサーアレイを作って、ホスト側に温度計デーモンを作って、それをウェブサーバから叩けるようにしてみた。

ArduinoはGroveというスターターキットのベースシールドを使い、温度センサーを「吸入口」「電源排気口」「背面排気口」の3つにつけた(アレイじゃないじゃんというのは突っ込まないこと)。アナログポートは最大5つあるけれど、お財布の関係で3つだけつけてみた。

Arduino温度センサー

ArduinoにGroveのベースシールドをつけて温度センサーを3つつけた。

Arduino側プログラムはサンプルコードをいじった簡単なもので、それをフォーマットしてシリアルに出力する。これがそのプログラム。

int B=3975;
int MAXSENSOR=3;
void setup()
{
Serial.begin(9600);
}
float tempcalc(int port) {
int a;
float r;
float t;
a=analogRead(port);
r=(float)(1023-a)*10000/a;
t=1/(log(r/10000)/B+1/298.15)-273.15;
return(t);
}
void loop()
{
float termperture;
for(int i=0; i< MAXSENSOR;i++){
Serial.print(i);
Serial.print(“:”);
termperture=tempcalc(i);
Serial.println(termperture);
}
delay(5000);
}

ホスト側はrubyで作った。シリアルから一定時間毎に読み込んで、その値を内部保留し、クライアントから接続されると、その値を返す。cgi側はクライアントとしてサーバに接続、戻ってきた値をフォーマットして出力という形になる。グラフはGoogle Visualization Apiを使った。

試せるページ
http://h2np.net/cgi-bin/showtemp

ホスト側のサーバは手動で立ち上げているので、上がっていたりいなかったりするので、その点はご了承願いたい。

 

arduino-amazon