前回、OpenWRTルータのUSBポートにぶら下がった、ESP Easy機器を再起動させるための電源制御について書きました。今回は、この方法が使えない Raspberry Pi のUSBポートにぶら下がった ESP Easy 機器を コンソール 経由で再起動させる方法を考えます。
ESP Easyにはコンソール機能が用意されていて、設定や操作、基本的な確認をコマンドラインインターフェースで行うことが出来ます。
コンソール機能の有効化、ボーレート設定はGUIから行うことが出来ます。
ESP-12EのmicroUSBにはコンソールが載っているので、Raspberry Piからは、起動ログなどから ttyUSB0を見付けることが出来るはずです。
1 2 3 4 5 6 7 8 9 10 11 |
[ 3.819276] usb 1-1.2: new full-speed USB device number 4 using dwc_otg [ 3.996672] usb 1-1.2: New USB device found, idVendor=10c4, idProduct=ea60, bcdDevice= 1.00 [ 4.012255] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 4.023142] usb 1-1.2: Product: CP2102 USB to UART Bridge Controller [18.966101] usbcore: registered new interface driver usbserial_generic [18.966250] usbserial: USB Serial support registered for generic [19.095177] usbcore: registered new interface driver cp210x [19.095334] usbserial: USB Serial support registered for cp210x [19.095574] cp210x 1-1.2:1.0: cp210x converter detected [19.167184] usb 1-1.2: cp210x converter now attached to ttyUSB0 |
これをScreenコマンドで開いてみます。
1 |
sudo screen /dev/ttyUSB0 115200 |
例えば、Settingというコマンドを送ると、次のような出力を得ることが出来ます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
>settings System Info IP Address : 192.168.26.23 Build : 20106 Name : ESPeasy-66 Unit : 0 WifiSSID : XXXXX WifiKey : xxxxxxxxxx WifiSSID2 : XXXXX WifiKey2 : xxxxxxxxxx Free mem : 18112 Ok |
ESP EasyをDHCP環境下で使用していると、GUIアクセスのためのIPアドレスが判らず、ひと手間必要ですが、これで確認することが出来ます(実際はWiFiのSSID, Keyも表示されます)。例えば、母艦Raspberry Piでこのコマンドを定期的に実行して、得られた出力をどこかtmp領域に落ちるようにしておけば、役に立つこともあるでしょう。
ちなみにScreenを終了するには、Ctrl+a – k とすることで、画面下にConfirmationが表示されるので、yで終えることが出来ます。
次に前回のようなESP Easy死活監視の異常時に使う再起動方法を考えてみましょう。シリアルコンソールを通じて「reboot」コマンドを送れば良いので、具体的には、
1 |
stty -F /dev/ttyUSB0 -hupcl && echo -e -n 'reboot\r' > /dev/ttyUSB0 |
をroot権限で実行すれば、再起動します。
私自身実際に10個近くのESP Easyを1年以上リモート運用していますが、完全にシステムハングしたことはなく、WiFiを掴まなくなったことが数回程度、と抜群の安定性。安心して遠距離設置出来る頼もしいシステムです。