Check! ESP-WROOM-02 開発ボードの始め方

こんにちは、 @dz_ こと大平かづみです。

Prologue - はじめに
====

今回は、[スイッチサイエンス](https://www.switch-science.com/ "スイッチサイエンス")さんの [ESP-WROOM-02 開発ボード](https://www.switch-science.com/catalog/2500/ "ESP-WROOM-02開発ボード - スイッチサイエンス") に Arduino SDK を焼いて使えるようにするまでを記載します。

全面的に「[ESP-WROOM-02 開発ボードの使い方をザッと紹介](https://www.mgo-tec.com/blog-entry-ss-wroom-howto01.html "ESP-WROOM-02 開発ボードの使い方をザッと紹介 | 電子工作と介護と生活と・・・")」を参考にさせていただきました。

ESP-WROOM-02 について
====
ESP-WROOM-02 は ESP8266EX を搭載したWiFiモジュールで、ATコマンドで WiFi が扱えるほかに、親しみやすい Arduino SDK を使っての開発も可能です。

![20160216_arduino_023.png](https://qiita-image-store.s3.amazonaws.com/0/3812/142a0e76-cec0-03f9-4702-3ea3dc33b534.png)
(左:ESP-WROOM-02単体、右:ESP-WROOM-02開発ボード)

開発ボードを利用する
----
この記事で扱う **開発ボード** (上図右)には、この WiFiモジュールと併せてUSBシリアル変換ICの FT231XS が搭載されており、USBで接続するだけですぐに開発を行うことができます。

なお、開発ボードをブレッドボードに挿して使いたい場合は、ピンヘッダのはんだ付けが必要です。

なお、ESP-WROOM-02 単体での利用については、後述します。

使うもの
====

- ESP-WROOM-02 開発ボード
- USBケーブル（mini USB ⇔ USB）
- PC (Windows)
- Arduino IDE

大まかな手順
====

1. Arduino IDE をインストールする
2. Arduino IDE に ESP8266 のボードマネージャーをインストールする
2. Arduino IDE に ESP8266 のボードマネージャーを設定する
3. ESP-WROOM-02 をPCに接続する
4. ATコマンドによる動作確認
5. プログラムを書き込んで動作確認（※）

※ 本記事では、プログラムを書き込んでの動作確認の際に、ブレッドボード、LED、抵抗、ジャンパワイヤを使用します。

手順
====

Arduino IDE をインストールする
----

[arduino.cc](https://www.arduino.cc/ "Arduino") の [ダウンロードページ](https://www.arduino.cc/en/Main/Software "Arduino") から、自分の環境にあったインストーラーを取得します。このとき、ドネーション（寄付）するかどうか聞かれますが、しなくてもダウンロードできます。しない場合は、「JUST DOWNLOAD」をクリックしてください。（私は気に入ってるので少額を寄付しています。お気持ちで～）

![20160216_arduino_001.png](https://qiita-image-store.s3.amazonaws.com/0/3812/e0d6319d-e2c4-454e-329a-d4722501daff.png)

ダウンロードできたら、インストーラー `arduino-1.6.7-windows.exe` を起動しましょう。画面の指示に従ってインストールしてください。

Arduino IDE に ESP8266 のボードマネージャーをインストールする
----
まず、ブラウザで [esp8266/Arduino: ESP8266 core for Arduino](https://github.com/esp8266/Arduino "esp8266/Arduino: ESP8266 core for Arduino") の `Installing with Boards Manager` > `Available versions` > `Stable version` の `Boards manager link` のURLをコピーします。

それから、Arduino IDE 起動し、 `ファイル` > `環境設定` を開きます。そして、コピーしたURLを `Additional Boards Manager URLs` に貼り付けてください。（複数のURLを指定する場合は、コンマで区切ります。)
![20160221_esp_001.png](https://qiita-image-store.s3.amazonaws.com/0/3812/2e5c2ca4-b90e-70eb-9a27-4da24e485f3a.png)

Arduino IDE に ESP8266 のボードマネージャーを設定する
----
`ツール` > `マイコンボード` で、`Generic ESP8266 Module` を選択します。それから、 `Reset Method` を `nodemcu` に設定します。

![20160221_esp_002.png](https://qiita-image-store.s3.amazonaws.com/0/3812/d2f34d7b-f18d-9784-5376-78dc9b0a496d.png)

ESP-WROOM-02 をPCに接続する
----
USBケーブルで接続します。

![20160221_esp_003.png](https://qiita-image-store.s3.amazonaws.com/0/3812/41047794-3b28-dfd0-baa6-130daff78f83.png)

Arduino IDE の `ツール` > `シリアルポート` で、該当する `COMx` を指定します。それから、右上の虫眼鏡アイコンをクリックしてシリアルモニタを開き、改行と速度を指定してください。

- 速度: 115200 bps 
- 改行: CRおよびLF 

![20160221_esp_004.png](https://qiita-image-store.s3.amazonaws.com/0/3812/03bd6f47-d505-1948-3a69-60693f269169.png)




ATコマンドによる動作確認
----
初期状態の ESP-WROOM-02 は、`ATコマンド` が使えます。ATコマンドとは、
> モデムやターミナルアダプタ(TA)の制御に使われるコマンド体系の一つ

だそうです。(引用: [ATコマンドとは｜AT command - 意味/解説/説明/定義 ： IT用語辞典](http://e-words.jp/w/AT%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89.html "ATコマンドとは｜AT command - 意味/解説/説明/定義 ： IT用語辞典"))

ESP-WROOM-02 で利用できるATコマンドのうち、基本的なものを紹介しします。

- `AT` (応答確認)
- `AT+GMR` (SDKの情報)
- `AT+CIFSR` (IP, アクセスポイント情報)

これらのコマンドを送信して、エラーがなければ動作確認OKです。これらのSDKなどの情報などは、念のためメモしておくとよいでしょう。

![20160221_esp_005.png](https://qiita-image-store.s3.amazonaws.com/0/3812/087ee7c4-84af-f1d5-d1ae-60ea902ee399.png)


プログラムを書き込んで動作確認
----
それではいよいよプログラムを書き込んでみましょう。

Arduino IDE に最初から準備されているスケッチ（ソースコード）を利用します。

`ファイル` > `スケッチの例` > `01.Basics` > `Blink` を開きます。

![20160221_esp_007.png](https://qiita-image-store.s3.amazonaws.com/0/3812/01e1d3f4-c970-1f93-b320-e32b74ff07de.png)

このスケッチは、1秒ごとに13番ピンから出力される電圧を、HIGH と LOW で切り替えています。 ここでいう LOW は 0V で、HIGH はマイコンによって異なります。この ESP-WROOM-02 開発ボードの場合は 3.3 V です。

次に配線です。開発ボードの `13番ピン` → `抵抗` → `LED` → `GND` となるように配線してみてください。抵抗は 10kΩを使いました。LEDは極性があるので注意してください。

![20160221_esp_006.png](https://qiita-image-store.s3.amazonaws.com/0/3812/d7341b7e-a700-4aa2-ec73-13ffd65bc427.png)

配線ができたら、マイコンボードへスケッチを書き込みましょう。左上の矢印アイコンをクリックしてください。コンパイルがはじまり、コンパイルが終わるとマイコンボードへ書き込みが始まります。

![20160221_esp_008.png](https://qiita-image-store.s3.amazonaws.com/0/3812/ea2ca829-2dda-a045-fb90-cc5f36c3df38.png)

書き込みが完了したら、LED の動作を見てみましょう。

LED が1秒ごとに点滅するのが確認できましたか？(^^)/

LEDの点滅が確認できたら、無事、動作確認完了です！

補足
====
ESP-WROOM-02 単体での利用について
----
今回は、開発ボードを利用しましたが、ESP-WROOM-02 単体でも同じように Arduino SDK で開発ができます。

ただし、ESP-WROOM-02 単体を利用するには、別途USBシリアル変換アダプタや、リセット用のスイッチの配線が必要になります。こちらの記事をご参照くださいませ。

- [Check! IoT ができるようになるまで ～ まずはシリアル通信を使えるようになる](http://qiita.com/dz_/items/277eba8cb760b81a2688 "Check! IoT ができるようになるまで ～ まずはシリアル通信を使えるようになる")
- [Check! IoT ができるようになるまで ～ ESP-WROOM-02 にシリアル通信で接続する](http://qiita.com/dz_/items/7cca78ffa792a55416e2 "Check! IoT ができるようになるまで ～ ESP-WROOM-02 にシリアル通信で接続する")
- [Check! IoT ができるようになるまで ～ ESP-WROOM-02 にプログラムを焼く](http://qiita.com/dz_/items/eb7c80d3caf4a5c84274 "Check! IoT ができるようになるまで ～ ESP-WROOM-02 にプログラムを焼く")


Epilogue - おわりに
====
さて、本記事は [ITエースをねらえプロジェクト](http://www.yokotecci.or.jp/itap/ ”ITエースをねらえプロジェクト”) の [初めてのフィジカルコンピューティング](http://www.yokotecci.or.jp/itap/?post_type=seminar&p=1086 "初めてのフィジカルコンピューティング | ITエースをねらえプロジェクト") でお話しする内容の抜粋でした。これから ESP-WROOM-02 を触る方の参考になれば幸いです。

私としては、これまでに、ESP-WROOM-02 単体と開発ボードとを両方を使ってみて、とても良い勉強になっています。

だいぶできることが増えてきたので、次のステップに進んで、使えるものを作っていきたいです。