タバコの受動喫煙対策で煙の検出用のソフトウェアにいろいろと機能を追加した。
前の話の続きだ。
基本的には、CrowtailのTVOCセンサーの出力がホルムアルデヒドなどの有害な成分に反応して計測値が上昇するので、このセンサーをメインに使っている。
Grove HCHOセンサーも同じような特性なので代用可能だろう。
Arduinoでセンサーモジュールから出てくる電圧を AD変換して計測し、シリアル通信にてWindows PCで受信するソフトを自作して記録(ログ)を取っている。
このWindows用のソフト(Visual StudioでC/C++で作っているもの)にいろいろと機能を追加してみた。
既に作ってあったソフトは、わりと簡単なものだ。
昔、RS-232通信用に自作のライブラリを作った物をそのまま流用して使っている。
ちょっと凝っている点としては、Arduinoマイコンボードが複数あって、つなぎ替えるたびにCOM:通信ポートが変わってしまうのが面倒だったので、昔造ったCOMポートのドライバ情報を調べるライブラリを使って、COMポート番号の指定を自動化している。
以上のソフトをベースに機能を追加してみた。
まず、受信したセンサーの値が一定の設定値を超えたら、PCから警告音を出すようにしてみた。
PlaySoundというAPIを使うと簡単にwavファイルを再生して音を出すことができる。
PlaySound("test1.wav",NULL,SND_FILENAME | SND_ASYNC);
この機能は非常に役立っている。
部屋の汚染が始まる時間が体感で分かるようになった。
そして、2つの部屋のPCをそれぞれ置いて、それぞれの部屋で同時に動作させると、どちらの部屋の汚染が強いのかが警告音から体感で分かるため、汚染されていない方の部屋に避難するのが容易になった。
ただし、どの部屋でも計測値が高くなったときに外に避難しないといけなくなるというのも分かった。
外に避難したあと、部屋の汚染が下がったということを外から確認したいと思った。
PCにリモート操作ソフトを入れてもいいのかもしれないが、このご時世だとセキュリティ的に厳しいだろう。
自宅webサーバーというのもやめてしまっている。
とりあえずkako.comのwebサーバーを借りている場所に適当に仮のフォルダー階層を作って、そこにftpでセンサーのデータのtxtファイルを自動で定期的にアップロードすることにした。
ftpコマンドはWindowsに入っているものをそのまま呼び出して使う。
systemという外部のコマンド(プロセス)を起動する機能を使うと簡単だ、
system("ftp -s:test_cmd.txt");
-sで、ftpを起動したあとの操作をtxtファイルに記述しておいて、動作させている。
内容としてはftp先をopenして、cdコマンドで階層を移動し、putコマンドでファイルをアップロードして、byeコマンドでcloseするという動作だ。
これでkako.comのサーバー上にアップロードしておいたデータを、スマートフォンなどでアクセスして閲覧すれば、部屋の汚染のセンサー計測値を外部からチェックできる。
そして、そのセンサー値が低くなったのを確認して部屋に戻ればよい。