プログラミング成果物

ESP32 の MicroPython を Wi-Fi 経由で更新する WebRepl の設定

どんなもの?

ESP32 を MicroPython (軽量版 Python) で制御し、なおかつそのプログラムを Wi-Fi 経由で更新できる。
IoT づくりで、自由度の高いプログラミングをする際の個人的最適解だと思っている。

自由度が低くて簡単なら HomeAssistant + ESPHome?

設定方法

開発環境 Thonny の「実行」→「インタプリタの設定」→「Install or update MicroPython」で、使っている ESP32 を指定し、MicroPython をインストール。

シェルが開くので、

import webrepl_setup

を実行し、ウィザードに従って Repl をインストール。

ESP32 の boot に以下のようなコードを書き込む。
固定 IP にしておくと多分大抵の環境で便利。

# This file is executed on every boot (including wake-boot from deepsleep)
#import esp
#esp.osdebug(None)
import webrepl
import network
import time
import machine

# Wi-Fi設定
SSID = '**'
PASSWORD = '**'
IP_ADDRESS = '**'
SUBNET_MASK = '**'
GATEWAY = '**'
DNS_SERVER = '**'

# Wi-Fiに接続
sta_if = network.WLAN(network.STA_IF)
if not sta_if.isconnected():
    print('Connecting to network', end='')
    sta_if.active(True)
    sta_if.ifconfig((IP_ADDRESS, SUBNET_MASK, GATEWAY, DNS_SERVER))
    sta_if.connect(SSID, PASSWORD)
    
    # 接続待ち
    while not sta_if.isconnected():
        print('.', end='')
        time.sleep(1)
        
print('Network config:', sta_if.ifconfig())

# WebREPLを開始
webrepl.start()

ESP32 側に忘れず保存しておく。

接続方法

Thonny の「実行」→「インタプリタの設定」→「ポートまたは WebRepl」で、さっき設定した IP とパスワードを入れる。

注意点

main.py としてプログラムを ESP32 に書き込むと、boot.py 終了後に実行される。
Repl 接続中は Thonny から実行することになる。

コメント