Raspberry Pi と 学習リモコン(ADRSIR)で家電を操作する
以前、irMagician でエアコンを操作しようとしたところ、データ容量が大きくてできませんでした。
エアコンが irMagician(赤外線モジュール)で操作できない
他に良い赤外線モジュールがないかと定期的に調査していると、以下の製品を発見しました。
ADRSIR ラズベリー・パイ専用 学習リモコン基板
早速、試してみます。
電源接続
Raspberry Pi の5V、もしくは、USBから給電します。
給電方式は、基板上の電源切替ジャンパピンで切り替えます。
今回はUSBから給電します。
Raspberry Pi のUSBポートと基板のUSBポートを接続します。
赤外線信号の学習
- 基板上の記憶/送信モード切替SWでLEARNを選択します
- 記憶先の基板上の操作スイッチを押します
- リモコンを操作し、赤外線を基盤に照射します
記憶モードの際は、インジケータLEDが青色点灯します。
赤外線を受信した際は、緑色点滅します。
今回は、SW番号1にエアコンの停止を記憶させました。
赤外線信号の送信
- 基板上の記憶/送信モード切替スイッチでCONTROLを選択します
- 送信したい赤外線が記憶されている操作スイッチを押します
操作スイッチ1を押すと、稼働していたエアコンが停止しました。
irMagician では実現できなかった、エアコン操作もできました。
Raspberry Pi からの操作
基板上に保存されている赤外線データを Raspberry Pi に保存したり、保存したデータから赤外線を照射します。
ビット・トレード・ワンよりスクリプトが公開されていますが、 Raspberry Pi で動作させるには少し修正が必要でした。
参考にさせていただいたサイトは以下です。
ADRSIRのコマンドラインツール IR-remocon02-commandline.pyを使ってみる
スクリプトのダウンロード
ビット・トレード・ワンのサイトに公開されているスクリプト群をダウンロードします。
リモコンいじり放題!!ラズパイ専用 学習リモコン基板で使えるソフトウェア3種詰め合わせ公開 | Bit Trade One, LTD
実際に利用するスクリプトは「IR-remocon02-commandline.py」のみです。
スクリプトの修正
ダウンロードしたまま実行してもエラーとなったり、想定と異なる動作をするため、ソースを修正します。
30行目あたりの空行に下記内容を記載します。
from __future__ import print_function
161行目あたりに記載されてるパスを、スクリプトを保存したパスに変更します。
変更前
dir_name = '/home/pi/I2C0x52-IR/'
変更後(例)
dir_name = '/home/pi/ADRSIR/'
202行目が照射ではなく書き込みになっているので修正します。
変更前
write_command(memo_no,block2)
変更後
trans_command(block2)
ジャンパピンの接続
RSコンポーネンツ製の Raspberry Pi ケースには入らなかったので、必要なジャンパピンだけ接続しました。
ASM-1900036-01 | 拡張ボードケース Raspberry Pi用, ABS樹脂, クリア | DesignSpark 【通販RS】
- I2C SDA(pin3)
- I2C SCL(pin5)
- GPIO 4(pin7)
10個の操作スイッチに記憶されている赤外線データは、以下のGPIO番号から出力されます。
今回は1に保存したため、GPIO 4 を接続します。
スイッチ番号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
GPIO番号 | 4 | 17 | 27 | 18 | 5 | 6 | 13 | 12 | 22 | 23 |
I2Cの有効化
I2Cが無効化されている場合は有効化しておきます。
I2Cデバイスのアドレスの確認
I2Cデバイスとして認識されているか確認します。
$ i2cdetect 1
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-1.
I will probe address range 0x03-0x77.
Continue? [Y/n] y
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: 03 04 05 06 07 -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- 52 -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
認識されているみたい。
赤外線データの保存
基板に保存されている赤外線データを Raspberry Pi に保存します。
「0」と入力している引数は操作スイッチ番号です。SW番号1は0となります。
$ python IR-remocon02-commandline.py r 0 > filename.dat
00001200110012001100120011001100110012001100C20385004400100034001000110011001200110012001100340010001200110012001100120011001100110034001000120011003400100034001000120011003300100034001000340010003400100033001000120011001200110034001000120011001200110012001100110011001200110012001100120011001200110012001100120011003300100012001100340010001200110012001100120011003400100033001000120011001200110012001100120011001200110012001100120011001100110012001100120011001200110012001100120011001200110011001200110011003400100034001000340010001200110033001000120011003400100034001000250584004400100033001000120011001200110012001100340010001200110012001100120011001200100034001000120011003400100034001000120011003300100034001000340010003400100033001000120011001200110034001000120011001200110012001100110011001200110012001100120011001200110012001100120011001200110033001000120011001200110012001100120011003400100012001100110011001200110012001100120011001200110012001100120011001200110012001000120011001200110012001100120011001200110012001100120011001200110012001000340010001200110034001000120011003300110011001100250584004400100034001000120011001200110012001100340010001200100012001100120011001200110034001000120011003300100034001000120011003400100034001000330010003400100034001000120011001200110033001100110011001200110012001100120011001200110012001100120011001200110012001000120011001200110012001100120011001200110012001100120011001200110011001100340010001200110012001100340010001200110012001000340010001200110012001100340010001200110033001000120011003400100012001100120011001200110012001100120011001100110012001100110011001200110012001100120011001200110012001100110011001200110034001000120011003400100012001100120011001100110012001100120011001200110012001100120011001200110012001100110012001100110012001100120011001200110012001100120011003300110033001000120011001200110012001100120011001200110012001100110011001200110012001100120011003400100034001000120011001100110012001100120011001200110012001100120011001200110012001100110012001100110012001100120011001200110012001100120011001200110033001000120011001200110012001100120011001200110034001000330010001200110012001100120011001200110012001100120011001200110011001100120011001200110012001100120011001200110012001100120011001200110011001100120011003400100034001000120011001200110033001000120011004205
赤外線データの照射
Raspberry Pi に保存されているデータをもとに赤外線を照射します。
$ python IR-remocon02-commandline.py t `cat filename.dat`
稼働していたエアコンが停止しました。