esp-linkを使ってみる

リモートコンソール

esp-linkをWiFiブリッジとして使う準備ができましたので、さっそくリモートコンソールを使ってみます。
esp-linkのIPアドレスを使ってブラウザーでアクセスします。



最初にPin assignmentで、Conn LED と Serial LED を設定します。
今回ESP-12を使いましたので、Conn LEDにはgpio4 Serial LEDにはgpio5を割りつけました。
Conn LEDではLEDの点滅により、WiFiの接続状態が分かります。
Serial LEDは何らかのUART通信があると一瞬光ります。
これに合わせて、ESP-12のGPIO4とGPIO5にLEDを接続します。
Pin assignmentの変更はesp-linkを再起動することなく、Changeで直ちに反映されます。


今回、リモートで操作するマイコンはArduinoを使いました。
Arduinoにシリアル出力を行う適当なスケッチを書き込んで、ArduinoのTX/RXとESPのTX/RXをクロスで接続します。
ESP8266のGPIOポートは5V tolerantなので、レベルシフトは不要です。
ConsoleページのBaud(ボーレート)をArduino側のUARTボーレートと合わせると、 Arduinoのシリアル出力が表示されます。
また、TeraTermのTelnet機能でesp-linkのアドレスに接続すると、こちらにもArduinoのシリアル出力が表示されます。
何も表示されないときは、Arduinoをリセットすると表示を開始します。


Arduinoのスケッチは何も変更する必要がないところが素晴らしいです。
telnet接続は同時に4つまで受け付けることができます。




esp-linkは起動時に以下のデバッグログをUARTポートに出力します。


Debug LogのページでUART debug logをoffにするとこの出力が出なくなりますが、
リセット時のbootメッセージだけは抑止できません。


リセット時のbootメッセージは74800bpsで表示されるので、TeraTermでは以下のように文字化けします。


接続しているマイコンがUARTからの入力を行う場合、bootメッセージは邪魔になります。
HomeページのUART Pinsでswappedを指定すると、ESP側のTXD2(GPIO15)/RXD2(GPIO13)が有効になり、
bootメッセージが相手に届かなくなります。

<補足>
正確にはbootメッセージはTXに出力されますが、TXはArduinoに接続されていないので届きません。
esp-linkが起動すると最初にUARTのSWAPを行いTXD2/RXD2を有効にします。
その後はTXD2/RXD2でArduinoと通信します。

UARTをSWAPした時は、GPIO13とGPIO15を、他の機能では使わない様に変更する必要が有ります。
UARTをSWAPした時は、ArduinoのTX/RXとESPのTXD2(GPIO15)/RXD2(GPIO13)をクロスで接続します。




esp-linkには相手のマイコンを、WEB操作でリセットする機能が有ります。
HomeページのPin assignmentでISP/FLASHをdisableに変更し、Resetピンにgpio13を割り当てました。


ArduinoのRESETポートと、ESPのGPIO13を接続し、Consoleページで「Reset uC」を指定すると、Arduinoがリセットします。


ArduinoをリセットしてもTelnet接続は切れません。


リセットポートのあるマイコンならば、どれでもWEBページから遠隔でリセットすることができます。

続く...