IoTでインフルエンザウィルスが生存できる雰囲気かどうか計測

IoT, JavaScript, MESH

はじめに

社内で暑さと乾燥がひどいという話をうけて、IoTがハヤっているようで先日ビックカメラでMESH(温度・湿度)というものみつけましたのでこれを使って計測しようと思いました。
https://meshprj.com/jp/
ソニーが発売しているIoTビーコンタグで人感や動作や明るさなどを検知し、専用のアプリへ情報を送信するそうです。
(けっこう前からあるらしいんですが最近まで知りませんでした。)
meshapp.png
アプリの画面はこんな感じ。

設計

とりあえず設計です。
インフルエンザウイルスは空気中の水分量が11グラム以上あれば死滅するとのこと。
よって温度と湿度がわかれば水分量を計算して今安全か危険かが判断できるはずです。
まずAugustの式で飽和水蒸気圧を算出します。

飽和水蒸気圧をもとにTetensの式で飽和水蒸気量を求めます

今回は気圧は1とします。
こんな感じに設計しました。
ia.jpg

実装

ではやってみましょうとのことでであれこれ進めたのですが、ビーコンから値は受け取れるけどその値を算術演算することはできませんでした。
調べてみると開発者向けにSDKが提供されていて慣れてる人ならJavaScriptでバリバリ書けるよ!ってことなので利用しました。
meshsdk.png
こんな感じのブラウザベースの開発画面です。しんどそう。
さっぱりわからないのでドキュメントを見てみたんですがどうにも情報が少ないです。
なにができてなにができないのかわかりませんし、ビルトインな関数やら変数の情報がまったくありません。

結局、
・iPhoneなどがないと動作しない(ビーコン単体では動作しない)
・カスタムタグから引数を他の既存のタグへ渡せない(カスタムタグ同士はOK)
・IFTTTというサービスでSlackなどへ連携できるっぽいけど引数を渡せないから使えない

という感じでてんでダメダメな課題だらけでした。

なのでもう全部自分で作ればいいじゃんということでSDKのなかでバリバリJavaScriptを描くことにしました。
で。書いたのがこちら。

いろいろと雑ですが心が折れてしまいました。
RuntimeValue(実行時の共通変数的なもの)だとかInitializeとかいろいろあったんですがぜんぜん使えなかったんで全部Executeで処理しました。

運用

Slackチャンネルに投稿するようにしました。
slack.png
これで現在やばいかそうでないかがわかります。
Enjoy influenza check life!

この記事を書いた人

鈴木
鈴木juke / footworker

和服とベイプと居合と醗酵とたまごふわふわとカッティングシェイプスとジュークフットワークに傾倒する人です

IoT, JavaScript, MESH