http://getirkit.com/のiOS SDKを使って赤外線信号をキャプチャするアプリつくった。
最初はIRKit Device HTTP APIで信号をキャプチャしようと思っていたんだけど、前回のエントリ(IRKit手に入れた)でも書いたように他にノイズの信号をひろってしまうと最後に取得した信号がとれないためコツがいる。これに対してIRKit iOS SDKは信号を拾うとイベントを出してくれるのでこっちの方が拾いやすい。
というわけでツールのつもりでiOSアプリを書いてみた。RubyMotionを使おうかと思ったけどSDK側のデバッグもしないといけないかもと思ったのでとりあえず普通にObjective-Cで作ってみた。シミュレーターで動くので実機で動かす必要もなさそう。というか実機で動かしてない。
git clone https://github.com/makotokw/IRCapture.git
cd IRCapture
cp -p IRCapture/IRCaptureConfig.h.sample IRCapture/IRCaptureConfig.h
pod install
open IRCapture.xcworkspace
IRCapture/IRCaptureConfig.h
にAPIキーを書くと動くはず。APIキーはSDKのドキュメントにもあるが
curl -d "email={your email}" "http://api.getirkit.com/1/apps"
{"message":"You will receive an email shortly, please click the URL in it to get an apikey"}
をすると指定したメールアドレスにApiKeyを取得するためのURLが送られてくる。
IRCaptureはコンソールログにIRKit-Device-APIで送信できるjsonデータを出力しているのでXcodeからコピーして使う。
うちのエアコンは同じ信号でトグルになっているかと思っていたがオンとオフの信号は異なっていた。トグルになっているはエアコンではなくリモコンの状態の方だ。よって遠隔でつけたつもりが消している・・・ということにはならなさそう。リモコンもそうだけどIRKitをエアコンの方に向けてないと信号を拾ってくれないので置き場や向きが重要っぽい。
しかし、定期的に10バイトくらいの信号を拾っているんだけどこれは何なのだろう。