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」コマンドを送ることで実行できます。

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

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

AT+CIPSTART="TCP","imaoca.webcrow.jp",80
CONNECT
 
OK
AT+CIPMODE=1
 
OK
AT+CIPSEND
 
OK
 
>
 
HTTP/1.1 200 OK
Date: Mon, 14 Sep 2015 22:53:09 GMT
Server: Apache
Last-Modified: Wed, 30 Oct 2013 06:58:02 GMT
 
<以下省略>
 
+++
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.