ESP8266やESP-WROOM-02やらを使うと無線LANで仮想COMポートが簡単に使えるって事を知りました。
2個使ったらシリアル通信が簡単に無線化出来るんじゃ無いかと思い、いろいろと調べてみたところトランスペアレントモードってのを使うと何にもプログラムしなくてもいけちゃうんじゃないかと試してみました。
ArduinoにつないでとかESP8266にスケッチ書き込んでとかの記事はいろいろと見かけるんですが、相互通信だけ出来ればいいのでちゃちゃっとやってみました。
手順は以下の通り。
1. 2つのモジュールをUSB経由でPCとつなげます
仮想COMポートとして認識されるので、それぞれどちらのCOMポートかわかる様にCOMぽーとの番号を確認しておきます。
2. ターミナルソフトを起動してそれぞれのCOMポートを開きます。
通信設定は、速度=115200bps, データビット=8bit, ストップビット=1bit, パリティー=無し, フローコントロール=無し
端末設定は、送受信ともに改行をCR+LF
3. SoftAP側に下記のATコマンドを1行づつ送信します
※いっぺんに送信すると1行前のコマンド処理が終わる前に送信されてしまい失敗します。
AT
AT+CWMODE_DEF=2
AT+CWSAP_DEF=”ESP8266″,”1234567890″,5,3,1,0
AT+CIPAP_DEF=”192.168.5.1″,”192.168.5.1″,”255.255.255.0″
AT+CIPAPMAC_DEF=”1a:fe:36:97:d5:7b”
AT+CWDHCP_DEF=0,0
AT+CIPMUX=0
AT+SAVETRANSLINK=1,”192.168.5.2″,1002,”UDP”,1005
AT+RST
最後のAT+RSTでリスタートされて待ち状態になります。
4. Station側に下記のATコマンドを1行づつ送信します
AT
AT+CWMODE_DEF=1
AT+CIPSTA_DEF=”192.168.5.2″,”192.168.5.1″,”255.255.255.0″
AT+CWAUTOCONN=1
AT+CWJAP_DEF=”ESP8266″,”1234567890″
AT+SAVETRANSLINK=1,”192.168.5.1″,1005,”UDP”,1002
AT+RST
最後のAT+RSTでリスタートされてSoftAP側に接続し相互通信が可能な状態になります。
上記設定はユーザーパラメータエリアに保存されているので、電源投入(USB接続)すると相互通信可能な状態で起動します。
※IPアドレスやSSID等はESP8266のATコマンド説明書の記述をそのまま使っています。
今回使ったモジュールはシリアル-USB変換されていますが、USB変換機能の無いモジュールを利用して電源さえ用意出来れば既存のRS232Cで接続する機器等が簡単に無線化出来ます。