6
1

More than 3 years have passed since last update.

MicroPythonのWebREPL試した話

Last updated at Posted at 2020-03-01

はじめに

MicroPythonにはWebREPLと呼ばれる、ブラウザ上でPythonプロンプトを使える機能があります。ESP32ボードで使用したのでやり方を残しておきます。

環境

やり方

MicroPythonのファームウェアを書き込んでいる状態で進めます。
シリアル通信で接続を確認したらwebrepl_setupをインポートします
Would you like to (E)nable or (D)isable it running on boot?はEと入力して続いてパスワードを入力します。その後リブートするか聞かれるのでyと入力してリブートします。

MicroPython v1.12 on 2019-12-20; ESP32 module with ESP32
Type "help()" for more information.
>>> import webrepl_setup
WebREPL daemon auto-start status: disabled

Would you like to (E)nable or (D)isable it running on boot?
(Empty line to quit)
> E
To enable WebREPL, you must set password for it
New password (4-9 chars): hoge
Confirm password: hoge
Changes will be activated after reboot
Would you like to reboot now? (y/n)

自分の場合は何故か起動時にアクセスポイントにならないので、一度webreplを手動でスタートします。

PCからアクセスポイントに接続し、https://github.com/micropython/webrepl からwebreplクライアントをダウンロードしてwebrepl.htmlを開きます。Connectボタンを押してパスワードを入力したらWebREPL接続完了です。
起動時にスタートすると同時に別のネットワークに接続する処理を追加して作業PCをインターネットに接続できるようにするためにboot.pyに次のコードを書き込みます。

boot.py
import network
import webrepl
import utime


sta = network.WLAN(network.STA_IF)
sta.active(True)

sta.connect("SSID", "PASSWORD")
start_time = utime.time()
while utime.time() - start_time < 10:
    if sta.isconnected():
        print("connect")
        webrepl.start()
        break
else:
    print("Timeout")
    sta.active(False)
    ap = network.WLAN(network.AP_IF)
    ap.active(True)
    webrepl.start()

デバイスの接続が成功するとLAN内でWebREPLと接続することができます。10秒以上かかっている場合は失敗とみなして自身をアクセスポイントとして動作させてWebREPLをスタートします。
webreplクライアントからboot.pyをデバイスに送信して再起動します。

起動するとwebreplがスタートしてIPアドレスが表示されるので、クライアントで接続確認して完了です。

MicroPython WebREPL

参考サイト

6
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
1