maaash.jp

what I create

IRKitを試したい人〜

IRKitについていくつか記事を書いてきました。
IRKitの基板実装工場に行ってきた
fablabkamakuraでIRKitのプログラム書き込み用治具をつくった
Yamaguchi Mini Maker Faire 2013

ようやくできあがってきたので、
IRKitとは何なのか、ちょっと恥ずかしい動画でご紹介いたします。ご覧ください。

やってみたかったんだよねー、こういう海外だとよくありそうな、開発者がしゃべる動画。

詳しいことは IRKitのwebsite にも書きましたが、こちらの最後にも転載します。

2014/1月の初めに AmazonのIRKitの商品ページ から で購入できるようになるかと思いますが、

早く使ってみたい!という方がいらっしゃいましたら
お渡ししますので試してください!

試していただけた方には、amazonを通さない分かなりお安くできるほか、場合によってはそのまま差し上げるかもしれません! ぜひご興味があれば、以下までご連絡お願いしますー。

@maaash
o.masakazu@gmail.com


IRKitとは

IRKitは、WiFi機能の付いたオープンソースな赤外線リモコンデバイス。
家庭のエアコンやテレビ、ライトなど、赤外線で操作できる家電を、
WiFiをとおして、iPhoneやiPadなどから操作できるようにするものです。

IRKitは、公式のリモコンアプリ(coming soon!)から操作できるほか、
IRKit iOS-SDKを使えば、
任意のタイミングで赤外線信号を送ることのできるiOSアプリを簡単につくることができます。

例えば

  • 位置情報を使いiPhoneが家の近くに来たら自動でエアコンを付けるアプリ
  • 1ボタンで家中の家電の電源を消すアプリ(寝る前に便利)
  • ソーシャルと連携してFacebook友だちの見ているテレビにチャンネルを合わせるアプリ

など、家電を操作する様々なアプリの可能性があるでしょう。

また、JavaScriptを使ってブラウザから赤外線信号を送ったり
curlを使って黒い画面(Terminal)から赤外線信号を送ることもできます。

IRKitデバイス自体にHTTPサーバがあり、
JSON形式の赤外線情報を HTTP POSTリクエストにのせて送ることで、赤外線信号を送ることができるのです。
また、IRKitと同じWiFiにいなくても、外出先から赤外線信号を送るための、インターネット上にあるサーバのAPIも公開しています。

IRKitデバイスは、Arduino Derivative(派生)のプロダクトです。
未使用のピンは引き出してあるので、温度センサや明るさセンサなどを追加し、ArduinoIDEを使ってプログラムを書き込めば、
よりスマートなリモコンをつくることもできます。

リモコンのどんなところを、諦めていましたか?
どんなふうに家電を操作したいですか?


IRKit iOS SDK

It’s as simple as:

#import <IRKit/IRKit.h>

[_signal sendWithCompletion:^(NSError *error) {
    NSLog( @"sent with error: %@", error );
}];

See more on irkit/ios-sdk


IRKit Device Hardware

See more on irkit/device/hardware


IRKit Device Firmware

See irkit/device/firmware


IRKit Device HTTP API

IRKitデバイスは、Bonjourを使ってIPアドレスを求めることができます。

% dns-sd -B _irkit._tcp
Browsing for _irkit._tcp
DATE: ---Sat 28 Dec 2013---
23:12:55.623  ...STARTING...
Timestamp     A/R    Flags  if Domain               Service Type         Instance Name
23:12:55.768  Add        2   4 local.               _irkit._tcp.         irkitd2a4
^C

% dns-sd -G v4 irkitd2a4.local
DATE: ---Sat 28 Dec 2013---
23:16:29.698  ...STARTING...
Timestamp     A/R Flags if Hostname                               Address                                      TTL
23:16:29.818  Add     2  4 irkitd2a4.local.                       10.0.1.2                                     10
^C

IPアドレスがわかったら、以下のHTTP APIにアクセスしましょう。
* SafariなどBonjourの.localホスト名を解決するクライアントから以下のHTTPリクエストをする場合には上記は不要です。

GET /messages

最も新しい受信した赤外線信号を返します。

% curl -i "http://10.0.1.2/messages"
HTTP/1.0 200 OK
Access-Control-Allow-Origin: *
Server: IRKit/1.3.0.182.gaf86b44
Content-Type: text/plain

{"format":"raw","freq":38,"data":[18031,8755,1190,1190,1190,3341,1190,3341,1190,3341,1190,1190,1190,3341,1190,3341,1190,3341,1190,3341,1190,3341,1190,3341,1190,1190,1190,1190,1190,1190,1190,1190,1190,3341,1190,3341,1190,1190,1190,3341,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,3341,1190,3341,1190,3341,1190,3341,1190,3341,1190,65535,0,9379,18031,4400,1190]}

POST /messages

赤外線信号を送ります。

% curl -i "http://10.0.1.2/messages" -d '{"format":"raw","freq":38,"data":[18031,8755,1190,1190,1190,3341,1190,3341,1190,3341,1190,1190,1190,3341,1190,3341,1190,3341,1190,3341,1190,3341,1190,3341,1190,1190,1190,1190,1190,1190,1190,1190,1190,3341,1190,3341,1190,1190,1190,3341,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,3341,1190,3341,1190,3341,1190,3341,1190,3341,1190,65535,0,9379,18031,4400,1190]}'
HTTP/1.0 200 OK
Access-Control-Allow-Origin: *
Server: IRKit/1.3.0.182.gaf86b44
Content-Type: text/plain

赤外線信号を表すJSONについて

赤外線信号は↑のようなJSONで表します。以下のキーを持ちます。

Key Description
format “raw”のみ
freq 赤外線信号のサブキャリア周波数を表します。38 または 40 のみ。単位 [kHz]
data 赤外線信号は、サブキャリア周波数のオン・オフからなります。IRKitデバイスはオン→オフ間の時間、オフ→オン間の時間を 2MHz のカウンタで数えます。dataには、カウンタで数えた数をオン・オフの回数分ならびます。

IRKit Server HTTP API

IRKit Device HTTP API は、IRKit Deviceと同じWiFiにつないでいる時のみ、アクセス可能です。
同じWiFiにいない場合には、インターネットからIRKit Deviceに赤外線を送ってもらうには、以下のようにします。
coming soon!!

Comments