メディア

ESP8266をTCPサーバとTCPクライアントにするATコマンド実例Wi-Fiモジュール「ESP8266」で始めるIoT DIY(3)(3/4 ページ)

» 2015年10月19日 07時00分 公開
[今岡通博MONOist]

インターネット上のHTTPサーバに接続

 今度はESP8266をTCPクライアントに設定して、インターネット上のHTTPサーバに接続してみたいと思います。システム構成は以下の図のようになります。

図3 ESP8266をTCPクライアントに設定し、インターネット上のHTTPサーバに接続 図3 ESP8266をTCPクライアントに設定し、インターネット上のHTTPサーバに接続

 システム構成の前提は先ほどのESP8266をサーバに設定した時とほぼ同じですが、アクセスポイント兼ルーターがインターネットに接続している必要があります。ESP8266は無線ルーター経由でインターネット上のHTTPサーバにアクセスできる環境が必要です。

 今回のオペレーションもList1の続きからとなります。もし先ほどのESP8266をサーバにした場合は一度リセットして、List1を再度入力してください。リセットはESP-WROOM-02のリセットピンをグランドに落とすか、ATコマンドが使える状態で「AT+RST」コマンドを送ることで実行できます。

  1. AT+CWMODE=1
  2. OK
  3. AT+CWLAP
  4. +CWLAP:(0,"JA5YOT",-76,"00:0a:79:5e:2a:76",6)
  5. OK
  6. AT+CWJAP="JA5YOT",""
  7. WIFI CONNECTED
  8. WIFI GOT IP
  9. OK
  10. AT+CIFSR
  11. +CIFSR:STAIP,"192.168.1.15"
  12. +CIFSR:STAMAC,"18:fe:34:a2:a2:e5"
  13. OK
Tera termの通信ログ「List1」

 それではターミナルログで接続オペレーションを見ていきましょう。

  1. AT+CIPSTART="TCP","imaoca.webcrow.jp",80
  2. CONNECT
  3. OK
  4. AT+CIPMODE=1
  5. OK
  6. AT+CIPSEND
  7. OK
  8. >
  9. HTTP/1.1 200 OK
  10. Date: Mon, 14 Sep 2015 22:53:09 GMT
  11. Server: Apache
  12. Last-Modified: Wed, 30 Oct 2013 06:58:02 GMT
  13. <以下省略>
  14. +++
ESP8266をTCPクライアントに設定し、インターネット上のHTTPサーバに接続した際のTera term通信ログ

 1行目の「AT+CIPSTART="TCP","imaoca.webcrow.jp",80]で接続を開始します。1つ目の引数でプロトコルを、2つ目の引数でHTTPサーバのURL、3つ目でポート番号を指定しています。

 5行目で透過モードの設定を行っています。いわゆるUARTとWi-Fi間でパススルーにするモードです。この接続はプロトコルがTCPでかつシングルコネクションモードの場合のみ有効です。パラメターに0を指定した場合はノーマルモードとなり、前述のサーバの場合と同じ送信方法となります。

8行目の「AT+CIPSEND」と入力すると>プロンプトが表示され以後は透過モードとなります。そこで「GET / HTTP/1.0」と入力してリターンキーを打ちます。これはHTTPサーバに対するGETリクエストで、サーバからはHTML形式のデーターを送ってきます。GET / HTTP/1.0はターミナルエミュレーターをエコー設定にしていなければ画面には表示されません。するとHTMLらしき文字列が数行にわたって表示されるはずです。

 この透過モードを終了したい場合はその行に+++とだけ入力します。すると透過モードから抜けてATコマンドを受け付けるモードになります。

 ということでESP8266をTCPクライアントとしてインターネット上にあるHTTPサーバに接続してリクエストを送り、サーバからのデーターを受信することができました。

Copyright © ITmedia, Inc. All Rights Reserved.