save some variables into sd card
-
Hi,
I would like to save three variables value on the sd.
boolean brgt
boolean unit
int x
and, on setup() read that values...
I'm trying with String, and I can save a string of my value in a file on sd..
but I don't know how to read the separate value to use it in the sketch// http://forum.m5stack.com/topic/184/problems-writing-to-sd-card
#include <M5Stack.h>//Micro SD / TF Card Test
void listDir(fs::FS &fs, const char * dirname, uint8_t levels) {
// Print blank line on screen
M5.Lcd.printf(" \n ");
M5.Lcd.printf(" \n ");Serial.printf("Listing directory: %s\n", dirname);
M5.Lcd.printf("Listing directory: %s\n", dirname);File root = fs.open(dirname);
if (!root) {
Serial.println("Failed to open directory");
M5.Lcd.println("Failed to open directory");
return;
}
if (!root.isDirectory()) {
Serial.println("Not a directory");
M5.Lcd.println("Not a directory");
return;
}File file = root.openNextFile();
while (file) {
if (file.isDirectory()) {
Serial.print(" DIR : ");
M5.Lcd.print(" DIR : ");
Serial.println(file.name());
M5.Lcd.println(file.name());
if (levels) {
listDir(fs, file.name(), levels - 1);
}
} else {
Serial.print(" FILE: ");
M5.Lcd.print(" FILE: ");
Serial.print(file.name());
M5.Lcd.print(file.name());
Serial.print(" SIZE: ");
M5.Lcd.print(" SIZE: ");
Serial.println(file.size());
M5.Lcd.println(file.size());
}
file = root.openNextFile();
}
}void readFile(fs::FS &fs, const char * path) {
Serial.printf("Reading file: %s\n", path);
M5.Lcd.printf("Reading file: %s\n", path);File file = fs.open(path);
if (!file) {
Serial.println("Failed to open file for reading");
M5.Lcd.println("Failed to open file for reading");
return;
}Serial.print("Read from file: ");
M5.Lcd.print("Read from file: ");
while (file.available()) {
int ch = file.read();
Serial.write(ch);
M5.Lcd.write(ch);
}
}void writeFile(fs::FS &fs, const char * path, const char * message) {
Serial.printf("Writing file: %s\n", path);
M5.Lcd.printf("Writing file: %s\n", path);File file = fs.open(path, FILE_WRITE);
if (!file) {
Serial.println("Failed to open file for writing");
M5.Lcd.println("Failed to open file for writing");
return;
}
if (file.print(message)) {
Serial.println("File written");
M5.Lcd.println("File written");
} else {
Serial.println("Write failed");
M5.Lcd.println("Write failed");
}
}//////////////////////////////////////////////////////////////////////////////////////
bool suca = 1;
bool assai = 0;
int x = 1680;
//////////////////////////////////////////////////////////////////////////////////////// the setup routine runs once when M5Stack starts up
void setup() {
// initialize the M5Stack object
M5.begin();// M5.startupLogo();
Wire.begin();// Lcd display
M5.Lcd.setBrightness(100);
M5.Lcd.fillScreen(BLACK);
M5.Lcd.setCursor(0, 10);
M5.Lcd.setTextColor(WHITE);
M5.Lcd.setTextSize(2);// Page Header
M5.Lcd.fillScreen(BLACK);
M5.Lcd.setCursor(0, 05);
M5.Lcd.printf("Testing SD Card Functions:\r\n");//////////////////////////////////////////////////////////////////////////////////////
store = String(brgt) + "," + String(unit) + "," + String(x) + "\r\n";
//////////////////////////////////////////////////////////////////////////////////////
// writeFile(SD, "/hello.txt", "Hello world from M5Stack !!");
writeFile(SD, "/hello.txt", store.c_str()); // questa funziona!!!!M5.Lcd.printf("");
// Print blank line on screen
M5.Lcd.printf(" \n ");// Print blank line on screen
M5.Lcd.printf(" \n ");readFile(SD, "/hello.txt");
// store2[3] = (readFile(SD, "/hello.txt"));
}void loop() {
// put your main code here, to run repeatedly:
M5.update();
}is it correct to use String?
is it the best way to save/read my variables?in the past, with esp8266, I saved my three variables on EEPROM but since M5Stack have sd card I would like to have infinite cycle of read/write
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login