今度は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
それではターミナルログで接続オペレーションを見ていきましょう。
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 <以下省略> +++
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.