(1) 現在の温度[℃]、湿度[%]、気圧[hPa]を計測して表示する。
(2) WBGT ( Wet Bulb Globe Temperature 、暑さ指数)を簡単な式で近似して求めたWBGLT値をもとに、熱中症警戒レベルを3段階で表示する。
(3) 前回起動時の気圧をEEPROMに記録しておき、現在の気圧と同時に表示し、前回よりも高いか低いかを表示する。
※画面は開発中のもの。永久に開発中か?
AVRマイコン ATmega168P
気圧・温度センサ MPL115A2
温度・湿度センサ DHT11
液晶キャラクタディスプレイモジュール SC1602BS*B
トグルスイッチ
半固定抵抗器 10kΩ
炭素皮膜抵抗器 10kΩ×4本
ショットキーバリアダイオード 1S10
電解コンデンサ 470μF
積層セラミックコンデンサ 0.1μF×4個、1μF
セラロック 20MHz
電池スナップ、電池ボックス(単3型4本用)
NiMH電池(単3型)4本
ピンヘッダ 3×2列
ICソケット 28PIN, 8PIN
ピンソケット 4PIN
ユニバーサル基板 95x72mm
※クリックすると拡大される。
※クリックすると拡大される。
※このページに収録されたソフトウェアはベータ版であり、不具合を含む可能性がある。また、今後改良されることもある。
本ページにアップロードされているZIPファイルを展開し、そのディレクトリに移動。
ターミナルから次のコマンドを入力してAVRマイコンにファームウェアを書き込む。
make fuse
make program
(以上は、OS X + CrossPack-AVRの場合)
Windows環境でAVR StudioやATMEL Studioを使っている場合は、ヒューズビットは次の設定のみチェックする。
Ext. Full-swing Crystal; Start-up time PWRDWN/RESET: 16K CK/14 CK + 65ms; [CKSEL=0111 SUT=11]
Serial Program downloading (SPI) enabled [SPIEN = 0]
Boot Flash section size = 128 words Boot start address=$1F80; [BOOTSZ=11]
気圧・温度センサMPL115A2の読み出し関数と TWI ( I2C )の制御関数のコード(twi_i2cMaster.c, .h, mpl115a2.c, .h) 、富樫 豊彦氏のWebサイト " 趣味の電子小物の自作 " 内のページ " THERMO HYGROMETER SD LOGGER MINI V0.2 " ( http://www.suzume-syako.jp/personal/Handicrafts/entori/2012/5/21_Thermo_hygrometer_SD_logger_mini_V0.2.html ) で公開されているコードを使用させていただいた。ライセンスはGPL v3。ありがとうございます。
温度・湿度センサDHT11のデータ読み出しについては、" 氾濫原 "というWebサイトの" DHT11 という温湿度センサーを読む " ( http://lowreal.net/2014/02/11/1 )のコードを参考にさせていただいた。ありがとうございます。
環境省のサイト(http://www.wbgt.env.go.jp/wbgt.php)では、暑さ指数 (WBGT=Wet-bulbe Globe Temperature) という値で、熱中症警戒レベルを判断している。このWBGTという数値は、室内の場合、湿球温度と黒球温度から計算される。このため、温度と湿度からWBGTを求めるには極めて複雑な計算が必要となる。
そこで、本機では気温30℃近辺での熱中症の危険度を計算することを目標に、WBGLT (Wet-bulbe Globe LIKE Temperature) という値を導入した。WBGLTは、WBGTの湿球温度を相対湿度から推計して求めた近似的な暑さ指数となっている。また、浮動小数点演算をせずに、short型整数のみで計算できるようにしてある。
WBGLT = ( 7 tw + 3 t ) / 10
tw = ( H es + 81 t + 1700 ) / 251
es = 17 ( t - 30 ) / 10 + 34
ここで、
WBGLT >= 24のとき、警戒
WBGLT >= 25のとき、厳重警戒
WBGLT >= 28のとき、危険
と判断する。
WBGTとWBGLTは若干(かなり?)ズレが生じるので、本機の熱中症警戒はあくまでも参考程度に受け止めていただきたい。