このページでは赤外線リモコンの送受信機能をもったXBee子機(Arduinoベース)を親機となるパソコン(Cygwin)から制御する「無線リモート赤外線リモコン」を製作します。また赤外線リモコン操作の履歴を収集するロガーにも対応します。
赤外線リモコン信号をXBee無線によるワイヤレスで送信することで、子機を隣の部屋に設置して制御したり、あるいはスマートフォンを使って外出先から自宅の機器を制御することが出来るようになります。
この機器は赤外線リモコン信号の送信だけではありません。赤外線リモコンの受信機能を持たせることで、普段、何げなく使用している各種の赤外線リモコンの操作履歴を収集することが出来ます。例えば、テレビの何チャンネルを良く見ていたかとか、エアコンを何時に何℃に設定したかなど、役立ちそうにない無駄な情報も年間を通して収集すればちょっとしたビッグデータです。(全部屋の赤外線データを1年間も収集すれば、エクセルで処理できないくらいの膨大なデータになります。)
さらにArduino子機を乾電池で動かせるようにArduino、XBeeともに動作時以外はスリープする機能を付与しました。赤外線で家電を制御する類似の製品は多く登場してきましたが、「乾電池で動く」ところまでの製品はなかなか売られていません。XBeeを組み合わせた自作品でしか出来ない特長だと思います。
まず親機となるハードウェアですが、ここでは実験を容易にするためにパソコンを使います。それなりに複雑な制御・膨大なデータとなるので Arduinoで作る場合は必要な機能を絞り込んでからのほうが良いでしょう。WindowsパソコンにXBeeモジュールを接続するには「XBee USBエクスプローラ」を用います。
親機のXBeeモジュールのファームウェアは「ZIGBEE COORDINATOR API」を用います。また、後述のArduinoで製作する子機には「ZIGBEE END DEVICE」のXBeeモジュールを用います。
Windowsパソコン上にCygwinをインストールする方法は「Cygwinのインストール方法」を参照してください。また、当サイトで配布している「XBee 管理用ライブラリ ZB Coordinator APIソフトウェア」をダウンロードして、CygwinをインストールしたフォルダへZIPを展開します。Cygwinのコンソールで「xbee」ディレクトリ内で「make」と入力するとコンパイルが実行されます。例えばサンプルソフト(exe)は「examples」フォルダにツール類は「tools」フォルダに格納されます。
なお、現時点のXBeeライブラリ(バージョン 1.92)にはサンプルのソースコード(sample60_ir.c)が含まれていませんので、本サンプルコード一式を下記からダウンロードし、「Cygwin親機用」フォルダ内の「sample60_ir.c」をexamplesに格納してください。(XBeeライブラリ Ver.1.93以降に収録予定。)
ここでは実験用としてArduino UNOを使用しブレッドボードで製作する子機Aと、基板に半田付けして製作する子機Bの製作概要を説明します。子機Aもしくは子機Bの「どちらか片方」を製作します。以下に主要部品のパーツリストを示します。この他に配線類や半田、ケース、電池なども必要です。
子機Aの主要な部品はArduino UNO本体、XBee ZBモジュール、XBee ピッチ変換コネクタ、赤外線リモコン受信モジュール、赤外線送信用LEDなどです。子機用のXBee ZBモジュールにはPROではないタイプを使用します。
機
品名
| 参考単価 | 数量
| 備考
| 親 | 機 Widnows PC
| - | 1
| Windows 7を推奨
| XBee USBエクスプローラ
| 1,280円 | 1
| 参考資料
| XBee ZB(S2)モジュール
| 2,900円 | 1
| PRO・RPSMAコネクタ型がお奨め(詳細)
| XBee 専用アンテナ
| 550円 | 1
| RPSMAコネクタ型の場合に必要
| 子 | 機 A ブ レ ッ ド 5V Arduino Uno SMD R3
| 2,390円 | 1
| 改造する場合は秋月互換機を推奨
| XBee ZB(S2/S2B) Module
| 1,700円 | 1
| 子機End Deviceとして使用(PROはダメ)
| XBee用2.54mmピッチ変換基板
| 300円 | 1
| ブレッドボードで作るセンサーで使用
| 上記用のLED、抵抗
| 50円 | 1
| 必要に応じて
| ブレッドボード
| 250円 | 1
| 一例としてEIC-801
| 赤外線リモコン受信モジュール
| 50円 | 1
| SHARP GP1UXC41QS(3.3V/5V動作可)
| 高輝度赤外線LED
| 20円 | 1
| 直径5mmタイプを推奨
| 電界/積層セラコンデンサ 0.1uF
| 10円 | 2
| マイコンとリモコンモジュール用
| MOS FET Nch 2N7000
| 20円 | 1
| ID=200mA VGS=4.5V ※5V動作専用
| 小信号ダイオード BAT43
| 20円 | 1
| 1S2076A,1N4148でも動作する
| カーボン抵抗10Ω 1/4W
| 5円 | 1
| 赤外線LED用。高電力タイプを推奨
| 子 | 機 B 半 田 3.3 V Atmel ATmega 328P
| 250円 | 1
| Arduinoブートローダを書き込む(詳細)
| ICソケット 28P 300mil
| 50円 | 1
| マイコンを外す必要があるため必須
| 水晶発振子 16MHz
| 30円 | 1
| リードの曲げ加工が必要
| XBee ZB(S2/S2B) Module
| 1,700円 | 1
| 子機End Deviceとして使用(PROはダメ)
| DCDC搭載 XBee用ピンピッチ変換
| 1,200円 | 1
| Strawberry Linux製 MB-X
| 基板(ブレッドボード配線タイプ)
| 80円 | 1
| Picotec AZ0526(秋月で販売)
| 赤外線リモコン受信モジュール
| 50円 | 1
| SHARP GP1UXC41QS(3.3V/5V動作可)
| 高輝度赤外線LED
| 20円 | 1
| 直径5mmタイプを推奨
| 電界/積層セラコンデンサ 0.1uF
| 10円 | 2
| マイコンとリモコンモジュール用
| セラミックコンデンサ 22pF
| 10円 | 2
| 水晶クロック用
| NPN型トランジスタ
| 20円 | 1
| Icmax=500mA以上、HFE=100程度
| |