見出し画像

【ESP32】ESP-WROOM-32でmicropythonを使う方法【Windows 10】

はじめに

  • ESP-WROOM-32(38pin)を手に入れた!

  • 筆者はArduino言語が苦手…

  • なので、micropythonを使えるようにしよう!

今回使用したESP-WROOM-32の写真(38pinタイプ)

各種バージョン

PC(Windows10 Home)

いつもの

python(PC側)

  • Python 3.12.1

    • esptool==4.7.0

    • thonny==4.1.4

micropython(ESP32側)

  • MicroPython v1.22.2

1. esptoolをPCに導入する

以下のサイトを参考にしております

1.1 esptoolのインストール

python -m pip install esptool

実行結果

インストールが進んでいく様子
successfully とか表示されていれば大丈夫のはず
念のため、pip freeze等で確認するとよいかも

1.2 esptoolコマンドが実行できるか確認

正常にインストールできたら、esptoolのPATHが通っているか確認する

esptool

※もし、「コマンドが見つかりません」等と表示される場合は、
esptool.exeの場所を探して指定すれば実行できるかもです

私の環境(pyenv, venv)では、Scripts直下にesptool.exeがありました

2. ファームウェアを書き込む

以下の手順で実施していきます

  • ESP-WROOM-32をUSBケーブルでPCに接続する

  • ポート番号(COMなんたら)を確認

  • ESP32のフラッシュメモリを初期化する

  • ESP32にmicropythonのファームウェアを書き込む

では、順番に実施していきましょう!

2.2 ESP-WROOM-32をUSBケーブルでPCに接続する

USBケーブルによってはデータ転送ができないものもあるので注意!
(これはできないタイプのケーブルでした)

2.2 ポート番号を確認

PCが接続を認識したら、COM番号を確認します

「コントロールパネル」を開く
「デバイスとプリンターの表示」をクリック
番号を確認しま、覚えておきます(この後のesptoolコマンドで使用します)

コマンドプロンプト側が正しく認識できているか確認します

esptool -p COM3 flashi_id

実行結果

キチンとCOM3でESP32がつながっていることを確認

2.3 ESP32のフラッシュメモリを初期化する

フラッシュメモリを初期化するコマンドを実行します

esptool --port COM3 erase_flash

出力結果

私の手もちの子は、特に何もしなくてもsuccessfullyまでいけました

※ESP32の種類によっては「Connecting…」のところで書き込みが止まってErrorになることがあります
そんな時は、「Connecting…」が表示されているときに、基板上のボタン等を押したり、その製品の書き込み方法を調べてみてください

2.4 ESP32にmicropythonのファームウェアを書き込む

いよいよファームウェア(Firmware)を書き込みます

まず、以下のサイトからESP32用のファームウェアをダウンロードします
(バージョンの文字列をクリックすると、ダウンロードできます)

特にこだわりがなければ(latest)表記のある一番上(画像中ではv1.22.2)を使うのが無難です

最後に、以下のコマンドでダウンロードしたファームウェアを書き込みます
(長いので、間違えないように注意!)

書き込みコマンド

esptool --chip ESP32 --port COM3 write_flash -z 0x1000 ESP32_GENERIC-20240222-v1.22.2.bin

実行結果

ここでも「Connecting…」で止まったら基板上のボタンとか押してみて下さい

3. micropythonがESP32上で動作するかテストする

さて、これでmicropythonが使えるようになっていると思いますので、実際にテストしてみましょう
ちなみに、テストにはThonnyを使用します

もし導入がまだの場合は、以下のコマンドでインストールして下さい

インストール

python -m pip install thonny

3.1 Thonnyの起動方法

thonny

起動したら、右下で使用している製品@COM番号 を選択しておきます

今回は、「ESP32@COM3」を選択します

3.2 プログラム実行

適当なプログラムを実行して、動くか確認します

取り合えす、基板上のLEDを1秒ごとにON/OFF切り替えるプログラムを実行

実行結果

想定通りにプログラムが動いたので、これにてテスト完了です

まとめ

  • ESP-WROOM-32でmicropythonを動作させるまでの手順をまとめた

  • esptoolがpythonライブラリのため、pipで導入できるため非常に簡単

  • Wi-FiやBluetoothも使える便利なマイコンがあるので、
    micropythonの書きやすさを生かして、IoT製品のPoCなどに活用しよう!


この記事が気に入ったらサポートをしてみませんか?