ESP32でのmicropythonにはwebreplという機能があるという事なので試してみました。
この記事はESP32を使用したボード(DOIT ESP32 DEVKIT)にmicropythonをインストールした後に、ファイルのアップロード/ダウンロードをする事が出来るwebreplの利用、そしてESP32ボードのなかで利用するエディターを試してみるまでの記録です。
作業に用いたPC:Windows 11 Pro (Ver.23H2) , Python 3.13.0
まずはMicroPythonのホームページでESP32用のMocroPythonをダウンロードします。
画面上部の[DOWNLOAD]から
[ESP32]と進み、
DOIT ESP32 DEVKITで使われているESP32がWROOM32だったので[ESP32/WROOM]を選択します。
Installation instructions に書かれているアドレス”0x1000”をメモしておきます。
From then on program the firmware starting at address 0x1000:
そして、Firmware – Releases のリストから最新版 v1.24.1 (2024-11-29) .binをダウンロードします。
ダウンロードしたMicroPythonをESP32に書き込むツールは前回記事”ESP32のファームウェアを更新2024”で使用したflash_download_toolを使います。
ツールの立ち上げからの手順は前回記事を参照。
ダウンロードしたMicroPythonの.binファイルを選択し、先ほどメモしたアドレス”0x1000”を記入して左端にチェックを入れてから[START]ボタンをクリックします。
書き込まれたMicroPythonが戦場に動作するかターミナルアプリを接続して確認します。Tera Termを使いCOMポートとボーレート(115200)を設定、他は初期値のままで確認しました。
webreplの設定
ターミナルアプリから設定コマンド”import webrepl_setup”を打ち込み、対話形式で設定します。
>>> 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): joak <—パスワードは適当に
Confirm password: joak
Changes will be activated after reboot
Would you like to reboot now? (y/n) y <—ESP32が再起動します。
再起動後に次の通りコマンドを打ち込むとESP32のwebreplがアクセスポイントモードで立ち上がりアドレスとポート番号のURLが出力されます。
>>> import network
>>> ap = network.WLAN(network.AP_IF)
>>> ap.config(essid=”ESP32_WebREPL”)
>>> ap.active(True)
True
>>> webrepl.start()
WebREPL server started on http://192.168.4.1:8266/
Started webrepl in normal mode
>>>
PCのWiFi接続先SSIDをESP32_WebREPLに設定。
出力されたURLをブラウザで開け・・・開けません。
アクセスポイントモードでの接続はwebrepl-clientからになります。
https://github.com/micropython/webreplに行き、codeからzipファイルをダウンロードして任意の場所に展開します。
展開したフォルダの中にあるwebrepl.htmlを開くとクライアントパネルが表示されますので、左上のws://に192.168.4.1:8266/と入力してから[connect]をクリックし、”Password:”と表示されたらwebrepl_setupで設定したパスワードを入力すれば接続されます。
*パスワードを変更するとき(忘れたとき)は電源リセット後にimport webrepl_setupコマンドで(D)isableを選択すると、その後のimport webrepl_setupコマンドで新しいパスワードが設定できました。
webreplを使うとターミナルアプリからのreplではできなかったファイルのダウンロード(Get a file)/アップロード(Send a file)ができます。
*コマンド待ち(”>>>”表示)の時に[Tab]きーを押すと現在組み込まれているモジュールが表示されます。
*ファイルリストを表示する操作は次の通りです。
>>> import os
>>> os.listdir()
[‘boot.py’, ‘webrepl_cfg.py’]
“boot.py”をダウンロードしてみます。
ダウンロードしたboot.py
ここでboot.pyにwebreplの自動起動を追記してみます。
Qiitaのサイト”MicroPythonのWebREPL試した話”にSTAモードでだめならAPモードで立ち上げるための記事がありましたのでそのまま利用させていただきました。
追記後のboot.pyをESP32にアップロードします。
STAモードで立ち上がった時(ターミナルを接続して確認)
APモードで立ち上がった時(ターミナルを接続して確認)
最後にMicropythonの中で実行できるエディター”pye Micropython-Editor “を使ってみます。
使用方法など詳細はサイトのadditional_documentation内にあるUserGuide.htmlなどのマニュアルに書かれています。
User’s GuideのInstallation項に概ね次のように書かれていました。
「コンパイル済の”pye.mpy”をターゲットボードに転送するのが簡単です」
という事でこのサイトから”pye.mpy”をダウンロードし、webreplを使ってESP32にアップロードします。
続けてUser’s GuideのStarting pye項に従ってエディターをインポートします。
>>> from pye import pye
ESP32のboot.pyファイルをエディターで開きます。
>>> pye(“boot.py”)
終了:Ctrl+Q
保存:Ctrl+S
今回はここまでで終わります。