Pico Wを無線化!MicroPythonでWebREPLをThonnyから使う設定手順

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文字以下で設定してください。)


2. boot.py (推奨:Wi-Fi接続とWebREPL開始)

システムの起動時に必ず実行される boot.py に、初期設定であるWi-Fi接続とWebREPLの開始処理を記述します。これにより、メインプログラム(main.py)にエラーがあってもWebREPLは使える状態になります。


3. main.py (アプリケーション本体)

アプリケーションの本体(例えば、センサーの読み取りやLED制御)を記述します。boot.py が正常に動けば、このファイルにWebREPLに関する記述は不要です。


⚙️ ThonnyでのWebREPL接続手順

Pico WをWi-Fiに接続し、boot.pyでWebREPLが起動したことを確認したら、Thonnyから接続します。

ステップ 1: Thonnyの設定を開く

  1. Thonnyを起動し、メニューバーの 「実行」 をクリックします。

  2. 「インタープリタの選択…」 を開きます。

ステップ 2: WebREPLの設定と接続

「インタープリタの選択」ダイアログで、WebREPLのアドレスを設定します。

パターン A: 最新版の分離フィールド方式の場合

Thonnyのダイアログに「ホストまたはIPアドレス」と「パスワード」のフィールドが分かれている場合、こちらの手順を使います。

  1. 「インタープリタ」から 「MicroPython (WebREPL)」 を選択します。

  2. 「ホストまたはIPアドレス」に、Pico WのIPアドレスのみを入力します。(例: 192.168.1.12

  3. 「パスワード」に、webrepl_cfg.pyで設定したパスワードを入力します。

パターン B: 従来のURL入力方式の場合(ご指摘の通り)

Thonnyのダイアログに**「ポート」またはURL全体を入力するフィールド**がある場合、こちらの手順を使います。

  1. 「インタープリタ」から 「MicroPython (WebREPL)」 を選択します。

  2. 「ポート」 またはURL入力欄に、WebREPLの完全なURLを入力します。

    • 形式: ws://<Pico WのIPアドレス>:8266/

    • 例: ws://192.168.1.12:8266/

  3. パスワードは、接続時にThonnyのシェル画面で求められるか、または専用フィールドに入力します。

ステップ 3: 接続の開始

  1. 「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で接続状況をデバッグする。