ESP8266をTCPサーバとTCPクライアントにするATコマンド実例:Wi-Fiモジュール「ESP8266」で始めるIoT DIY(3)(1/4 ページ)
話題の技適モジュール「ESP8266」を使ってIoTを手作りするこの連載、今回はESP8266をTCPサーバとTCPクライアントにする方法を紹介します。これで他ノード間でのTCP接続ができるようになります。
Espressif Systemsより提供されているワイヤレスSoC「ESP8266」を搭載したモジュールで“IoTを手作りしてみよう”というこの連載、前回(Wi-Fiモジュール「ESP8266」で始めるIoT DIY(2):ESP8266を宅内Wi-Fiにぶら下げるATコマンド実例)は、ATコマンドを使ってESP8266をWi-Fiのアクセスポイントに接続し、また、ESP8266自体をアクセスポイントにするための設定を紹介しました。
今回はいよいよESP8266と他のWi-Fi接続されたノード間でのTCP接続に挑戦してみたいと思います。最初はESP8266がTCPサーバになる方法を、また後半は逆にESP8266がTCPクライアントになる方法を試してみます。
ESP8266にTCPサーバを設定する
最初にESP8266にTCPサーバを設定しますが、その前にWi-Fi接続する必要があります。ステーションモードとしてエリア内にあるWi-Fiのアクセスポイントに接続する方法と、ESP8266自体がアクセスポイントになる方法がありますが、今回はステーションモードの設定で実験します(準備するものは前回・前々回と全く変わりません。また回路や配線も前回と同じです)。
ATコマンドによる操作は以下の通りです。
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
上のコマンドリスト「List1」では、ESP8266のWi-Fi接続モードをステーションモードにし、エリア内にあるアクセスポイントのリストを表示し、そのアクセスポイントに接続します。そして接続されたアクセスポイントから付与されたIPアドレスを表示しています。それぞれのコマンドの説明やパラメーター、表示メッセージの意味については前回記事を参考にしてください。
ESP8266側でTCPサーバを立ち上げる際のシステム構成は以下のようになります。
ESP8266はエリア内のアクセスポイントに接続し、無線ルーターのDHCPサーバ機能により図に示すIPアドレスが付与されているものとします。同様にPCも接続されています。ESP8266のUART(シリアルポート)は、USBシリアル変換モジュール経由でターミナルソフトが稼働するPCなどに接続されています。このPCからESP8266のATコマンド経由でESP8266を制御することができます。TCP接続時の送受信操作をこのPCで行います。
Wi-Fi経由で接続されているIPアドレスが192.268.1.16のPCも、Tera termのtelnetの機能でESP8266に接続します(方法は後述します)。telnet(テルネット)はインターネットで接続されたホストコンピュータにターミナルエミュレーターなどでリモート接続するためのプロトコルの1つですが、最近はセキュリティの面からSSHに取って代わられています。CUI操作でTCPサーバに接続テストする場合などに筆者は良く使っています。
図2ではESP8266にUART接続してATコマンドを入力する端末と、Wi-Fi接続されたリモート端末を混同しないように別々のPCで表現していますが、1つのPCで2つのターミナルエミュレーターを立ち上げて操作しても結構です。筆者はそのようにしています。
Copyright © ITmedia, Inc. All Rights Reserved.