Geminiに頼りながらWebEPLができるようになったので、備忘録の記事も書いてもらいました。 — 2025.12.07 Koji Ohashi
Raspberry Pi Pico WでMicroPythonを使う際、開発中はUSBケーブルでの接続が必須です。しかし、一度WebREPLを有効にしておけば、電源供給さえあればWi-Fi経由でリモートでREPLやファイル操作が可能になり、開発効率が飛躍的に向上します。
ここでは、Pico W(MicroPython)でWebREPLを有効にし、Thonnyから無線でアクセスするための手順と、ハマりやすいポイントをまとめます。
WebREPLとは?
WebREPL (Web Read-Eval-Print Loop) は、MicroPythonの機能の一つで、WebSocketというプロトコルを使い、Wi-Fi経由でリモートからMicroPythonのコマンドラインインターフェース(REPL)にアクセスできるようにする仕組みです。
これにより、以下のことが可能になります。
-
リモート操作: Pico Wに電源が入っていれば、離れた場所からコードを実行できます。
-
ファイル転送: USBケーブルを使わずに、Thonnyからファイルをアップロード/ダウンロードできます。
-
実行中のプログラムの維持: USB接続と異なり、WebREPL接続はメインプログラムを中断させません。(ただしThonny経由の場合はソフトリセットで中断することがあります)
️ 事前準備:3つのファイルと設定
WebREPLの開始には、Wi-Fi接続情報とパスワード設定が必要です。Pico Wのファイルシステムに以下の3つのファイルを配置します。
1. webrepl_cfg.py (必須:パスワード設定)
セキュリティのため、WebREPLはパスワード必須です。このファイルがないと ValueError で起動に失敗します。
【重要】パスワードは9文字以下にすること!
(※特定のファームウェアバージョンで10文字以上だと起動に失敗するバームがあります。現状は9文字以下で設定してください。)
|
1 2 |
# webrepl_cfg.py PASS = 'yourwebrepl' # 9文字以下 |
2.
boot.py (推奨:Wi-Fi接続とWebREPL開始)
システムの起動時に必ず実行される boot.py に、初期設定であるWi-Fi接続とWebREPLの開始処理を記述します。これにより、メインプログラム(main.py)にエラーがあってもWebREPLは使える状態になります。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# boot.py import network import time import webrepl # --- 設定 --- WIFI_SSID = "YOUR_WIFI_SSID" WIFI_PASSWORD = "YOUR_WIFI_PASSWORD" wlan = network.WLAN(network.STA_IF) wlan.active(True) if not wlan.isconnected(): wlan.connect(WIFI_SSID, WIFI_PASSWORD) for _ in range(15): if wlan.isconnected(): break time.sleep(1) if wlan.isconnected(): ip_address = wlan.ifconfig()[0] print(f"IPアドレス: {ip_address}") webrepl.start() print(f"WebREPL開始: ws://{ip_address}:8266/") |
3.
main.py (アプリケーション本体)
アプリケーションの本体(例えば、センサーの読み取りやLED制御)を記述します。boot.py が正常に動けば、このファイルにWebREPLに関する記述は不要です。
⚙️ ThonnyでのWebREPL接続手順
Pico WをWi-Fiに接続し、boot.pyでWebREPLが起動したことを確認したら、Thonnyから接続します。
ステップ 1: Thonnyの設定を開く
-
Thonnyを起動し、メニューバーの 「実行」 をクリックします。
-
「インタープリタの選択…」 を開きます。
ステップ 2: WebREPLの設定と接続
「インタープリタの選択」ダイアログで、WebREPLのアドレスを設定します。
パターン A: 最新版の分離フィールド方式の場合
Thonnyのダイアログに「ホストまたはIPアドレス」と「パスワード」のフィールドが分かれている場合、こちらの手順を使います。
-
「インタープリタ」から 「MicroPython (WebREPL)」 を選択します。
-
「ホストまたはIPアドレス」に、Pico WのIPアドレスのみを入力します。(例:
192.168.1.12) -
「パスワード」に、
webrepl_cfg.pyで設定したパスワードを入力します。
パターン B: 従来のURL入力方式の場合(ご指摘の通り)
Thonnyのダイアログに**「ポート」またはURL全体を入力するフィールド**がある場合、こちらの手順を使います。
-
「インタープリタ」から 「MicroPython (WebREPL)」 を選択します。
-
「ポート」 またはURL入力欄に、WebREPLの完全なURLを入力します。
-
形式:
ws://<Pico WのIPアドレス>:8266/ -
例:
ws://192.168.1.12:8266/
-
-
パスワードは、接続時にThonnyのシェル画面で求められるか、または専用フィールドに入力します。
ステップ 3: 接続の開始
-
「OK」をクリックすると、ThonnyがPico Wへの接続を試みます。
WebREPL connected と表示され、>>> プロンプトが出れば成功です。これで無線での開発環境が整いました!
ハマりやすいポイントと対処法
| 現象 | 原因 | 対処法 |
ValueError で停止 |
パスワードが長すぎる (10文字以上)。 | パスワードを9文字以下に変更し、Pico Wをリセットする。 |
| 接続はされるが入力不可 | ブラウザまたはルーターの設定。 | ルーターのクライアント分離機能を無効にする。ブラウザのプロキシを無効にする。 |
| IPアドレスが毎回変わる | DHCPによるIPアドレスの動的割り当て。 | ルーターの設定画面でPico Wに固定IPアドレスを割り当てる。 |
| IPアドレスが表示されない | Wi-FiのSSIDやパスワードが間違っている。 | boot.pyの設定を確認し、USB接続のREPLで接続状況をデバッグする。 |