【IRKit】ブラウザから家電リモコンを操作する方法

IRKitはWi-Fi機能の付いた赤外線リモコンデバイスで、家電の赤外線リモコンの代わりをしてくれます。例えば、パソコンやスマホのブラウザがリモコンの代わりとなり、家電を操作することも可能になります。
今回は、そのIRKitを利用し、ブラウザから家電操作をできるようにする例となります。
また、IRKitの後継機のNature Remo で、ブラウザから家電リモコンを操作する方法 については、以下のリンク先を参考にしてみてください。
【IRKit】ブラウザから家電リモコンを操作する方法
今回の例では、ローカルに配置したHTMLファイルにブラウザでアクセスし、そのページからからIRkitで家電操作をできるようにします。
以下、ソースコードの例となります。また、ソースコードではjQueryとbootstrap3を利用しています。
See the Pen IRkit Browser Remote control by yic666kr (@yic666kr) on CodePen.
HTML・JavaScriptのコードについて
今回のソースコードの説明となり、主にリモコンの「ON/OFF」ボタンと、音量「+」、「-」ボタンの箇所をサンプルとして説明しています。
リモコンのボタンで使用する要素にIDを付与(HTML)
HTMLのソースコードでは、以下のようにリモコンの各ボタンで使用する要素に任意のIDを付けます。
<div class="tv_on_off_box">
<a href="#" id="tv_on_off">ON/OFF</a>
</div>
<div class="tv_volume_box row">
<a class="col-xs-6" href="#" id="tv_volume_up">+</a>
<a class="col-xs-6" href="#" id="tv_volume_down">−</a>
</div>
リモコンの各ボタンの赤外線信号を取得
ブラウザから家電を操作するには、各ボタンごとに以下のような赤外線信号のJSONデータが必要となります。
{"format":"raw","freq":38,"data":[XXXXXXXX]}
リモコンの赤外線信号のJSONデータの取得方法は、以下のリンク先を参考にしてみてください。
上記、赤外線信号を使用するには、IRkitのWi-fiネットワークのパスワードも必要となります。(そのパスワードはIRkitを購入した際に同梱されている用紙に記載)
そして、赤外線信号を表すJSONにパスワードを追加し、以下のように修正します。
{"format":"raw","freq":38,"password":"XXXX","data":[XXXXXXXX]}
追加した「"password":"XXXX"」の「XXXX」の箇所がWi-fiネットワークのパスワードとなります。
赤外線信号のデータを含むオブジェクトを作成(jQuery)
jQueryのソースコードでは、まず、オブジェクトを作成し、HTMLで各ボタンに指定したidをキー、そのボタンに対応する赤外線信号を値とします。
var obj = {
'tv_on_off':'{"format":"raw","freq":38,"password":"XXXX","data":[XXXXXXXX]}',
'tv_volume_up':'{"format":"raw","freq":38,"password":"XXXX","data":[XXXXXXXX]}',
'tv_volume_down':'{"format":"raw","freq":38,"password":"XXXX","data":[XXXXXXXX]}',
//------------以下省略--------------------------------------------------------
};
各ボタンをクリックした際に、赤外線信号をIRkitに渡す(jQuery)
jQueryのコードのeachメソッド内では、HTML要素にclickイベントを実装しています。それにより、それらの要素がクリックされたら、XMLHttpRequest()で赤外線信号をIRkitに渡しています。
また、XMLHttpRequest()の.openメソッドで指定している「http:// X.X.X.X /」の箇所は、IRkitのIPアドレスとなります。IRkitのIPアドレスの確認方法は、以下のリンク先を参考にしてみてください。
$.each(obj, function(key, value){
$("#" + key).click(function() {
xhr = new XMLHttpRequest();
xhr.open('POST','http://X.X.X.X/messages',true);
xhr.send(value);
});
});
XMLHttpRequest()については、以下のページの「ソースコードについて」の箇所を参考にしてみてください。
まとめ
ローカルに配置した上記のHTMLファイルにブラウザからアクセスし、表示されたリモコンの各ボタンを押すと、IRkitから赤外線を送信できると思います。
今回はテレビのリモコンのみでしたが、ソースコードを変更、追加すれば、DVDプレイヤー・エアコン・扇風機等もブラウザの画面上から、赤外線リモコンの代わりに操作することが出来ると思います。
「IRKit」の後継機「Nature Remo」
IRkitは、現在、生産を終了していますが、後継機となる「Nature Remo」や「Nature Remo mini」が販売されています。