ESP-WROOM-02を試してみました。 ESP-WROOM-02はデフォルトではATコマンドで操作を受け付けるファームウェアが書き込まれています。 それ以外にArduinoやNodeMCUとして使えるファームウェアも使用することができるみたいです。

今回試したのはATコマンドでの動作です。 これはPCとUSBシリアルで接続してシリアルコンソールからATコマンドを送ることで操作します。 今回使ったものは以下。

USBシリアルは今後もよく使うと思うのでこのような変換基板を作ってみました。 今回は使わないけれど、リセットボタンと5V/3Vの切り替えスイッチ付き。

image

上記のUSBシリアル変換基板とESP-WROOM-02を次のように接続するだけで動作確認できます。 ESP-WROOM-02への電源は消費電力の問題から、USBシリアルの3.3Vは使用せず、5Vを三端子レギュレータを介して入力するようにします。 (ESP-WROOM-02を使ってみる3 -そんな電源で大丈夫か-)

image image

次にPCとの接続にはUSBシリアルのドライバをインストールしなければいけないので、FTDIのページからVCP Driverをダウンロードしてインストールしておきます。

PCと接続したらArduino IDEを起動して Tools -> Serial Port から認識されているデバイスを選択します。 選択したら Tools -> Serial Monitor をクリックしてシリアルモニタを起動します。

image

シリアルモニタが起動したら Both NL & CR115200 baud に設定を変更します。 AT と入力して OK が返ってくればモジュールの起動には成功して使用可能状態になっています。 以下の > の行のコマンドを入力していくと、WiFiのアクセスポイントに接続し、HTTPで外部のリソースにアクセスすることができます。 (Arduino勉強会/0N-WiFiモジュールその1)

> AT

OK

# Stationモードにする (APモードなどもある)
> AT+CWMODE=1

OK

# アクセスポイントに接続
> AT+CWJAP="SSID","PASSWORD"

WIFI DISCONNECT
WIFI CONNECTED
WIFI GOT IP

OK

# モジュールに割り当てられているIPアドレスとMACアドレスを表示
> AT+CIFSR

+CIFSR:STAIP,"IP_ADDRESS"
+CIFSR:STAMAC,"MAC_ADDRESS"

OK

# サーバに接続
> AT+CIPSTART="TCP","www.google.co.jp",80

CONNECT

OK

# 送信するバイト数を設定、今回は `GET / HTTP/1.0` と改行2回分の18Byte
> AT+CIPSEND=18

OK

> GET / HTTP/1.0

Recv 18 bytes

SEND OK

+IPD,494:HTTP/1.0 302 Found
Cache-Control: private
Content-Type: text/html; charset=UTF-8
Location: http://www.google.co.jp/?gfe_rd=cr&ei=L601Vq2QHfP98wf0qZKADQ
Content-Length: 261
Date: Sun, 01 Nov 2015 06:11:59 GMT
Server: GFE/2.0

<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="http://www.google.co.jp/?gfe_rd=cr&amp;ei=L601Vq2QHfP98wf0qZKADQ">here</A>.
</BODY></HTML>

CLOSED

とりあえずGoogleにアクセスすることはできました。 ATコマンド経由で使用するにはシリアル経由で他のデバイスと接続する必要があり、その場合無駄に複雑になってしまいます。 せっかくESP-WROOM-02自体をArduinoとして使用できるので、そうすればとてもシンプルなシステムになるはず。 次回はこのモジュールをArduinoとして使う方法を試したいと思います。