巷で話題の小型WifiモジュールESP-WROOM-02を使ってみた(通信テスト編)2

スポンサーリンク
スポンサーリンク

前回に引き続きTCPソケット通信のテストを行っていきます。

  1. 準備編
  2. 通信テスト編1
  3. 通信テスト編2(本記事)
  4. 通信テスト編3
  5. 以降、構想中

実際の通信を行っていく前に、ESP-WROOM-02のモードについて説明しておきます。

スポンサーリンク

ステーションモードとソフトAPモード

  • ステーションモード
  • 周囲にあるアクセスポイント(AP)に接続するモードです。

  • ソフトAPモード
  • ESP-WROOM-02をAPとして動作させるモードです。

通常モードとトランスペアレントモード

  • 通常モード
  • ATコマンドを使用してESP-WROOM-02の設定、接続の確立およびデータを送受信するモードです。

  • トランスペアレントモード
  • ATコマンドで接続の確立後、まるで有線で接続されているかのようにデータの送受信できるモードです。

まずは、ESP-WROOM-02をステーションモードにしてATコマンドを使用して通信を行う方法を説明します。

アクセスポイントに接続する

  1. まずは、周囲にあるアクセスポイントに接続するためにESP-WROOM-02をステーションモードに設定します
  2. AT+CWMODE=1
    
  3. 続いて、周囲にあるAPに接続します
  4. AT+CWJAP="SSID","Password"
    

    SSIDには周囲にあるAPのSSID名、Passwordにはパスワード(暗号化キー)を入力してください(“”(ダブルクォーテーション)で囲う)。正しく接続されると以下のメッセージが表示されます。

    WIFI CONNECTED
    WIFI GOT IP
    OK
    
  5. APに接続できたらESP-WROOM-02に割り当てられたIPアドレスを確認しておきます
  6. AT+CIFSR
    

    割り当てられているIPアドレスとMACアドレスが返ります(MACアドレスはデバイス固有の値なので一応隠しておきます)。

    +CIFSR:STAIP,"192.168.0.8"
    +CIFSR:STAMAC,"18:fe:xx:xx:xx:xx"
    OK
    

サーバーと通信する

  1. サーバー側の準備
  2. ESP-WROOM-02と同一ネットワークに接続されているPCで準備編で入手しておいたHerculesを起動します。Herculesが起動したらTCP Serverタブを開きServer StatusのところにあるPort番号に8080と入力(任意の値でOKです)してListenボタンをクリックします。
    また、Herculesを起動しているPCのIPアドレスをipconfigコマンドを使用して確認しておきます。今回は”192.168.0.9″でした。

  3. ESP-WROOM-02側でサーバーとの接続を確立する
  4. AT+CIPSTART="TCP","192.168.0.9",8080
    

    接続に成功すると以下のメッセージが出力されます。

    CONNECT
    OK
    

    これでサーバーとの接続が確立されました。
    HerculesのClient connection statusに”hh:mm:dd: 192.168.0.8 Client connected”と表示されています。

  5. ESP-WROOM-02からサーバーにデータを送信する
  6. ESP-WROOM-02からサーバーに4バイトのデータを送信してみます。以下のコマンドを入力します。

    AT+CIPSEND=4
    

    すると、以下のメッセージが返り4バイトデータの送信準備が完了します。

    OK
    >
    

    このメッセージの後で送信したいメッセージを入力します。ここでは「abcd」というデータを送ってみます。正しく送信できた場合、SEND OKというメッセージが返ります。また、HerculesのReceinved Dataにabcdと表示されています。

  7. サーバーからESP-WROOM-02にデータを送信する
  8. 今度はサーバからESP-WROOM-02にデータを送信してみます。HerculesのSendテキストボックスにHELLOと入力してSendボタンをクリックします。すると、ターミナルソフトには以下のように表示されます。

    +IPD,5:HELLO
    

以上でATコマンドを使用したサーバーとの通信ができました。次はトランスペアレントモードを使用した通信をやってみたいと思います。

トランスペアレントモード

  1. ESP-WROOM-02をトランスペアレントモードにする
  2. AT+CIPMODE=1
    
  3. CIPSENDコマンドを送信する
  4. AT+CIPSEND
    >
    

    CIPSENDコマンドを送信して”>”が返ってきたらトランスペアレントモードでのデータ送受信の待ち受け状態となります。

  5. ESP-WROOM-02からデータを送信する
  6. ターミナルソフトに好きな文字列を打ち込んでみると、その文字列がそのままHerculesのReceinved Dataに表示されます。

  7. ESP-WROOM-02がデータを受信する
  8. Herculesから任意の文字列を送信すると、その文字列がそのままターミナルソフトに表示されます。

  9. トランスペアレントモードを終了する
  10. トランスペアレントモードを終了するにはエスケープシーケンスを実行する必要があります。トランスペアレントモードを終了させるためのエスケープシーケンスは”+++”(+を3つ)を送信します。

    ・・・はずなのですが、私の環境ではなぜかトランスペアレントモードが終了しません。もう少し調査をして結果を書きたいと思います。

コメント