zunächst mal eine kurze Info über mich: Ich programmiere schon ein paar Jahre mit der Arduino IDE, allerdings habe ich erst letztens begonnen mit D1 minis zu arbeiten bzw. allgemein mit allem rund ums Netzwerk und Speicher was Mikrocontroller angeht.
Meine Problemstellung: Der D1 mini soll ein eigenes Netzwerk erstellen, wenn keine Daten im LittleFS gespeichert sind. Über dieses sollen dann, mittles von zwei Eingabefeldern auf einer HTML Seite, die Netzwerkdaten eingegeben werden können, mit denen sich der D1 mini verbinden soll.
Leider verbindet sich der D1 mini aber mit keinem Netzwerk sondern bleibt in der while Schleife (connecting…) hängen mit welcher er endlos Punkte in den Seriellen-Monitor schreibt.
Wenn ich den Variablen direkt im Sketch die Netzwerkdaten zuweise, dann funktioniert der Verbindungsaufbau problemlos, allerdings nicht mit den Daten welche aus dem LittleFs geladen werden. Die Daten an sich scheinen aber auch richtig geladen zu sein da sie richtig im Seriellen-Monitor ausgegeben werden.
Über jegliche Hilfe oder Tipps wäre ich sehr dankbar, da ich mittlerweile nicht mehr weiterweis.
Setze Deinen Code bitte direkt ins Forum. Benutze dazu Codetags (</>-Button oben links im Forumseditor oder [code] davor und [/code] dahinter oder gehe in der IDE auf Bearbeiten - Für Forum kopieren und füge es hier ein.
Dann ist er auch auf mobilen Geräten besser lesbar.
Das kannst Du auch noch nachträglich ändern.
Ansonsten schau Dir mal den Connect-Tab bei Fips an.
Leider bekomme ich den Code als normale .ino nichtmal ins Forum kopiert da die Nachricht dann angeblich über 9000 Zeichen hat.
Im Anhang habe ich aus dem Code nen normalen .ino gemacht.
Der Grundgedanke war das der Code für mehrere Projekte verwenden werden soll und ich somit einfach die nötigen Headerfiles wie bei einer Bibliothek rauskopieren kann. Allerdings hat dies eh nicht so funktioniert durch die nötigen Querverweise zwischen mehreren Headerfiles.
Ich habe eine .ino erstellt das es so am schnellsten ging und die grob 300 Zeilen noch recht übersichtlich sind.
Könnt Ihr mir eventuell auch bei meinem eigentlichen Problem anhand meines code helfen, da ich den Fehler wirklich nicht finden kann und bisher auch nicht im Netz/Forum gefunden habe?
Und danke für den Hinweis: in den Code auf fipsok.de arbeite ich mich gerade auch nebenher rein muss mich aber erst mit OTA noch ein bisschen beschäftigen.
Beim Einlesen des Strings und Anwenden der function toCharArray wird das Zeilenendezeichen mit angefügt
Das bleibt beim Serial.print unsichtbar aber steckt in der Zeichenkette mit drin und deswegen gibt es dann keine Übereinstimmung
Wenn man das Zeilenende-Zeichen durch die Terminating null ersetzt dann passt es.
Hier der Code auch alle Dateien in eine Zusammengeschmissen. Da über 9000 Zeichen als attachment
Hier die entscheidende Änderung
byte lastChar = strlen(SSIDKunde) - 1; // Get the position of the last char
SSIDKunde[lastChar] = '\0'; //replace it with a NULL
Serial.print("SSID#");
Serial.print(SSIDKunde);
lastChar = strlen(PWKunde) - 1; // Get the position of the last char
PWKunde[lastChar] = '\0'; //replace it with a NULL
Serial.print("# PWKunde#");
Serial.print(PWKunde);
Serial.println("#");
//WiFi.begin(String(SSIDKunde).c_str(), String(PWKunde).c_str());
//WiFi.begin((char*)SSIDKunde, (char*)PWKunde); // SSID, WLAN-Key
WiFi.begin(SSIDKunde, PWKunde); // SSID, WLAN-Key
Noch etwas: Als ich eine andere SSID getestet habe die ein Leerzeichen und Ausrufezeichen enthielt
hat das dann statt
FRITZ!BOX 7490
FRITZ&21BOX+7490
als Zeichenkette die von der Internetseite zurückgegeben wurde
ergeben. Das passt dann vermutlich auch nicht
vgs
P.S. Jetzt könntest du als Dankeschön noch den Thread-Titel ändern damit er auf den Punkt bringt auf was es ankommt und um was es geht.
[gelöst] ESP8266 Webserver mit Router verbinden SSID und Passwort vom Dateisystem LittleFS in Variablen einlesen und in Wifi.begin(SSID,password) Variablen verwenden.