Ciao a tutti/e
Sto cercando di gestire la configurazione della esp8266 tramite un file txt su scheda SD
Nessun prb per la lettura dei file su SD, ma quando passo le stringhe come parametri di configurazione WIFI non si connette più alla rete.
Se uso questo codice funziona tutto:
char* ssid = "nomerete";
char* password = "password_rete";
char* deviceName = "nome_device";
IPAddress staticIP(192, 168, 1, 100); //ESP static ip
IPAddress gateway(192, 168, 1, 1); //IP Address of your WiFi Router (Gateway)
IPAddress subnet(255, 255, 255, 0); //Subnet mask
IPAddress dns(8, 8, 8, 8); //DNS
Serial.println("Avvio configurazione del WiFi...");
WiFi.hostname(deviceName);
WiFi.config(staticIP, subnet, gateway, dns);
WiFi.begin(ssid, password);
// Wait for connection
Serial.print("Wait for wifi connection");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("Connected to ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
se uso il mio codice non si connette alla rete, presumo sia un prb di conversione delle stringhe SSID e PASSWORD:
if (!SD.begin(chipSelect)) {
Serial.println("SD initialization failed!");
return;
}
cfgFile = SD.open("cfgwifi.txt");
if (cfgFile) {
Serial.println("cfgwifi.txt:");
int conta = 0;
while (cfgFile.available()) {
txtBuffer = "";
txtBuffer = cfgFile.readStringUntil('n');
if(txtBuffer == "")
{
Serial.println("break");
break;
}
conta ++;
switch (conta) {
case 1:
ssid = txtBuffer;
Serial.print("ssid: ");
Serial.println(ssid);
break;
case 2:
password = txtBuffer;
Serial.print("password: ");
Serial.println(password);
break;
case 3:
deviceName = txtBuffer;
Serial.print("deviceName: ");
Serial.println(deviceName);
break;
case 4:
gateway.fromString(txtBuffer);
Serial.print("gateway: ");
Serial.println(gateway);
break;
case 5:
subnet.fromString(txtBuffer);
Serial.print("subnet: ");
Serial.println(subnet);
break;
case 6:
dns.fromString(txtBuffer);
Serial.print("dns: ");
Serial.println(dns);
break;
case 7:
staticIP.fromString(txtBuffer);
Serial.print("staticIP: ");
Serial.println(staticIP);
break;
default:
break;
}
}
// close the file:
cfgFile.close();
} else {
Serial.println("errore apertura cfgwifi.txt");
}
Serial.println("Avvio configurazione del WiFi...");
WiFi.hostname(deviceName);
WiFi.config(staticIP, subnet, gateway, dns);
WiFi.begin(ssid, password);
// Wait for connection
Serial.print("Wait for wifi connection");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("Connected to ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
sul monitor seriale si ferma a :
"Wait for wifi connection ..............." (continuando a scriver puntini in attesa di una connessione valida)
Cosa sto sbagliando?
Grazie in anticipo