#include <EEPROM.h>
const int EEPROM_SIZE = 5; // Tamaño de la memoria EEPROM para almacenar la contraseña
char storedPassword[EEPROM_SIZE] = "1234"; // Contraseña predefinida
const int DATA_SIZE = 5; // Tamaño de los datos que queremos almacenar en la EEPROM
char dataToWrite[DATA_SIZE] = "1234";
char newpass ;
void setup() {
Serial.begin(115200);
EEPROM.begin(EEPROM_SIZE); // Inicializar la EEPROM
Serial.println(storedPassword);
for (int i = 0; i < DATA_SIZE; ++i) {
EEPROM.write(i, dataToWrite[i]);
}
EEPROM.commit(); // Guardar los datos en la EEPROM
Serial.println("Datos escritos en la EEPROM.");
for (int i = 0; i < EEPROM_SIZE; ++i) {
dataToWrite[i] = EEPROM.read(i);
Serial.print(dataToWrite[i]);
}
}
void loop() {
// Esperar a que se ingrese una contraseña
Serial.println("Ingresa tu contrasena:");
while (!Serial.available()) {
// Esperar a que se ingrese datos por el puerto serie
}
String inputPassword = Serial.readStringUntil('\n');
inputPassword.trim(); // Eliminar espacios en blanco al principio y al final de la contraseña ingresada
// Verificar si la contraseña ingresada coincide con la almacenada en la EEPROM
if (inputPassword.equals(dataToWrite)) {
Serial.println("Contraseña correcta. Puedes modificarla.");
Serial.println("Ingresa la nueva contraseña:");
while (!Serial.available()) {
// Esperar a que se ingrese datos por el puerto serie
}
String newPass = Serial.readStringUntil('\n');
newPass.trim();
// Verificar que la nueva contraseña no esté vacía
if (newPass.length() > 0) {
// Almacenar la nueva contraseña en la EEPROM
for (int i = 0; i < EEPROM_SIZE; ++i) {
EEPROM.write(i, newPass[i]);
}
EEPROM.commit();
Serial.println("Contraseña modificada con éxito.");
Serial.println();
} else {
Serial.println("La nueva contraseña no puede estar vacía.");
}
} else {
Serial.println("Contraseña incorrecta. Acceso denegado.");
}
// Esperar un momento antes de solicitar nuevamente la contraseña
delay(1000);
}