カメレオンシリーズのひとつとして、空気汚染度をセンシングしようと実験していました。boschのBME680というガスセンサを使いました。ちょっと扱いがめんどくさかったですが、アルゴリズムを熟考して空気汚染度によって照明の色合いを変化させるという目的は達成。めでたしめでたし。

さて今回のお題はここから。
実はこのセンサ、ひとつのセンサ内に温度、湿度、気圧、ガスの4つのセンサが入っています。 ということはこれからの季節で気になるWBGT(Wet Bulb Globe Temperature : 湿球黒球温度)、まあよく使われる言葉でいうと「暑さ指数」が簡易的に計算できるのではないか!と思った訳です。

正確にWBGTを計算するにはその名の通り黒い球体の中心に温度センサを固定して輻射熱による温度を測定しなければなりません。そして黒球は直径15cm以上必要だと。これだと小型化できませんので真面目に作ろうとはさらさら思いませんって。同じ気温でも湿度が高い方が暑く感じる!なんて当たり前、黒球なんて使わなくてもだいたい計算できるだろうって思った訳です。
ネットを探したら気温と湿度とWBGTの関係の表が見つかりました。

注意書きに「室内で日射がない状態とされたものなので」とあります。ということは室内に置くインテリア的な装置には十分使えるではないか!
という事で暑さ指数計測器の開発が始まりました。

ぶっちゃけこの表をそのままプログラム内にテーブルで持てばそれで完成ですが、そんな力技や湿度が5%刻みだったりするのが気に入らなかったりしたのでこの表からWBGTを計算する式を求めました。

って結局一度は全データをエクセルに入力したんですけどねw

結果、求めた式は

気温 T [℃]
湿度 W [%]
暑さ指数 WBGT [℃] = T × (0.62 + W × 0.005)

この式で計算してみた結果がこんな感じ

完璧だね

という訳でBME680で暑さ指数計を作るというのが出来ました。
(できたの?はい出来てます。続きはまた今度)