ESP-WROOM-02 の開発キットを使ってみる (第1回) -- Mac に繋いで AT コマンドを叩くまで

## Introduction

このところ急に電子工作熱が出てきて、ネットで色々調べてたら「ESP-WROOM-02」というWiFiモジュールがArduino的な使い方も出来るとかで、Web屋的にもちょっと面白そう。
で、もう既に記事もたくさんあって、だいぶ周回遅れですが、秋月 [^1] で開発キットを買ってきたので試してみることにしました。


## 1. 用意したもの

* ESP-WROOM-02 開発キット (AE-ESP-WROOM-02-DEV) @ 秋月電子(1,280円) [^2]

メインで必要なのはこれだけ。
![fig-1.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4899/92cfe664-73e2-048e-3da4-8419aab7555a.jpeg)
ブレッドボードには、写真撮影用に挿したふりをしてるだけですｗ

その他は、

* Mac (MacBook Pro 15" 2018)
* USB Type C ←→ USB Type A 変換アダプタ @ USB 3.0 使えるやつ
* USB Type A ←→ Micro USB (Micro-B) 変換ケーブル @ そのへんにあったやつ
* Arduino IDE 1.8.9 [^3]

といったかんじ。


## 2． Macと繋いでみる

といっても、開発キットの中に入ってる説明書 [^4] にも書いてある通り、ESP-WROOM-02 の Micro USB コネクタに、コンピュータから USB ケーブルで繋ぐだけです。

そして、Arudino IDE を起動して、メニューの `ツール` > `シリアルポート` から `/dev/cu.usbserial-xxxxxxxx` を選択。
次に、メニューから `ツール` > `シリアルモニタ` と開きます。

で、改行コードを `CRおよびLF`、通信速度を `115200bps` としてから、このあたり [^5] [^6] を参考に、以下のATコマンドを叩いていきます。
(ATコマンド…懐かしい響きだな…)

#### 起動確認： `AT`
```
AT

OK
```

#### ファーム/SDK のバージョンチェック： `AT+GMR`
```
AT+GMR

AT version:1.3.0.0(Oct 28 2016 11:29:39)
SDK version:2.0.0(6ccde98)
compile time:Mar 31 2017 14:50:03
OK
```

#### IP アドレス/MAC アドレス確認： `AT+CIFSR`
```
AT+CIFSR

+CIFSR:APIP,"192.168.4.1"
+CIFSR:APMAC,"xx:xx:xx:xx:xx:xx"

OK
```

![fig-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4899/14c23fca-79d5-e37b-cc1f-1dd344904fe3.png)


## 3. WiFi に繋いでみる

次に、WiFi に接続をしてみます。
こちらも、Arduino IDE のシリアルモニタから AT コマンドで行います。

#### WiFi モードの確認：`AT+CWMODE?`

```
AT+CWMODE?

+CWMODE:2

OK
```

(1=子機、2=親機、3=子機+親機)

#### WiFi モードの設定：`AT+CWMODE=n` (n: 同上)

```
AT+CWMODE=1


OK
```

#### アクセスポイントのリスト表示： `AT+CWLAP`
(認証方式、SSID、信号強度、MACアドレス、etc.) [^6]

```
AT+CWLAP

+CWLAP:(<認証方式>,<SSID>,<信号強度>,<MACアドレス>, …
+CWLAP:(<認証方式>,<SSID>,<信号強度>,<MACアドレス>, …
+CWLAP:(<認証方式>,<SSID>,<信号強度>,<MACアドレス>, …
+CWLAP:(<認証方式>,<SSID>,<信号強度>,<MACアドレス>, …
…

OK
```

#### アクセスポイントに接続： `AT+CWJAP="<接続先WiFiのSSID>","<password>"`

```
AT+CWJAP="<接続先WiFiのSSID>","<password>"

WIFI CONNECTED
WIFI GOT IP

OK
```

#### AT+CIFSR (前掲)

```
AT+CIFSR

+CIFSR:STAIP,"192.168.xxx.xxx"
+CIFSR:STAMAC,"xx:xx:xx:xx:xx:xx"

OK
```

最後の結果で、 IP アドレスが払い出されているのが確認出来ると思います。
試しに、同じネットワークに繋がっているマシンのターミナルから、この IP アドレスに向かって ping を投げて、返事が返ってくれば OK です。

さーて……では、なにを作ろうかなー。(続く、と思う)


## Postscript

店頭でパーツを物色してたら、10歳ぐらいの子がラズパイの箱を抱えてて、「あー…最近のキッズは、ラズパイとかから電子工作に入門するんだなぁ…」と衝撃を受けた、~~電子工作おじ~~ かつての電子工作キッズなのであった。


## References

* [Check! ESP-WROOM-02 開発ボードの始め方 - Qiita](https://qiita.com/dz_/items/27c2e19981e0bcddcf66)
* [ESP WROOM 02開発ボードを使う - 初歩の電子工作とデジカメの日記](https://blog.goo.ne.jp/pook24/e/f7c79e4e3656540651b29477f2402b07)
* [ESP8266でATコマンドを使ってみる - Keijiro Tanabe blog](https://keijirotanabe.github.io/blog/2017/02/17/esp8266-at-command-170218/)
* [Arduinoマイコンとしても使える小型WifiモジュールESP-WROOM-02を使ってみる(Wifi通信テスト編) | Device Plus - デバプラ](https://deviceplus.jp/hobby/entry0033/)
* [ESP-WROOM-02: ATコマンドによるWifi動作確認 - Qiita](https://qiita.com/kummn/items/411d6a501eaf61162e8f)
* [ESP-WROOM-02](https://ht-deko.com/arduino/esp-wroom-02.html)
* [ATコマンド集 — ESP-WROOM-02-Note 1.0 documentation](http://nonnoise.github.io/ESP-WROOM-02/ATcommand.html)
* [ESP-WROOM-02_AT – スイッチサイエンス](https://trac.switch-science.com/wiki/ESP-WROOM-02_AT)

[^1]: http://akizukidenshi.com/
[^2]: 「ESP-WROOM-32」というのもあって、店員さんにも確認されましたが、 今回は stable な感じのするこちらでｗ
[^3]: https://www.arduino.cc
[^4]: http://akizukidenshi.com/download/ds/akizuki/AE-ESP-WROOM02-DEV.pdf
[^5]: [ATコマンド集 — ESP-WROOM-02-Note 1.0 documentation](http://nonnoise.github.io/ESP-WROOM-02/ATcommand.html)
[^6]: [ESP-WROOM-02_AT – スイッチサイエンス](https://trac.switch-science.com/wiki/ESP-WROOM-02_AT)