散々既出だけど自分でもやってみたらできた。以前のブレッドボードに追加する形で実装した。
Raspberry Piから赤外線を送受信できるようにしてlircを使う
主にこの2つのページを参考にした。
念のため両方の回路図に出てきたパーツを秋月電子から通販で合計1600円ほどで購入した。 1つ目のページの回路図の方が赤外線LEDの出力が強そうだったので最初に組んでみたところ、何とかなったのでそのまま採用した。 数値の計算についても色々と書いてあって勉強になった。
参考ページを鵜呑みにしていきなりlircを使う前に、先ずは普通のLEDチカチカと同じことができるかを確認するのが着実で良いと思う。赤外線なので目に見えないが、携帯電話のカメラ越しなどで確認することができる。
僕の場合、最初はトランジスタのピンアサインが左右逆になっていて動いていなかった。説明書のピンアサイン図を見た時、見下ろし透視図だと思ってしまったんだけど実際は見上げた形の図だったのがその原因だった。テスタで確認していてようやくそのことに気づけた。
エアコンの信号を記録して送信する
irrecordだと色んなサイトで書かれているようにエアコンの信号を記録できなかった(信号長が短いのかON/OFFだけ反応していた)。なので、以下のサイトを参考に無理やりlircd.confを手動で書き換えて何とかした。
rawモードの記述フォーマットがよくわからなかったけど、pulseから始まってspaceと交互にマイクロ秒を列挙するだけで良いようだったのでmode2の出力から割りと簡単に変換できた。 利用した信号も一発撮りで何とかなった。
しかし、赤外線LEDの指向性が強くて方向の調整に多少苦労した。試しにヤスリで頭を削って赤外線が収束しないようにしてみたが、それでも角度の調整が結構シビアだった。
ブラウザからエアコンを操作できるようにする
Raspberry Piからエアコンを操作するところまではできたので、次にインターネットからいい感じに操作できるようにした。
システム構成は、結論としては
- herokuにデプロイしたウェブアプリ
- cronで20分毎に命令をcurlしてエアコン操作スクリプトに食わせる
- https://github.com/shimobayashi/marv2/blob/master/gladys.rb
curl http://yourapp.herokuapp.com/settings.json | /path/to/gladys.rb | logger -t gladys
という形にした。 こうすることで、何らかの原因でエアコンの操作が通じなくても20分後にはまた命令を送ってくれるし、Raspberry PiにHTTPサーバーを入れたりしなくても済む。自宅の外からスマートフォンでももちろん使える。 詳細はソースコードを見て欲しい。
まとめ
思っていたよりは簡単にできた。どちらかと言うと、快適な動作をするように調整していく方が手間が掛かりそう。 学習リモコン買うとそれだけで結構いい値段するので、やる気があるのならこういうやり方も色々と遊べて良いのではないだろうか。
- 作者:遠藤 敏夫
- 出版社/メーカー: 秀和システム
- 発売日: 2010/11/25
- メディア: 単行本
IRKit - iPhone,iPadを使って外出先からエアコン等の家電を操作できる学習リモコン
- 出版社/メーカー: maaash.jp
- メディア: ホーム&キッチン