#include <Arduino.h> // if using PlatformIO
#include <Preferences.h>
Preferences preferencias;
void setup()
{
Serial.begin(9600);
if (!preferencias.begin("vars", true)) // true → read-only
{
Serial.println("Falha ao abrir preferências");
return;
}
if (preferencias.isKey("testeString"))
{
Serial.println("Setup - Chave `testeString` encontrada:");
Serial.println(preferencias.getString("testeString"));
return;
}
Serial.println("Setup - Chave `testeString` Não encontrada:");
preferencias.end();
}
void loop()
{
Serial.println("Looping...");
delay(1000);
preferencias.begin("vars", false);
if (preferencias.isKey("testeString"))
{
Serial.println("Loop - Chave `testeString` encontrada:");
Serial.println(preferencias.getString("testeString"));
return;
}
Serial.println("Loop - Chave `testeString` não encontrada, criando...");
preferencias.putString("testeString", "teste");
Serial.println("Chave `testeString` criada com sucesso");
preferencias.end();
Serial.println("Reiniciando ESP...");
// se não houver delay, o ESP reinicia durante o processo de print, não dando chance para
// o print de fato ser exibido no console
delay(500);
ESP.restart();
}
// //# With Array #//
// #include <Arduino.h> // if using PlatformIO
// #include <Preferences.h>
// Preferences preferencias;
// byte lista[] = {1, 11, 111, 255};
// void setup()
// {
// Serial.begin(9600);
// if (!preferencias.begin("vars", false)) // true → read-only (quando criando a lista, se segundo argumento é `true`, a função retorna falso)
// {
// Serial.println("Falha ao abrir preferências");
// preferencias.end();
// return;
// }
// if (preferencias.isKey("lista"))
// {
// Serial.println("Setup - Chave `lista` encontrada:");
// byte buffer[sizeof(lista) / sizeof(byte)];
// if (preferencias.getBytes("lista", buffer, sizeof(buffer)) != sizeof(lista))
// {
// Serial.println("Data retrieval failed or incomplete!");
// }
// preferencias.end();
// return;
// }
// else
// {
// Serial.println("Setup - Chave `lista` Não encontrada:");
// }
// preferencias.end();
// }
// void loop()
// {
// Serial.println("Looping...");
// delay(1000);
// preferencias.begin("vars", false);
// if (preferencias.isKey("lista"))
// {
// Serial.println("Loop - Chave `lista` encontrada:");
// byte buffer[sizeof(lista) / sizeof(byte)];
// if (preferencias.getBytes("lista", buffer, sizeof(buffer)) != sizeof(lista))
// {
// Serial.println("Data retrieval failed or incomplete!");
// }
// for (byte value : buffer)
// {
// Serial.println(value);
// }
// preferencias.end();
// return;
// }
// Serial.println("Bytes written: " + String(preferencias.putBytes("lista", lista, sizeof(lista))));
// Serial.println("Chave `lista` criada com sucesso");
// preferencias.end();
// Serial.println("Reiniciando ESP...");
// // se não houver delay, o ESP reinicia durante o processo de print, não dando chance para
// // o print de fato ser exibido no console
// delay(500);
// ESP.restart();
// }