Hue Tapスイッチが高いのでESP-WROOM-02で物理スイッチを自作する 前編
Philips hue、ウチでは主に朝の天気予報装置として活躍しているのですが、良い設置場所がなくて、今はデスクのサブライトとして設置しています。
そういうわけで、できれば手軽に点けたり消したりできるようにしたいのですが、hueは基本的にアプリで操作するものなので、イチイチスマホのアプリを立ち上げなきゃいけません。些細なことですがこれはやっぱりストレスなので、できれば物理スイッチが欲しいです。
そういう要望は多かったようで、hueは公式に物理スイッチを販売しています。
。。。うん、高い。カッコイイし電池いらないしで製品としては文句無しなんですが、とにかく高い。
hueはWeb APIで操作できるのだから、HTTPリクエストさえ発行できるものがあれば、同じようなものは作れるハズ(さすがに電池なしはハードル高いですが)。
ということで、以前購入して放置していたESP-WROOM-02モジュールを引っ張りだしてきました。
これで物理スイッチを作ることができれば、だいぶお安く済みそうです。というワケで、いざチャレンジ。
さて、このESP-WROOM-02モジュール。「なんか単品でWi-Fi通信できるArduinoっぽい!」程度の知識で購入していたので、何をどう扱えば良いのかさっぱりわかりません。とりあえず、ソフトを書き込む方法から調べないと。
こっちを買っていれば、こちらのページのやり方に従ってすぐに開発できたのでしょうが、あいにく自分が買ってしまったのはモジュール単品をピッチ変換しただけのものです。しょうがないので、自分で何とかします。
とりあえずArduinoとして開発したいので、Arduino IDEの確認です。Arduino cc系IDEの1.6.xが必要なのだそうです。
起動時にこんな画面が出るやつです(画像はMacで起動した場合)。自分は1.6.8を使っています。バージョンが最新だからといってこっちからダウンロードしないよう注意。Arduinoは内部分裂してからややこしい。。。
ESP8266(ESP-WROOM-02に積んでるチップ)の開発環境のインストールを、公式の手順に則って進めていきます。
それから、こちらも参考にします。
では早速。
Mac版だと、”Arduino→Preferences”を開いて、”追加のボードマネージャーのURL”に以下の画面の1行目を追加します。
2行目は自分がAdafruitのTrinketを開発するために追加しているURLなので、今回は関係ないです。
次に”ツール→マイコンボード→ボードマネージャ”で、” ESP8266″で検索して出てくるものをインストールします。
あとは、”ツール→マイコンボード→ボードマネージャ”で”Generic ESP8266 Module”を選択した後、さらに”ツール→マイコンボード”で以下の項目を設定します。
- Flash Mode:QIO
- Flash Frequency:40MHz
- CPU Frequency:80MHz
- Flash Size:4M(3M SPIFFS)
- Debug Port:Serial
- Debug Level:全て
- Reset Method:ck
- Upload Speed:115200
- シリアルポート:後で接続するFTDI USBシリアル変換アダプターのポート
上記の各設定の意味はよくわかっていないのですが、とりあえず自分が試してうまくいった内容を記載しています。
開発環境の準備は以上でおしまいです。で、一番の問題は「何をどう接続するねん」というところです。これについては、以下を参考にさせていただきました。
- 第32回 Arduinoマイコンとしても使える小型WifiモジュールESP-WROOM-02を使ってみる(準備編)
- 第33回 Arduinoマイコンとしても使える小型WifiモジュールESP-WROOM-02を使ってみる(Wifi通信テスト編)
- ESP-WROOM-02使ってみる
これらをまとめると、ポイントは以下です。まずArduino IDEでプログラムを書き込むときは、ESP-WROOM-02の各ピンを以下のように接続します。
- 3V3 … 3.3Vで80mA程度電流を流せる電源を接続
- GND … GND (LOW)
- EN … HIGH
- IO15 … LOW
- IO2 … HIGH
- IO0 … LOW
- TX … FTDIのRX
- RX … FTDIのTX
で、書いたプログラムを実行するときは
- IO0 … HIGH
に変える。他はそのまま。
「書き込みに80mA程度消費」というのがちょっと心配だったのですが、以下を使えば特に問題なく書き込めました。
以上を踏まえて、小さいブレッドボード上に書き込み&動作確認用の配線をしました。
ちょっとごちゃっとしてしまいましたが、こんな感じです。
ESP-WROOM-02を重ねるとこんな感じ。
IO13でLチカをする前提の配線です。結局書き込みとプログラム実行を切り替えるのはIO0のHIGH/LOWなので、それをジャンパーピンで切り替えられるようにしています。写真の状態はIO0をLOWに落とす接続なので、これにさらに
こんな感じでFTDI USBシリアル変換アダプターを接続してArduino IDEの書き込みボタンを押します。
こんな感じの表示になれば書き込み成功です。
実行するときは、ジャンパーピンを逆にして、電源だけ繋いでやればOKです。
うん、問題なさそうです。さらにRXとTXも繋ぐと、Arduino IDEのシリアルモニタでデバッグもできる。。。ハズなのですが、これが何度やっても表示してくれませんでした。謎。
まあとりあえず、ESP-WROOM-02にプログラムを書き込むことはできるようになったので、次回でWiFiに繋いでhueを操作するところまでやりたいと思います。
ちなみに、「書き込み装置の配線とかよくわからん!めんどい!」という人は、素直にESP-WROOM-02の開発ボードを買う方がお手軽だと思います。
ただ、どうしても少し割高にはなるし、サイズも少し大きくなってしまうので、ESP-WROOM-02を使ったモノをたくさん作りたいとか、できるだけコンパクトにしたいという場合には、FTDI USB シリアル変換アダプターで書き込み装置を作って、ESP-WROOM-02単品を買う方が良いと思います。
ディスカッション
ピンバック & トラックバック一覧
[…] 前回に引き続き、Philips hueの物理スイッチを自力で作りましょうのコーナーです。前回まででESP-WROOM-02を自由にプログラムできるようになったので、後はWi-Fiに繋いで、hueに対してHTTPリ […]
[…] ESP-WROOM-02は以前使ったことがあるのですが、今回はよりお手軽に開発可能な、スイッチサイエンス製のESPr Developerを使うことにしました。 […]