Arduinoで体温計をつくってみよう。
いいセンサはないかなぁと探してみるが、意外とない。手ごろな値段で体温の36度付近を0.1度単位ではかれそうなセンサが見つからない。安い体温計を買ってきてバラすか? いやいや体温計をバラして体温計をつくっても何がしたいのかよくわからんし。
そう言えば以前、温度センサを使って気温と湿度をはかったっけ。
0.1度単位は余裕で測れそうだし、これを使ってみよう。
使用するセンサはこれ。
”HDC1000使用 温湿度センサーモジュール”
ただ、このモジュールは空気の温度を測るセンサなので、どうやって体温を測ろうかな?
そうだ、息の温度を測ってみよう!
ということで、軌道修正。
“Arduinoで息温計をつくってみた”
材料
Arduino pro mini 3.3V
FSTN液晶モジュール(aitendo @¥595)
HDC1000使用 温湿度センサーモジュール (秋月電子 @¥680)
ブレッドボード
乾電池 エネループ×3
作り方
こんな感じ。
FSTN液晶モジュールの使い方はこちらを参考に。
HDC1000使用 温湿度センサーモジュールの使い方はこちらを参考に。
ソースコード
上段に温度・湿度の現在値、
下段に温度・湿度の最大値、を表示してみた。
//デジタル温度計 #include "U8glib.h" #include "HDC1000.h" #include <Wire.h> #define HDC_addr 0x40 HDC1000 hdc(HDC_addr); U8GLIB_MINI12864 u8g(10,9); float max_temp = 0; float max_humid = 0; char c_max_temp[5]; char c_max_humid[5]; void setup(void) { Wire.begin(); u8g.setFont(u8g_font_gdb20); hdc.set(); } void loop(void) { hdc.get(); //最大値保持 if(max_temp < hdc.temp){ max_temp = hdc.temp; } if(max_humid < hdc.humid){ max_humid = hdc.humid; } dtostrf(max_temp, 4, 1, c_max_temp); dtostrf(max_humid, 3, 0, c_max_humid); // picture loop u8g.firstPage(); do { draw(); } while( u8g.nextPage() ); // rebuild the picture after some delay delay(100); } void draw(void) { u8g.drawStr( 10, 25, hdc.c_temp); u8g.drawStr( 80, 25, hdc.c_humid); u8g.drawStr( 10, 60, c_max_temp); u8g.drawStr( 80, 60, c_max_humid); }
使い方
ストローをつかって、温度センサ部に息を吹きかける。
ストローを変えれば衛生面もOK。