開発キットを使わないでESP-WROOM-02に書き込む手順

ESP-WROOM-02にハマっています。より新しいのが出ているようですが、Blutoothはまだ要らないので見送っています。
大量生産するわけでもないのに、スイッチサイエンスの開発キットで飽き足らず、単体のESP-WROOM-02とシリアル変換モジュールを購入しました。これらを使ってプログラムを書き込んでから単体を稼働させるところまでを実施したときのメモです。

# 環境

- ESP-WROOM-02単体
- ピッチ変換用基盤シンプル版
- レギュレーター LP2950 3.3
- Mac OS X 10.11 (El Capitan)
- Arduino IDE 1.6.8 

# 実験

## プログラムを書き込む準備

Anduino IDEでの準備。（つまりパソコン側での準備）
以下のサイトを参考にした。
尚、Macの場合は、シリアルポートは、USBシリアル変換モジュールがUSBに挿さっていないと
表示されないので注意。
https://www.mgo-tec.com/esp8266-board-install01-html

プログラムの用意。
前の記事を参考。
http://qiita.com/butada/items/df6fbc4066cc449b7cce

ただし、GPIOのポートの数と使えるポートが変わったので、
それに合わせた変更は必要。
主にやっていることは以下。
・WiFiの設定
・GPIOポートの初期設定
・HTTPリクエストに対応する処理の設定

書き込み時の回路。

```
              ESP-WROOM-02       AE-TTL-232R    LP2950 3.3
                  +-----+           +-----+      +-----+
                  | GND |---+-------| GND |------| GND |
                  | IO0 |---+       | CTS |      |     |
     +--- R=1K ---| IO2 |           | +5V |------| IN  |
     +--- R=1K ---| EN  |           |     |      |     |
     +--- R=1K ---| RST |           | RTS |      |     |
     |            | TXD |-----------| RXD |      |     |
     |            | RXD |-----------| TXD |      |     |
     |            |     |           +-----+      |     |
     +------------| 3V3 |------------------------| OUT |
                  +-----+                        +-----+
```
     
## プログラムを書き込む

1. USBシリアル変換モジュールをUSBに挿す。
1. シリアルポートを設定。
1. IDEでコンパイル＆書き込み。（マイコンボードに書き込む）

IDEの出力例：

```
最大434,160バイトのフラッシュメモリのうち、スケッチが230,269バイト（53%）を使っています。
最大81,920バイトのRAMのうち、グローバル変数が32,204バイト（39%）を使っていて、ローカル変数で49,716バイト使うことができます。
warning: serialport_set_baudrate: baud rate 921600 may not work
Uploading 234416 bytes from /var/folders/cf/9qnf3dcd4571vh5m9sscp37w0000gn/T/build8a6e86df26bd15b0a536e718098b77fe.tmp/WiFiWebServer.ino.bin to flash at 0x00000000
................................................................................ [ 34% ]
................................................................................ [ 69% ]
.....................................................................            [ 100% ]
```

## 動作確認(シリアルモニタ接続)

シリアルモニタに接続した状態で
動作確認をする。


動作確認時の回路。
スイッチサイエンスのページによるとIO0も1K抵抗を付けて
プルアップしないといけないようだが、付けなくても動作したのと、
そもそも動作確認のためには、IO0をOUTPUTにし、更に別回路に接続する必要があるので
オープンにしておいた。

              ESP-WROOM-02       AE-TTL-232R    LP2950 3.3
                  +-----+           +-----+      +-----+
                  | GND |-----------| GND |------| GND |
                  | IO0 |           | CTS |      |     |
                  | IO2 |           | +5V |------| IN  |
     +--- R=1K ---| EN  |           |     |      |     |
     +--- R=1K -*-| RST |           | RTS |      |     |
     |            | TXD |-----------| RXD |      |     |
     |            | RXD |-----------| TXD |      |     |
     |            |     |           +-----+      |     |
     +------------| 3V3 |------------------------| OUT |
                  +-----+                        +-----+

RSTの*をGNDに接続したらリセットがかかり、
プログラムが動き出す。

シリアルモニタにIPアドレス等が出力されればWiFi接続OK。

あとは、パソコンからcurlコマンド等で、HTTPリクエストを受け付けていることを確認。

```
curl 192.168.1.103/gpio2/0 # LEDが消える
curl 192.168.1.103/gpio2/1 # LEDが点く
curl 192.168.1.103/gpio0/0 # LEDが消える
curl 192.168.1.103/gpio0/1 # LEDが点く
```

## 動作確認(単体)

```
              ESP-WROOM-02                  ENELOOP x 2
                  +-----+                     +-------+
                  | GND |-------------+-------| GND   |
                  | IO0 |--LED--R=1K--+       |       |
                  | IO2 |--LED--R=1K--+       |       |
     +--- R=1K ---| EN  |                     |       |
     +--- R=1K -*-| RST |                     |       |
     |            | TXD |                     |       |
     |            | RXD |                     |       |
     |            |     |                     |       |
     +------------| 3V3 |---------------------| +2.4V |
                  +-----+                     +-------+
```


電源は乾電池3本。2本でも行けた。
乾電池2本の場合はレギュレーター不要。


実際の配線図はこちら。
（２つほど見える4本足の部品はフォトカプラです）

![FullSizeRender.jpg](https://qiita-image-store.s3.amazonaws.com/0/89176/73a6166d-0bd7-2f0b-be91-458846609a85.jpeg)

# まとめ

ESP-WROOM-02開発キットを使わずに、安価な単体でプログラムの書き込みから、動作確認まで完了させることができた。
乾電池２本で動くのは嬉しい想定外だった。これならば、ボタン電池だけでも動作してくれそうなので、更に小さい機器を作る場合に面白いかもしれない。

# 参考

ESP-WROOM-02
https://www.switch-science.com/catalog/2346/

ESP-WROOM-02ピッチ変換用基板《シンプル版》 （基板のみ）
https://www.switch-science.com/catalog/2363/

AE-TTL-232R USBシリアル変換モジュール
http://akizukidenshi.com/catalog/g/gM-11007/