ESP32でSPIFFSにファイルを読み書きする方法

ESP32-WROOM-32では搭載されているフラッシュメモリの一部をストレージとして使用できる機能「SPIFFS」があります。

ちょっとしたWebサーバーを構築してテンプレートファイルを保存するときわざわざSDカードなどの外部メディアに保存せずにどうにかならないか探したところ、この機能を知りました。

開発環境

特徴

一度書き込んだファイルはスケッチを書き換えても消えません。

スケッチにバイナリを保存する手間が省けます。

SPIFFSのサンプルプログラム

include、定義

初期処理

ディレクトリ、ファイル一覧を取得(サブフォルダを含む)

呼び出し

ファイル書き込み

呼び出し

ファイル追記

ファイル読み込み

呼び出し

ファイル削除

呼び出し

Arduino IDEからファイルをアップロードする

受信したメッセージやファイルをスケッチで書き込むのではなく、Arduino IDEから直接アップロードすることができます。

①以下サイトに接続し「release page」をクリック。
https://github.com/me-no-dev/arduino-esp32fs-plugin

② ESP32FSの最新版をダウンロード。

③Arduino IDEの「ファイル」→「環境設定」→スケッチブックの保存場所に記載のあるフォルダ配下に「tools」フォルダを作成。

④作成した「tools」フォルダに②でダウンロードして解凍したフォルダを配置し、Arduino IDEを再起動。

⑤「ESP32 Sketch Data Upload」が追加されました。

Arduino IDEからESP32へファイルをアップロード

①スケッチフォルダ配下に「data」フォルダを作成し、アップロードしたファイルを配置します。

test.txt

②Arduino IDEの「ESP32 Sketch Data Upload」をクリックすればアップロード完了です。