2017年12月2日土曜日

WiFi学習リモコンを組み立ててみた

Wi-Fi接続の学習リモコンといえばIRKitとかeRemoteとかいろいろ出てるけどどれも意外と値段が張る…
IRKitに関してはオープンソースなので回路図やソフトウェアが公開されていて部品を買って組み立てれば多少はお安くなるんだろうけども、結構部品もお高い。

安価なWiFi搭載マイコンである、ESP-WROOM-02を使って学習リモコンを作っている例が何件かあったので調べてみた。
1つはminIRum。IRKitの一部機能を実現しているもの。
作者さんのサイトではHomebridgeでHomeKit互換の学習リモコンとしての使用例が。IRKit互換なのでHomebridgeではIRKit用のプラグインそのまま使えるっぽい?
もう一つはIR Station。こちらはフル機能の学習リモコンで、タイマーなども使える模様。ブラウザから操作するので対応機種選ばなそう。

ということで今回はIR Stationを作ってみることに。
どちらもESP-WROOM-02なのでハードだけ作ってしまえばソフト書き換えでどっちにでもなりそうだし。

ソースコードや回路図はGithubのIR Stationにアップロードしてくださっているのでそちらを利用させていただいた。

とりあえず部品は手持ちのものを利用して作成することに。
前にAtmega328やRaspberry Piで学習リモコンを自作した時の余りを利用した。

ESP-WROOM-02はだいぶ前に購入して、ユニバーサル基板に実装していたものを再利用した。


ケース買ってからLEDの位置を決めようかと思っていたので赤外線LEDの実装適当。
RGB LEDもケースに入れるときかな…

ソフトの方はArduinoから書き込む。
ESP8266の設定はGithubに書いてあるとおりなんだけど、NTPを使って時刻が正常に取得できなかったのでNTPのサーバーの変更を行った。
ntp.cppのIPAddress timeServerのところをNICTのIPアドレスに変更した。

これで正常に時間が設定されるようになった。

ついでにルータからIR Stationのホスト名を取得するとESP_から始まるデフォルトのホスト名になっていたのでホスト名を"IR-Station"に変更してみた。

修正箇所はwifi.cppの57行目あたりにWiFi.biginがあるのでその上に
WiFi.hostname("IR-Station");
と追加した。

プログラムを焼いたらお次はSPIFFSにWebサーバ用のデータを書き込む。
ファイルシステムにデータをアップロードするためにArduinoにプラグインを追加しないといけない。
Arduino ESP8266 filesystem uploader
こちらからツールをダウンロードしてドキュメントの中にあるArduinoフォルダにtoolsというフォルダを作ってESP8266FSフォルダごと突っ込むだけ。

あとはツールのESP8266 Sketch Data Uploadからデータをアップロードするだけ。
マイコンの設定が正常に行われてないとうまく書き込めないので注意。

起動するとIR-StationというSSIDでAPモードで立ち上がるのでパスワード(IR-Station)を入れて192.168.4.1にアクセスするとWiFiの設定ができる。
あとは自宅のWiFiに繋げば完成っぽい。

詳しい使い方は作者さんのページがわかりやすい。

一応ダイキンのエアコンとNECのシーリングライトがうまく動いてるのですごく便利になった。
エアコンのリモコン信号は特殊な物が多いのでエアコンのリモコンを学習できるリモコンなら他の製品も問題なく動きそう。
ESP-WROOM-02ならRaspberry Piみたいに電源切るとき気を使わなくても良いし、低消費電力だし。
後はこれを小型のケースに組み込みたいな

0 件のコメント:

コメントを投稿