ESP32でSDカードのテキストファイルを読み書きする。
ESP32でSDカードに保存されたテキストファイルを読み書きするサンプルです。
読み込んで書き込むシンプルなサンプルコードがネットにあまりな無かったので描いてみました。
SDカードとESPとの配線はこちらのサイトを参考にしました。
mgo-tec電子工作
いろいろ調べたのですが、プルアップ抵抗はあった方が良いっぽいです。
そして、 mgo-tec電子工作 にはいつもお世話になっています、ありがとうございます。
そしてこちらのコードを参考にさせていただきました。
ArduinoでSDカードにデータを保存する
sd.ino
#include <SD.h>
#define LOG_FILE_NAME "/log.txt"
const uint8_t SD_CS = 5; // GPIO5=CS
static File s_myFile;
void SD_init()
{
Serial.print("Initializing SD card...");
if (!SD.begin(SD_CS)) {
Serial.println("initialization failed!");
return;
}
Serial.println("initialization done.");
}
String SD_read() {
String str;
File file = SD.open(LOG_FILE_NAME, FILE_READ);
if(file){
//---1byteずつ読み込んだ文字を結合
while (file.available()) {
str += char(file.read());
}
} else{
Serial.println(" error...");
}
//---ファイルを閉じる
file.close();
return str;
}
void SD_write()
{
String backLog = SD_read();
s_myFile = SD.open(LOG_FILE_NAME, FILE_WRITE);
if (s_myFile) {
Serial.print("Writing to test.txt...");
s_myFile.print(backLog);
s_myFile.println("Hello, World");
s_myFile.close();
Serial.println("done.");
} else {
Serial.println("error opening test.txt");
}
}
void setup() {
Serial.begin(115200);
while(!Serial);
Serial.println();
SD_init();
SD_write();
Serial.println(SD_read());
}
void loop() {
// put your main code here, to run repeatedly:
}
