1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ESP32ボードにMicroPythonをインストールして動作確認

Last updated at Posted at 2025-10-04

はじめに

MicroPythonは組込み機器や小型マイコンボード(例:ESP32、Raspberry Pi Pico など)で使えるように設計された軽量のPythonです。CPUやメモリに制約のあるマイコンボードでも動作します。多くの基本ライブラリがPythonからMicroPythonに移植されており、Pythonと比べて遜色のないプログラミングが可能となっています。
ここで、MicroPythonをマイコンボードで使えるようにするには、ファームウェアを書き込む必要があります。今回は、ESP32ボードにMicroPythonのファームウェアを書き込み、MaicroPythonを使えるようにします。

環境

パソコン:Raspberry PI 5
OS:Linux raspberrypi 6.12.34
ファームウェア:ESP32_GENERIC-20250809-v1.26.0.bin
動作確認に用いたマイコンボード:Wemos ESP32 D1 R32, ESP32 DevKitC

ESP32ボードへのMicroPythonのインストール

はじめに、パソコンに「esptool」がインストールされていない場合は、「esptool」をインストールします。

pip install esptool

ESP32ボードをパソコンに接続して、ESP32ボードの初期化を実行します。

esptool.py --port /dev/ttyUSB0 erase_flash

ESP32用のMicroPythonファームウェアのダウンロード

の下の方にある「Firmware」から v1.26.0 (2025-08-09) .bin などをダウンロードします。
次いで、コマンドを実行してファームウェアをマイコンボードに書き込みます。
(ファームウェア(ESP32_GENERIC-20250809-v1.26.0.bin)がダウンロードフォルダにある場合のコマンドです)

esptool.py --chip esp32 --port /dev/ttyUSB0 write_flash -z 0x1000 /home/moony/ダウンロード/ESP32_GENERIC-20250809-v1.26.0.bin

参考までに、ファームウェア書き込み後のメモリの状況(ESP32 DevKitC)です。

>>> import micropython
>>> micropython.mem_info()
stack: 736 out of 15360
GC: total: 56000, used: 10080, free: 45920, max new split: 110592
 No. of 1-blocks: 226, 2-blocks: 32, max blk sz: 32, max free sz: 2858
>>> import gc
>>> gc.mem_free()
153344
>>> gc.mem_alloc()
14928
>>>
# スタック 15360 バイト中,736 バイト使用
# ヒープ・メモリ 56000 バイト中,10080 バイト使用
# 空き容量 45920 バイト

以下のプログラムなどで動作確認します。

WiFi接続

import time 
import network 

# Wi-Fi に接続する関数
# 引数:SSIDとパスワード(ssid, password)
def connect_to_wifi(ssid, password):
    wlan = network.WLAN(network.STA_IF) 
    wlan.active(True)                    
    
    wlan.connect(ssid, password) 

    print("Wi-Fiに接続中...")
    for _ in range(10):
        if wlan.isconnected():
            break
        time.sleep(1)

    if wlan.isconnected():
        ip = wlan.ifconfig()[0]
        print("接続成功! IPアドレス:", ip)
    else:
        print("Wi-Fi接続に失敗しました。")
        raise SystemExit

# Wi-Fiに接続(ssid と password にはWiFiルータのIDとパスワードを入力)
connect_to_wifi('ssid', 'password')

参考文献

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?