RaspberryPiに赤外線モジュール導入で家電を操作してみる

1年ぶりに連絡したら高校の同級生がボーナス自慢。
二言目にはお金の話。もう関わらないと決めた管理人。 

 

前回の部屋紹介記事で登場した赤外線モジュールの記事です。

アマゾンのサイバーマンデーセールで購入した赤外線モジュールをRaspberryPiに導入して家電を操作できるようにしたいと思います。購入したものは以下のリンクから。

ビット・トレード・ワン USB赤外線リモコンアドバンス

 

 

外観はこんな感じです。

f:id:purt:20181222154832j:plain

白い基盤でおしゃれです。大きさはフリスクサイズとなっております。ちょっと調べただけなのですが、フリスクサイズの基盤、フルスク基盤なるものがあり、おそらくそれを採用しているのだと思います。

画像はフリスクのケースに乗せてあります。ケース(フリスク)は付属しなので注意してください。

f:id:purt:20181222154536j:plain

付属品は取説と保証書、広告です。梱包はかなりの簡易となっております。基盤は右側の小さいパッケージに入っているだけでした。個人的には壊れていなければ、まあいいかなという感じですけど。

 

ちなみに説明書には対応OSがvista以降のWindowsとなっておりますが、今回はRaspberryPiで操作させます。

https://cdn-ak.f.st-hatena.com/images/fotolife/p/purt/20181216/20181216211252.jpg

接続イメージは前回の使いまわし。接続用のUSBはminiBコネクタです。USBは付属していないので、存在感すらなくなっていたPS3のコントローラーに使用していたものを拝借です。近いうちに短いフラットケーブルに付け替えます。

しかし、今時miniBコネクタってないですよね。せめてmicroUSBにしてほしかったです。

 

ちなみにラズパイで運用する理由は、常時電源がONなのでいつでも扱えるからです。

エアコンのタイマー機能は1時間刻みだったり、毎日、毎週、何時に電源をONもしくはOFFなどの細かい設定ができない機種が多いと思うのでRaspberryPiなどのコンピュータを挟めばすべて解決できます。

Cronでコマンドを仕込んだり、Webアプリ、もしくは外部からのSSH接続を設定しておけば、外出先のスマホからも操作ができます。

 

ただし、一方通行の通信なので、対象機器が送信された赤外線の信号を受信しているかどうかは確認できません。中には双方向に対応しているものとかあるかもしれませんが、大体の機器は対応していないでしょう。

 

セットアップについて

基本的には以下のサイトの手順でコマンドを実行すればすぐに使えるようになります。

qiita.com

 

セットアップコマンド※上記リンクより抜粋

sudo apt install libusb-1.0.0
git clone https://github.com/Drunkar/bto_ir_advanced_cmd.git
cd bto_ir_advanced_cmd
make
sudo make install
bto_advanced_USBIR_cmd --help 

上から順番にコマンドを実行すれば、インストールは完了します。簡単ですね。

bto_advanced_USBIR_cmd --help コマンドを実行すれば使い方が表示されます。日本語表記なのでわかりやすいです。

 

基本的な使い方

ヘルプコマンドで出てくる『使い方の例』を参照すれば基本的な使用は可能となります。

受信系
$ bto_advanced_USBIR_cmd -r # (生データ)受信開始
$ bto_advanced_USBIR_cmd -s # (生データ)受信停止
$ bto_advanced_USBIR_cmd -g | tee data.txt # 生データ所得

送信系
$ bto_advanced_USBIR_cmd -d `cat data.txt`

 

赤外線信号の受信

下記コマンドを実行します。

bto_advanced_USBIR_cmd -r

そうすることで受信が開始されます。コンソールにも受信を開始しましたと表示されれば、OKです。

$ bto_advanced_USBIR_cmd -r
受信を開始しました。
$

赤外線モジュールに向けて赤外線を飛ばします。赤外線信号の受信中は、画像では見づらいですが、基盤中央部分が緑色に光ります。画像では適当に照明のリモコンを使用しています。ちなみにテキストで報告しても意味ないかもしれませんが、照明OFFの信号を保存しました。

f:id:purt:20181222152823j:plain

 

赤外線信号受信の停止

以下コマンドで赤外線信号受信を停止します。

bto_advanced_USBIR_cmd -r

受信を停止しましたとコンソール上に表示されることを確認します。

$ bto_advanced_USBIR_cmd -s
受信を停止しました。
$

 

赤外線信号の送信

受信ができれば送信です。

その前に、受信した赤外線信号をファイルに書き出します。以下のコマンドを実行することで直前に受信した赤外線信号をファイルに書き出せます。

ヘルプコマンドの『使い方の例』に則り、保存ファイルをdata.txtとしていますが、複数の信号を同一ファイル名に書き出すと上書きされてしまうので、適宜変更してください。

bto_advanced_USBIR_cmd -g | tee data.txt 

※ファイル名は適宜変更する

ファイルの書き出しが成功したら送信して動作確認します。以下のコマンドを実行します。注意点としては、バッククオート(`)で囲まなければ、正常に動きません。

bto_advanced_USBIR_cmd -d `cat data.txt`

※適宜ファイル名を変更する

こういうのって動画などでとったほうがいいのでしょうが、ここはブログなので、テキストで報告します。照明が消えて、正常に動作したことを確認できました。

 

Linuxコマンドを多少かじっている人であれば、コマンドの意味は分かると思います。コマンドを改良したり、シェルを組んだり、aliasに登録したりなどをすればさらに利便性が向上すると思います。

一番はスマートスピーカーと連携して音声コマンドで操作できるのが一番ですね。

 

不満点

接続はminiBコネクタ

接続インターフェースがminiBコネクタです。私はPS3のコントローラのケーブルがあったので動作確認はできましたが、今時miniBコネクタなんて使っている人いるのでしょうか。せめてmicroUSBにするか、ケーブルを付属を付属するか、どちらかにしてほしかったです。

 

ケース

フリスクサイズとうたいつつ、ケースがありません。正確には見つけることができませんでした。自分でフリスク購入して入れろということなのでしょうか。RaspberryPiが透明ケースなので、合わせて透明なケースにしたいのですが、見つかりません。

 

今後はAmazon Echoと連携して音声コマンドで家電の操作が行えるようにしたいと思います。