スマホで操作する赤外線リモコン

2016.9 初版作成
2018.7 回路微修正

私の自宅は居間と寝室が別の階にあります。 夜、寝る前にエアコンをつけたいのですが、階段を上がるのが 面倒です。自宅内は Wifi で通信できるので、 スマホでエアコンを on/off できる装置を作りました。 とても便利です。

外出先から操作することも理論的には可能です(セキュリティに 注意を払ってルーティングの設定をする必要がありますが・・・)。

  1. 概要
  2. ハードウェアの製作
  3. ソフトウェアのインストール作業
  4. Arduino での操作
  5. Raspberry Pi の設定 その1
  6. Raspberry Pi の設定 その2
  7. おまけ

(補足)

本電子工作では Raspberry Pi と Arduino を使っています。 Arduino は 電子回路とやりとりする部分を担当し、 Raspberry Pi はネットワーク通信部分を担当します。 Raspberry Pi と Arduino はシリアル通信でやりとりします。

ネットを見ると Raspberry Pi のみで、 赤外線リモコンを実現しているサイトが多数あります。 私も Raspberry Pi 3 と wiringPi を利用する C の プログラムで赤外線の送受信を行ってみました。 プログラムはうしこlogさんが ここ で公開されている C のプログラムを少し改造して使わせてもらいました (うしこlogさんのサイトのプログラムにはバグがあります。それを 修正改良したプログラムを三木克彦さんが ここ で公開されています)。 日立の扇風機のリモコンを学習させたところ、 高い確率で送信に失敗します。 X Window System を起動しているときは、成功率は 1/5 以下 であり、X Window System を起動していないときは 1/2 程度でした。

赤外線は 38 kHz(周期 26.3 us)で変調します。 Raspberry Pi が作り出す信号をデジタルオシロで観察すると、 時によって周期が 25 us 〜 28 us (40 kHz 〜 35.7 kHz) の範囲で ばらつきます。これが送信失敗の原因と思われます。 Raspbian はマルチタスクの OS であり、 1 つのプロセスが CPU を独占することは出来ないので、 us オーダーの時間制御は難しいようです。 確実な動作を期待するには、赤外線 LED の変調 部分は Arduino のようなマイコン(1 つのプログラムが CPU を 独占する)に任せた方が 良いと思われます。