はじめに
MicroPythonにはWebREPLと呼ばれる、ブラウザ上でPythonプロンプトを使える機能があります。また、ThonnyにもWebREPLで接続する機能があります。
picoWボードで使用したのでやり方を残しておきます。
picoWにboot.pyファイルを作成する
picoWをUSBでPCに繋ぎ、Thonnyで以下を実行する。
boot.pyファイルを作成してpicoWに書き込む。
#boot.py
import network
import webrepl
import time
# WiFi接続 (ルーターのSSIDとパスワードに書き換えてください)
ssid = 'SSID'
password = 'PASWORD'
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(ssid, password)
# WiFiが繋がるまで少し待つ(重要)
max_wait = 10
while max_wait > 0:
if wlan.status() < 0 or wlan.status() >= 3:
break
max_wait -= 1
print('waiting for connection...')
time.sleep(1)
# WebREPLを起動する(これが重要!)
webrepl.start()
print('WebREPL started at', wlan.ifconfig()[0])
手動でパスワード設定ファイルを作る
picoWをUSBでPCに繋ぎ、ThonnyのREPLで以下を実行する。
Thonnyのシェル(下の画面)で、以下の3行のコードを1行ずつコピー&ペーストしてエンターキーを押してください。これで強制的に設定ファイルを作成します。
f = open('webrepl_cfg.py', 'w')
f.write("PASS = '1234'\n")
f.close()
picoW内にwebrepl_cfg.pyが作られてパスワードが1行書き込んである。
PASS = '1234'
WebREPL
Thonnyを終了する。
picoWのUSBを電源供給アダプタにつなぎ変える。
電源が入るとboot.pyが実行されてWebREPLが開始されている。
次のgithubからZIPファイルをダウンロードする。
https://github.com/micropython/webrepl
解凍してwebrepl-masterホルダ内のwebrepl.htmlをダブルクリックしてChromeブラウザで表示させる。
アドレスにws;//192.168.0.4:8266/ を入力して Conectボタンをクリックするとつながる。

ThonnyでWebREPL接続する
ポートをWebREPLにしてパスワードを設定して接続OKを押す。
これで、ThonnyからもWebREPL操作が可能となりました。
ファイルの編集転送(上書き)などができます。
但し、USBのようにファイルを新規に作成して実行アイコンを押しても喧嘩してエラーが発生する場合があります。
そこで、安定してプログラムを実行する方法としてmain.pyのファイルのみを書き換えて電源入れ直しで実行させる方法が安定しています。
main.pyを電源入り切りで実行させる
#========================================
#
# Web REPL T.F.
#
# 2025/11/22 Ver1
#
#========================================
#------------------------------------
# import
#------------------------------------
from machine import PWM, Pin
import time
#------------------------------------
# Pin
#------------------------------------
led = Pin("LED", Pin.OUT)
servo1 = PWM(Pin(0))
servo1.freq(50)
#------------------------------------
# Val
#------------------------------------
maxd = 65025
dig_0 = 0.065 # 0° open
dig_90 = 0.115 # 90° close
#-------------------------------------
# Close
#-------------------------------------
servo1.duty_u16(int(maxd*dig_90))
print("90deg close")
OPEN=False
#-------------------------------------
# コマンド用の関数を定義するだけ
#-------------------------------------
def mes():
print("picoW running under WiFi ws://192.168.0.4:8266/")
print("def:on(),off(),blink(times),RCshot(),RCopen(),RCclose()")
#-------------------------------------
#
#-------------------------------------
def on():
led.on()
print("LED turned ON")
#-------------------------------------
#
#-------------------------------------
def off():
led.off()
print("LED turned OFF")
#-------------------------------------
#
#-------------------------------------
def blink(times):
import time
for _ in range(times):
led.toggle()
time.sleep(0.2)
led.toggle()
time.sleep(0.2)
print(f"Blinked {times} times")
#-------------------------------------
# one shot Open
#-------------------------------------
def RCshot():
servo1.duty_u16(int(maxd*dig_0))
time.sleep(0.3)
servo1.duty_u16(int(maxd*dig_90))
print("one shot open")
#-------------------------------------
# Open
#-------------------------------------
def RCopen():
servo1.duty_u16(int(maxd*dig_0))
print("0deg open")
#-------------------------------------
# Close
#-------------------------------------
def RCclose():
servo1.duty_u16(int(maxd*dig_90))
print("90deg close")
picoWにThonnyでmain.pyを作成して書き込みます。
電源を入れ直すと
boot.py を実行(もし存在すれば)
これが完了するまで次は進みません。
main.py を実行(もし存在すれば)
boot.py の処理が終わった直後にこれが始まります。
この状態で ThonnyがWebREPLで接続状態のプロンプト>>> 状態になっていたら
プロンプトに関数def mes()を実行させれば、関数が実行されます
>>>mes()
picoW running under WiFi ws://192.168.0.4:8266/
def:on(),off(),blink(times),RCshot(),RCopen(),RCclose()
>>>
関数をいろいろと作成して、プロンプトに関数記入する
すなわち
picoWをWiFiリモート操作することができます。
以上です![]()

