背景
ESP32にはFlashメモリにSPIFFSという、ファイル操作が可能な領域があります。4MBフラッシュの標準設定だと約1.5MBがSPIFFSの領域です。
調べて試してみたところ、PC上のファイルをアップロードしてESP32で利用できると分かりました。
備忘録を兼ねて使い方を記事として残します。
使ったもの
ESP32開発ボードESP32にプログラムを書き込めるPC
PlatformIO + VSCode
ファイルを準備
PlatformIOのプロジェクトにdataというディレクトリを作り、その中にESP32にアップロードしたいファイルを置きます。今回はdataディレクトリの中にwebディレクトリを作り、その中にbootstrap.min.cssファイルを置きました。
[PlatformIOのプロジェクト]
|- data
|- web
|- bootstrap.min.css
data内のディレクトリ名がstaticだとエラーになってアップロードできないので注意です。
PlatformIOを利用してESP32にファイルを書き込み
ESP32をPCに接続した状態で、プロジェクトのディレクトリ内でuploadfsを指定してPlatformIOのコマンドを実行するとファイルを書き込めます。pio run -t uploadfs
ESP32のプログラムでFPIFFSを呼び出してファイルを確認
操作例はSPIFFSのサンプルプログラムが参考になります。下記のプログラムでファイルの一覧を10秒ごとに表示できます。
#include <Arduino.h>
#include <SPIFFS.h>
void setup() {
Serial.begin(115200);
if (!SPIFFS.begin()) {
Serial.println("An Error has occurred while mounting SPIFFS");
return;
}
}
void loop() {
static unsigned long printedAt = 0;
if (millis() - printedAt > 10000UL) {
printedAt = millis();
auto root = SPIFFS.open("/");
auto file = root.openNextFile();
while (file) {
Serial.println(file.name());
file = root.openNextFile();
}
Serial.print("at ");
Serial.println(millis());
}
delay(20);
}
成功していればシリアルモニタで下記のような情報を確認できます。
/web/bootstrap.min.css
at 20464
0 件のコメント :
コメントを投稿