Hallo zusammen, ich hab ein kleines Problem mit WiFi.begin beim ESP32 Diese Zeilen funktionieren einwandfrei: const char* ssid = "FRITZ!Box 7490"; const char* password = "123456789"; .... WiFi.config(local_IP, gateway, subnet); WiFi.begin(ssid, password);usw ----------------------------------------- Wenn ich aber ssid und password als variablen haben möchte, habe ich bei meheren Foren gelesen dass es so gehen könnte. String ssid = "FRITZ!Box 7490"; String password = "123456789"; WiFi.config(local_IP, gateway, subnet); WiFi.begin(ssid.c_str(), pw.c_str()); --------- funktioniert aber nicht, was mach ich falsch ?? Vielen Dank für Eure Hilfe im Voraus
martini2000 schrieb: > WiFi.begin(ssid.c_str(), pw.c_str()); Sollte das dann besser
1 | WiFi.begin(ssid.c_str(), password.c_str()); |
heißen?
Hallo Deckenleuchte, vielen Dank für Deinen Hinweis, ich hab es versucht, macht er aber immer noch nicht. Im Internet hab ich noch folgendes gefunden https://forum.arduino.cc/t/issues-with-wifi-begin-and-sting-or-char-variables/600064 Der addiert am Ende des Strings noch ein "/0" dazu Was hälst Du davon Gruß Martin
martini2000 schrieb: > funktioniert aber nicht, was mach ich falsch ?? Als erstes mal sagen, was nicht funktioniert. Gibt es eine Fehlermeldung?
Hallo Martin, nicht "\0" sondern '\0', das ist der String Delimiter, der sagt wo ein String zu Ende ist. Der scheint bei dir nicht gesetzt zu sein, obwohl ich erwartet hätte, dass die String Klasse sich darum kümmert.
String.c_str() liefert einen nullterminierten C-String zurück, das müsste also gleich sein. Liegt es eventuell an der Codierung von Sonderzeichen? Oder ist das PW länger als 32 Zeichen? Edit: habe es auch mal probiert, funktioniert auch mit String.
martini2000 schrieb: > String password = "123456789"; Wieso steht hier passwort > WiFi.config(local_IP, gateway, subnet); > WiFi.begin(ssid.c_str(), pw.c_str()); Und hier nur pw?
Max schrieb: > Wieso steht hier passwort ... Und hier nur pw? Wahrscheinlich weil er wie üblich nicht den Quelltext zeigt, zu dem er Hilfe haben will.
martini2000 schrieb: > Hallo zusammen, > ich hab ein kleines Problem mit WiFi.begin > beim ESP32 > Diese Zeilen funktionieren einwandfrei: > const char* ssid = "FRITZ!Box 7490"; > const char* password = "123456789"; > .... > WiFi.config(local_IP, gateway, subnet); > WiFi.begin(ssid, password);usw Hallo, du hast schon deine Variablen mit
1 | const char* ssid = "FRITZ!Box 7490"; |
2 | const char* password = "123456789"; |
Nur das 'ssid' und 'password' mittels 'const' konstant sind. Beides sind Zeichenketten. Wenn du diese veränderbar haben möchtest nimmste 'const' weg. Zuweisungen zur Laufzeit können dann mittels strcpy oder besser strncpy gemacht werden. Dafür sollte/muss die max. Länge vorher festgelegt werden. Array statt Zeiger. Oder legst neue Variablen nach gleichen Schema nur mit anderen Namen an. Je nachdem was du genau machen möchtest.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.