前回はESP-WROOM-02をステーションモードで動作させ、周囲のアクセスポイント(AP)に接続してみましたが、今回はESP-WROOM-02をソフトAPモードで動作させ自身がAPとしてほかのモジュールから接続させて通信してみます。
ESP-WROOM-02をサーバーとして動作させる
- まずはESP-WROOM-02をソフトAPモードに設定します
- 次に、ESP-WROOM-02に複数のデバイスを接続できるように、マルチプルコネクションを有効にします
- そしてESP-WROOM-02をサーバーモードで動作させます
AT+CWMODE=3
AT+CIPMUX=1
AT+CIPSERVER=1
ESP-WROOM-02と通信する
- ESP-WROOM-02に接続する
- サーバーに接続する
- クライアントからサーバーにデータを送信する
- サーバーからクライアントにデータを送信する
ESP-WROOM-02がソフトAPモードとして動作しているため、PCなどのデバイスからアクセスポイントを検索すると、「ESP-XXXXXX」というアクセスポイントが見つかります。ここに接続します。
HerculesのTCP Clientタブを開き、TCPのModule IPに”192.168.4.1″、Portに”333″を設定し、Connectボタンをクリックします。
接続されるとESP-WROOM-02から以下のメッセージが返ります。
0,CONNECTED
この0はESP-WROOM-02に接続されているクライアントデバイスのIDです。
では、クライアント側からサーバーに対してデータを送ってみます。HerculesのSendテキストボックスにHELLOと入力してSendボタンをクリックします。すると、ターミナルソフトには以下のように表示されます。
+IPD,0,5:HELLO
“+IPD”に続き、”送信したデバイスのID”、”受信したデータ長”、”受信したデータ”となります。
続いて、サーバーとして動作しているESP-WROOM-02からクライアント側にデータを送信します。以下のコマンドを実行します。
AT+CIPSEND=0,4
ここで0は送信先のクライアントID、4は送信するデータ長です。コマンドを実行すると以下のメッセージが返ります。
OK >
送信したいデータを入力します。ここでは「abcd」というデータを送ってみます。正しく送信できた場合、SEND OKというメッセージが返ります。また、HerculesのReceinved/Send Dataにabcdと表示されています。
ここまででESP-WROOM-02のクライアントモード/サーバーモードにおける基本的な動作を確認できました。これまでは、ESP-WROOM-02をターミナルソフトから制御していましたが、実際には外部のマイコンなどからUART通信で制御することになります。次回からは、Arduinoと接続し、ArduinoからのUART通信でESP-WROOM-02を制御する方法について書いていきたいと思います(ESP-WROOM-02のファームウェア自体を書き換えることも可能ですがそれはまた別途書きたいと思います)。
コメント