Hallo zusammen
ich habe mit dem SPIFFS Speicher ,bzw mit der Variable in die ich die Daten schreiben möchte, ein Problem dass ich nicht verstehe und zwar das Auslesen des Speichers funktioniert wunderbar und ich kann es auch in einer Variable speichern nur leider sobald mein Programm ein paar Zeilen weiter ist und ich die Variable erneut brauche dann kennt mein ESP den Inhalt dieser Variable nicht mehr und ich frag mich warum ich nutze mehrere variablen für Wlan Name, Passwort, MQTT und für den Namen meines ESPs und dieser ist es auch der mich zum verzweifeln bringt. Bei allen anderen funktioniert es nur eben der Name(Hostname) wird nach ein paar Zeilen einfach vergessen.
Leider ist mein Skript ziemlich groß deshalb poste ich nur einen ausschnitt davon vielleicht kann mir ja jemand helfen.
char* ssid; //Wlan Name
char* passwort; //Wlan Passwort
char* Hostname; //Name des Boards
const int buttonPin = 13; //GPIO Pin Deklarieren
int Ap;
//*****************************SPIFFS***************************************
char* WLan = "/WLan.txt";
char* Password = "/Passwort.txt";
char* Espname ="/Espname.txt";
char* MQAdr = "/MQTTAddresse.txt";
int WLAN=0; //Zählt die Verbindungsversuche
void Standardsetup(){
//Standart installation
Serial.begin(9600); //Baudrate Bestimmen
Tastersetup();
Serial.println();
delay(500);
//****************************Ausgabe**************************************
Serial.println("ESP Gestartet");
SPIFFSSpeicher(); //SPIFFS initialisieren
WiFi.mode(WIFI_STA); //Wifi Station Modus als Gerät definieren
Taster();
//**********************SPIFFS lesen***************************************
//SSID
File Name = SPIFFS.open(WLan, "r");
String ssid = Name.readString();
ssid.c_str(); //String zu "const char*"
Name.close(); //Schließen der Datei
Serial.print("ssid:");
Serial.println(ssid);
//Passwort
File Kennwort = SPIFFS.open(Password, "r");
String passwort = Kennwort.readString();
passwort.c_str(); //String zu "const char*"
Kennwort.close(); //Schließen der Datei
Serial.print("Passwort: ");
Serial.println(passwort);
//Hostname auslesen
File Host = SPIFFS.open(Espname, "r");
if (Host){
String Hostname = Host.readString();
Hostname.c_str(); //String zu "const char*"
Host.close(); //Schließen der Datei
Serial.print("Hostname: ");
Serial.println(Hostname);
Serial.println("Hostname ausgelesen");
}else{
Host.close(); //Schließen der Datei
Hostname="ESP8266";
}
//MQTT Addresse
File MQTTAdr = SPIFFS.open(MQAdr, "r");
String mqtt_Addresse = MQTTAdr.readString();
mqtt_Addresse.c_str(); //String zu "const char*"
MQTTAdr.close(); //Schließen der Datei
Serial.print("MQTT Addresse: ");
Serial.println(mqtt_Addresse);
if(Ap==0){
//**********************ins WLAN einloggen*********************************
WiFi.begin(ssid, passwort); //Wifi Starten
Serial.print("Verbindung wird hergestellt ...");
while (WiFi.status() != WL_CONNECTED && WLAN < 30) { //While Schleife mit 2 Bedingungen
delay(500);
Serial.print(".");
WLAN++;
}
if (WLAN == 30) {
Serial.println();
Serial.println("WLAN nicht Verfügbar");
//************************************************************************DeepSleep wenn WLAN nicht Verfügbar
Sleep();
} else {
Serial.println("Verbunden! IP-Adresse: ");
Serial.println(WiFi.localIP());
}
} else {
WiFi.disconnect(); // Soft-Access-Point-Modus --> Access-Point Adresse http://192.168.4.1/
WiFiscan();
WiFi.mode(WIFI_AP);
WiFi.softAP(Hostname);
Serial.println("Accespoint erstellt");
createSetupServer();
WLAN = 0;
}
//**********************mDNS Einrichten***********************************
Serial.println(Hostname);
if (!MDNS.begin(Hostname)) {
Serial.println("Fehler beim Einrichten der mDNS!");
while (1) {
delay(1000);
}
} else {
//mDNS Name
Serial.print(Hostname);
Serial.println(".local");
}
}