ESP32 へのファイルの書き込み方法
data/
フォルダ以下のファイル群)を書き込む方法をご案内します。本稿では、応用的な内容(TWELITE SPOT に搭載された ESP32 のフラッシュ領域をファイルシステムとして扱い、HTML などのファイルを書き込む方法)を紹介しております。
例えば TWELITE SPOT に HTML ファイルを書き込んでWebサーバとして振る舞わせたい(spot-server サンプルで実現しています)、TWELITE SPOT に暗号鍵ファイルを書き込んでおきたいといった要求がない場合には、本稿の内容を無視していただいて構いません。
本稿では、サードパーティのオープンソースソフトウェアを使用します。
サードパーティのソフトウェアについて、その詳しい使用方法を弊社からご案内することはいたしかねます。また、サードパーティのソフトウェアを使用されたことによるいかなる損害についても、弊社は一切の責任を負いません。
本稿で紹介する方法では、Arduino IDE 1.x を必要とします。Arduino IDE 2.x の技術的な制約により、2023年5月現在、Arduino IDE 2.x には対応していません。
本稿で使用するプラグインは Java で書かれているため、Arduino IDE 1.x とは異なり、Java ベースではない Arduino IDE 2.x では動作しないからです。問題の詳細については、Arduino IDE GitHub ページの Issue (Missing support for external tools / plugins · Issue #58 · arduino/arduino-ide) をご覧ください(英語)。
プラグインの導入
ESP32 のフラッシュ領域へファイルを書き込むための Arduino プラグイン (arduino-esp32fs-plugin) をインストールします。
プラグインのダウンロード
以下のページから、esp32fs.zip
を入手します。
Release Update to support Big Sur · lorol/arduino-esp32fs-plugin
プラグインのインストール
ダウンロードした
esp32fs.zip
を展開してください。Arduino のスケッチブックの保存場所(Arduino IDE 環境設定に記載。例:
C:\Users\foo\Documents\Arduino
)にtools
フォルダがない場合は、これを作成してください。tools
フォルダにESP32FS/tool
フォルダを作成し、zipファイルから得たesp32ffs.jar
ファイルを配置してください。(配置例:C:\Users\foo\Documents\Arduino\tools\ESP32FS\tool\esp32fs.jar
)。Arduino IDE を次に起動した際にプラグインが使用できるようになります。
ホストとの接続
TWELITE R3 / R2 を接続
7P インターフェイス(ESP32
と記載のある側)に TWELITE R3 / R2 を接続してください。
電源を接続
側面の USB-C コネクタ に 5V 電源を供給してください。
Arduino IDE の操作
スケッチを開く
Arduino IDE を起動して、スケッチを開いてください。
書き込むファイルの配置
スケッチ -> スケッチのフォルダを表示 から、スケッチのフォルダを開いてください。
スケッチファイル(
.ino
)と同じ階層に、data
フォルダを作成してください。data
フォルダ内に、書き込むファイルを配置してください。
data
フォルダ内の階層構造は維持されます。シリアルポートを選択
ツール -> シリアルポート メニューから、 TWELITE R3 / R2 のポートを選択してください。
COM?
といった名称に、macOS / Linux では /dev/tty?
といった名称になります。ESP32 をプログラムモードで起動
TWELITE SPOT の ESP32 リセットスイッチ EN(RST)
と ESP32 ブートスイッチ BOOT
を押し、EN(RST)
-> BOOT
の順で離してください。
BOOT
を押した状態でリセットすることで、ESP32 をプログラムモードに移行できます。書き込みを実行
ツール -> ESP32 Sketch Data Upload をクリックしてください。
Select FS for <スケッチ名> /data folder にて、LittleFS を選択してください。
- OK を押してください。
Hard resetting via RTS pin...
と表示されます。環境によっては、以下のように表示されて書き込みに失敗することがあります(macOS で確認)。
`Error: esptool not found!`
その際には、esptool.py を Arduino15フォルダ
/packages/esp32/tools/esptool_py/<バージョン>/esptool.py
へ配置することで解決できるかもしれません。
例えば、macOS の場合には、下記のようにして esptool.py を取得し、シンボリックリンクを作成します。
/usr/bin/pip3 install esptool
ln -s ~/Library/Python/3.9/bin/esptool.py ~/Library/Arduino15/packages/esp32/tools/esptool_py/4.5.1/esptool.py
注:
/usr/bin/pip3
と指定しないと、Homebrew のディレクトリにインストールされてしまうことがあります
ESP32 をリセット
書き込みが完了したら、TWELITE SPOT の ESP32 リセットスイッチ EN(RST)
を押して離し、ESP32 をリセットしてください。