たねやつの木

Photographs, Keyboards and Programming

Raspberry PiでIRKitを操作する。

079A9455.jpg

Raspberry Pi 3 Model B

IRKit

赤外線学習リモコン。は現在より高機能なものも発売されている。

IRKit

なんか価格高騰してる?もしかして生産終了なのかな...・ω・

セットアップ

初期セットアップ(通信できるようになるまで)はこの方の記事などを参考にしました。

IPアドレスの固定

無線LANルーターの再起動などのたびにIPアドレスが変わってしまっては困るので、IRKitのIPアドレスを固定します。

IRKitの設定を直接変更することはできないのでルーターの設定(DHCPリース)から固定します。 パスワードの書いてあるカードにMACアドレスも一緒に記載されているので、それを参考に。

信号を受け取る

以下のcurlコマンドで受信したリモコンの情報を表示できます。 リモコンのボタンをIRkitに向けて押した後に実行してください。

curl -i "http://[IRKitのIPアドレス]/messages" -H "X-Requested-With: curl"
例) curl -i "http://192.1681.100/messages" -H "X-Requested-With: curl" 面倒なのでシェルスクリプトにまとめる。ファイル名はgetSignalとします。

#!/bin/bash

ADDRESS=http://[IRKitのIPアドレス]/messages

curl -i "${ADDRESS}" -H "X-Requested-With: curl"

作成したらchmod 775 getSignalで実行権限を与えます。

./getSignalで実行すると以下のような出力を得ることができます。

HTTP/1.0 200 OK
Access-Control-Allow-Origin: *
Server: IRKit/3.0.0.0.g85190b1
Content-Type: text/plain

{"format":"raw","freq":38,"data":[18031,...]}

末尾の[18031,...]の部分がリモコンの信号をデジタル化したもの。 この部分だけ切り取ってファイルとして保存します。

ファイルの末尾には改行が含まれていないことを確認してから保存してください。 (試してはいないですが、なんとなくマズそうなので。。。orz)

ちなみに2回連続でこのコマンドを実行してもシグナルを取得できません。 もう一度表示したい場合は再度IRKitに向けてリモコンのボタンを押す必要があります。

信号を発信する

以下のコマンドで取得したシグナルを発信できます。

curl -i "http://[IRKitのIPアドレス]/messages -H "X-Requested-With: curl" -d "message=[18031,...]"

こちらもまとめる。ファイル名はsendSignalとした。

#!/bin/bash

COMMAND=`cat $1`
MESSAGE=message\=${COMMAND}
ADDRESS=http://[IRKitのIPアドレス]/messages

curl -i "${ADDRESS}" \
-H "X-Requested-With: curl" \
-d ${MESSAGE}

./sendSignal [[18031,...]を保存したファイル]でIRKitから赤外線が発信できます。

発信した際にはIRKitのLEDが点滅します。真っ暗な中だと結構目立ちます(´∀`)

点滅したにもかかわらず期待した動作をしない場合には、 取得した文字列のコピーが不十分であったり、そもそもIRKitの赤外線が届く範囲に操作したい機器が ないだけかもしれません。

これでRaspberry Piのコマンドライン上でIRKitを操作することができるようになりました。

応用(?)

ここまでくればWEBサーバーをRaspberry Pi内に立てて、HTMLとPHPを使えばスマホをリモコン代わりに 使うことができます!

こんなことをしなくてもスマホのアプリでいっぱいあるのですが、自分で作るから楽しいんですよ!(´ε` )(笑)

以下の記事の動画で行っていることもRaspberry Pi上でIRKitを操作できるからこその技です。

最後に

ココまでやっても普通のリモコンとできることは何ら変わらないのですが、他のプログラムやアプリケーションと 組み合わせることで「Raspberry Pi + IRKitで赤外線を送信する」ということの便利さが見えてくるはずです。

そのほかRaspberry Piでできること・やったことに関してはコチラの記事をご参考願います(´ω`)