LabVIEWでIRKit (NatureRemo)
IRKit(学習機能付リモコン)を使って、TVや扇風機などのリモコン操作、やってみました。
WiFi経由でhttpクライアント関数で読み取ったデータを送信するだけなので、LabVIEWからも簡単にできました。
学習リモコンとして使うならiPhone/Androidアプリをダウンロードすればいいだけ、なのですが、温度センサーなどを組み合わせてちょっとした自動化にも使えそう、ということでLabVIEWで作ってみました。
初期設定はiPhone/Androidアプリで
残念ながら、初期設定には、iPhone/Androidアプリが必須です。WiFi環境も必要です。
それとIRKitにはバッテリーがないので、使うときはUSB給電が必要。
IRKitでリモコン操作
IRKitとの通信は httpGet/httpPostなので、LabVIEWのhttpクライアント関数だけでできます。
手順
操作したいリモコンの赤外線信号をIRKit経由で読み取って、読み取った赤外線信号のデータをhttpPostすれば、IRKitから赤外線で対象の家電にリモコンの信号が送信される、という仕組みです。
IRKitのIPアドレスの取得
http通信するのにIRKitのIPアドレスが必要ですが、それを調べるのが一番の難関かもしれません。
DHCPのみでIPアドレスを固定できないので、IRKitを電源On/OffするたびにIPアドレスが変わる可能性があります。
IRKitの公式サイトでは Bonjour で調べる方法が紹介されていましたが、Windowsには標準には入っていません。
コマンドプロンプトから、IRKitのデバイス名に".local"をつけてpingするとIPアドレスが表示されるようです。
こんな感じ
> ping <IRKit名>.local
リモコン信号の取得
IRKitに向けてリモコンボタンを押した後、2,3秒のタイムラグをおいてLED点滅した後、httpGetすると、JSON形式文字列データでリモコン信号のデータが受信できます。
一度しか読み取れないので、もし、失敗したら、もう一度、リモコンボタンを押すところからやり直します。
リモコン信号の送信
取得したリモコン信号データ(JSON形式文字列)をhttpPostする
アプリケーション作ってみた
簡単なアプリケーションにしてみました。githubにソース公開します。
LabVIEW 2014で作成。Toolkitやドライバは特に必要ありません。
感想
IRKitはAmazonで7~8千円で手に入る。 電子工作しなくても手近な家電を操作できるようになるので便利。
温度センサーと組み合わせれば、気温にあわせて扇風機のOn/Offを自動化とか手軽に実現できそう。
欠点、というか不便なところもある。
IRKitというか赤外線リモコンだと、機器の状態が取得できない。
扇風機にしてもTVにしても電源ボタンを押すという操作はできても、実際にOnなのかOffなのかわからない。
目の前にあれば人間が判定できるが、それでも反応が遅いとつい連打してしまって点いたり消えたり繰り返して気持ち悪いことがある。
あとは、スマフォのアプリだとスマフォごとに学習操作が必要なので、データを簡単に共有できる方法があるといいなと思う。
Tips
IRKit公式サイトでは curl を使って解説していますが、Windowsには標準では入ってません。
"Git for Windows"にcurlコマンドが含まれていますので、もし、Gitを使っていて、"Git for Windows"をインストールしているなら、Git bashから curlコマンドが使えます。
-> 最近のWindows10にはcurlも入っています。
IRKitの入手
IRKit自体はもう発売終了しているようで、入手は難しくなっているようですが、
IRKitベースの(?)「 Nature Remo(https://nature.global/jp/top )」という製品が発売されているようです。ローカルなネットワークで利用するAPIも公開されているようなので、できれば、そのうち入手して対応できれば、と思っています。(いつになるやら)
-> NatureRemo miniで試してみたが、ローカルapiで通信成功(200 OK)するが、リモコン信号が送信されない。miniだからなのか、natureremoではローカルAPIは無効になっているのかは不明。NatureRemoをスマホアプリから操作するには問題ないし、とても便利なんだが。
-> 2021/1/31 NatureRemo mini2を購入してリトライ、今度は問題なく動作した。前回miniで動かなかった原因はなんだったのか。