89 lines
2.3 KiB
C
89 lines
2.3 KiB
C
|
|
#include "SerialService.h"
|
||
|
|
#include <EEPROM.h>
|
||
|
|
|
||
|
|
#ifndef EepromService
|
||
|
|
#define EepromService
|
||
|
|
|
||
|
|
#define WIFI_SSID_ADDR 0 // Endereço inicial para o SSID na EEPROM
|
||
|
|
#define WIFI_PASS_ADDR 32 // Endereço inicial para a senha na EEPROM
|
||
|
|
#define MAX_SSID_LEN 32 // Tamanho máximo do SSID
|
||
|
|
#define MAX_PASS_LEN 32 // Tamanho máximo da senha
|
||
|
|
#define MOD_ID_ADDR 500
|
||
|
|
|
||
|
|
const int EEPROM_SIZE = 512;
|
||
|
|
|
||
|
|
|
||
|
|
void saveWiFiCredentials(const char* ssid, const char* password) {
|
||
|
|
EEPROM.begin(EEPROM_SIZE);
|
||
|
|
|
||
|
|
for (int i = 0; i < MAX_SSID_LEN; i++) {
|
||
|
|
EEPROM.write(WIFI_SSID_ADDR + i, ssid[i]);
|
||
|
|
}
|
||
|
|
for (int i = 0; i < MAX_PASS_LEN; i++) {
|
||
|
|
EEPROM.write(WIFI_PASS_ADDR + i, password[i]);
|
||
|
|
}
|
||
|
|
EEPROM.commit();
|
||
|
|
PrintTela("Credenciais salvas.");
|
||
|
|
}
|
||
|
|
|
||
|
|
void loadWiFiCredentials(char* ssid, char* password) {
|
||
|
|
EEPROM.begin(EEPROM_SIZE);
|
||
|
|
|
||
|
|
for (int i = 0; i < MAX_SSID_LEN; i++) {
|
||
|
|
ssid[i] = EEPROM.read(WIFI_SSID_ADDR + i);
|
||
|
|
}
|
||
|
|
ssid[MAX_SSID_LEN - 1] = '\0';
|
||
|
|
|
||
|
|
for (int i = 0; i < MAX_PASS_LEN; i++) {
|
||
|
|
password[i] = EEPROM.read(WIFI_PASS_ADDR + i);
|
||
|
|
}
|
||
|
|
password[MAX_PASS_LEN - 1] = '\0';
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
// Função para salvar a configuração no EEPROM
|
||
|
|
void salvarConfiguracaoEEPROM(const String& configuracao, int addr) {
|
||
|
|
EEPROM.begin(EEPROM_SIZE); // Inicializa o EEPROM
|
||
|
|
|
||
|
|
for (int i = 0; i < configuracao.length(); i++) {
|
||
|
|
EEPROM.write(addr + i, configuracao[i]);
|
||
|
|
}
|
||
|
|
EEPROM.write(addr + configuracao.length(), '\0'); // Adiciona terminador nulo
|
||
|
|
EEPROM.commit();
|
||
|
|
|
||
|
|
PrintTela("Configuração salva no EEPROM: " + configuracao);
|
||
|
|
}
|
||
|
|
|
||
|
|
// Função para carregar a configuração do EEPROM
|
||
|
|
String carregarConfiguracaoEEPROM(int addr) {
|
||
|
|
EEPROM.begin(EEPROM_SIZE);
|
||
|
|
String configuracao;
|
||
|
|
char ch;
|
||
|
|
|
||
|
|
for (int i = addr; (ch = EEPROM.read(i)) != '\0' && i < EEPROM_SIZE; i++) {
|
||
|
|
configuracao += ch;
|
||
|
|
}
|
||
|
|
|
||
|
|
PrintTela("Configuração carregada do EEPROM: " + configuracao);
|
||
|
|
return configuracao;
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
void limparEEPROM() {
|
||
|
|
EEPROM.begin(EEPROM_SIZE); // Inicializa o EEPROM
|
||
|
|
|
||
|
|
// Limpa todos os bytes na EEPROM
|
||
|
|
for (int i = 0; i < EEPROM_SIZE; i++) {
|
||
|
|
EEPROM.write(i, 0); // Escreve 0 em cada posição
|
||
|
|
}
|
||
|
|
|
||
|
|
EEPROM.commit(); // Salva as alterações
|
||
|
|
EEPROM.end(); // Encerra a sessão de EEPROM
|
||
|
|
|
||
|
|
PrintTela("EEPROM limpa. Todas as configurações foram resetadas.");
|
||
|
|
}
|
||
|
|
|
||
|
|
#endif
|