動画のエンコードとか、CGのレンダリングとか、重いし時間もかかるしで終了するまでPCを放置するしかない処理というのがいろいろある。
処理中に放置するのはいいのだが、とうに処理が終了してるのに忘れてて、アイドル状態で放置ということが結構ある。
これを防ぐために以下のようなシステムを作ってずっと便利に使っている。
1.PC上で処理の完了を検知しBATファイルを実行する(Windowsプログラム)。
2.PowerShellからWi-Fi経由でESP8266に通知する
(DOSコマンド = BATファイル)。
3.通知を受け取ったESP8266が基板上のブザーを鳴らしてLEDを点滅させる
(Arduinoスケッチ)。
「Powershell -WebRequest-」
「ESP8266モジュール(ESP-WROOM-02)を試す その22 Arduino IDE – WiFiWebServer –」
ここでは1について書く。
PC上の処理が終わったことを検知してコマンドを実行するプログラムの話だ。
今まで、2と3は自作のものだが1は「PCの見張り番」というフリーのプログラムを使わせていただいていた。
「PCの見張り番」
「『PCの見張り番』+『TWEETコマンド』でプッシュ通知する。」
「PC上である処理が終了したらメールで知らせる。」
VB6でもCPU使用率が取得できるという例を目にしたので、ならばそこも自分で作ってみようということになった。
ここらを参考にさせていただいた、というか真似させていただいた。
http://nienie.com/~masapico/api_sample_pdh03_vb.html
https://www31.atwiki.jp/abwiki/pages/181.html
http://nonsoft.la.coocan.jp/SoftSample/SampleCpuPercent.html
ほぼ、完成した。
よく使うプロセスの名前をリストにしておき、実行したらリストから選んでスタートをクリックする。
使用率が規定値より下がったらESP8266に通知だ。
「PCの見張り番」では画像の無変化状態を調べて処理の終了を知っていたが、他の窓がかかってるのを見逃してたり、連続で使うのにその都度再起動する必要があったりで、若干不便だった。
自分で作ったプログラムなら完全にかゆいところに手が届くわけで非常に満足だ。
ちなみに、今回のお題とは関係ない受け側のESP8266の基板だが、写真載せた記憶がなかったのでこの際載せておく。
圧電ブザーとその下にLEDが載っている。
LCDに表示されているのは、H67Mから受け取った3回の処理終了通知と、毎正時にメインPCから送られた動作確認用の時刻通知(「Windows10で1時間おきにBATファイルを実行する。(2)」)の履歴だ。
作成は2017年の12月頃で、もう15ヶ月連続で稼働し続けている自作基板の中でも最も役に立っているものの1つだ。