Schwiriegkeiten bei der Eingabe von wifi anmeldedaten über den seriellen Monitor

Hallo Liebe Leute,
ich möchte gerne, das mein Code die Wifi Anmeldedaten über den seriellen Monitor empfängt, und nicht, dass es fest im Programm ist. Ich habe nämlich vor, den Code so zu programmieren, dass er für beliebige Wlan nutzbar ist, indem man einfach über ein Terminal oder Putty z.B. sich anmelden kann, ohne irgendwie den Code ändern zu müssen. nun stoße ich dabei auf ein auf ein Verhalen, das mir unklar ist.
Wenn ich die Anmeldedaten direkt im Code drin habe, klappt die Verbindung zum Wlan ohne Problem.
aber über den seriellen Monitor irgendwie nicht

hierzu mein Code

//const char* ssid       = "Bahamas";                       //Bei direkter Eingabe dieser Daten
//const char* password   = "everest123";                // funktioniert es

char ssid[50] ;
char password[50];

void setup()
{ 
  Serial.begin(9600);
  int i=0;
  int j=0;


/* so klappt es nicht */
  do{ 
    while (Serial.available() > 0)  
    {    
      char Zeichen = Serial.read(); 
      if (i== 0)   
       ssid[j] += Zeichen;
      else 
       password[j] += Zeichen;
       
      ++j;  
      if (Zeichen == '\n') 
      
      {
        ++i;
        j=0;      
      }
    }
 }while(i<2); 

/* Hier bekomme ich identische Ausgaben mit den Eingaben in der seriellen Monitor */
  Serial.println(ssid);
  Serial.println(password);

  WiFi.begin(ssid,password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println(" CONNECTED");
  //init and get the time
  configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
  setenv("TZ", Timezone, 1);
  GetLocalTime();
  //disconnect WiFi as it's no longer needed
  WiFi.disconnect(true);
  WiFi.mode(WIFI_OFF);
}

Kann es sein, dass Du den Zeilenvorschub noch mit drin hast?

Gruß Tommy

danke , daran hat es gelegen. :slight_smile:
wisst ihr nun wie ich diese Daten über ein Terminal(Unter Windows und Linux) dem ESP32 schicken kann. über Putty wird nichts gesendet.

Warum willst Du das so kompliziert machen?

Wenn sich der ESP im Netz anmelden kann, macht er das. Ansonsten machst Du mit ihm einen Accesspoint auf und stellst eine Website zur Verfügung, die SSID und Passwort abfragt und das im SPIFFS speichert.
Danach startet er neu und nutzt die Daten aus dem SPIFFS.

Das gibt es auch schon fertig. Suche mal nach ESP32 WiFiManager oder schau mal bei Fips vorbei.

Gruß Tommy

ich möchte halt das die Anwender nicht brauchen ein Arduino IDE oder sonst was zu haben. Sie sollen einfach die Wlan daten eingeben und fertig ist es.
Aber dein Tipp ist einen guten Ansatz.
ich versuchs mal
danke

Das können sie dann ja auch. Sie brauchen nur einen Browser und ein Gerät mit WLAN, dessen IP sie ändern können.

Gruß Tommy

ich habe schon dazu ein Bibliothek gefunden die es macht, ich schaffe es nicht ganz selber zu machen, was du beschrieben hast.
ich verwende die WiFi Manager library.
ich bekomme aber komische Fehlermeldungen, die meinen das ich mehrere Includierungen habe obwohl es nicht der Fall ist.
ich benutze ein Beispiel von der wifimanager Bibliothek "autoconnect", und bekomme folgende Fehlermeldungen.
Diese Bibliotheken habe auskomentiert,weil sie schon in der H Datei der wifimanager drin sind.
//#include <DNSServer.h>
//#include <WebServer.h>
//#include <WiFi.h>
PS: ich benutze ein esp32 "Wemos Lolin32"

hier zuerst der Beispielcode

/
#include <WiFiManager.h>         //https://github.com/tzapu/WiFiManager

void setup() {
    Serial.begin(115200);
    WiFiManager wifiManager;
    IPAddress(255,255,255,0));
    wifiManager.autoConnect("AutoConnectAP");
    Serial.println("connected...yeey :)");
}

void loop() {
    // put your main code here, to run repeatedly:
    }

hier sind die Fehlermeldungen

In file included from C:\Users\SORYIB~1\AppData\Local\Temp\arduino_modified_sketch_83370\AutoConnect.ino:14:0:

C:\Users\SoryIbrahima\Documents\Arduino\libraries\WIFIMANAGER-ESP32-master/WiFiManager.h:36:22: error: 'const char HTTP_HEAD []' redeclared as different kind of symbol

 const char HTTP_HEAD[] PROGMEM            = "<!DOCTYPE html><html lang=\"en\"><head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1, user-scalable=no\"/><title>{v}</title>";

                      ^

In file included from C:\Users\SoryIbrahima\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\WebServer\src/WebServer.h:30:0,

                 from C:\Users\SoryIbrahima\Documents\Arduino\libraries\WIFIMANAGER-ESP32-master/WiFiManager.h:21,

                 from C:\Users\SORYIB~1\AppData\Local\Temp\arduino_modified_sketch_83370\AutoConnect.ino:14:

C:\Users\SoryIbrahima\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\WebServer\src/HTTP_Method.h:10:3: note: previous declaration 'HTTPMethod HTTP_HEAD'

   HTTP_HEAD    = 0b00100000,

   ^

Mehrere Bibliotheken wurden für "WiFi.h" gefunden
 Benutzt: C:\Users\SoryIbrahima\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\WiFi
 Nicht benutzt: C:\Program
Mehrere Bibliotheken wurden für "WebServer.h" gefunden
 Benutzt: C:\Users\SoryIbrahima\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\WebServer
 Nicht benutzt: C:\Users\SoryIbrahima\Documents\Arduino\libraries\WebServer-esp32-master
Mehrere Bibliotheken wurden für "DNSServer.h" gefunden
 Benutzt: C:\Users\SoryIbrahima\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\DNSServer
 Nicht benutzt: C:\Users\SoryIbrahima\Documents\Arduino\libraries\DNSServer---esp32-master
Mehrere Bibliotheken wurden für "FS.h" gefunden
 Benutzt: C:\Users\SoryIbrahima\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\FS
Mehrere Bibliotheken wurden für "WiFiManager.h" gefunden
 Benutzt: C:\Users\SoryIbrahima\Documents\Arduino\libraries\WIFIMANAGER-ESP32-master
exit status 1
Fehler beim Kompilieren für das Board WEMOS LOLIN32.

Das solltest Du mal aufräumen.

Gruß Tommy

wie Hättest du es gerne.
ich habe es eigentlich schon aufgeräumt und Fehlermeldungen und Code voneinander getrennt
ich habe eben die überflüßigen Komentaren entfernt :slight_smile:

Ich meinte Deine mehrfachen Libs auf dem Rechner. Nicht ich hätte es gern anders, sondern Dein Compiler :wink:

Gruß Tommy

achso :slight_smile:
es sind ja auch keine merfache inkludierungen, ich habe nur einzelne Bibs davon
deswegen kann nicht nicht die Fehlermeldungen nachvollziehen.

oder kanns du mir ein Beispiel geben wie man es selber machen kann wenn es nicht aufwändig ist

Tommy56:
Warum willst Du das so kompliziert machen?

Wenn sich der ESP im Netz anmelden kann, macht er das. Ansonsten machst Du mit ihm einen Accesspoint auf und stellst eine Website zur Verfügung, die SSID und Passwort abfragt und das im SPIFFS speichert.
Danach startet er neu und nutzt die Daten aus dem SPIFFS.

Das gibt es auch schon fertig. Suche mal nach ESP32 WiFiManager oder schau mal bei Fips vorbei.

Gruß Tommy

Dein Compiler ist da anderer Meinung.

So, wie Fips es in dem von mir verlinkten Beispiel zeigt.

Gruß Tommy

@TO
Warum beschäftigst du dich mit einem Controller, den du nicht beherrscht und nicht verstehst, anstatt mit einem Uno erst die Grundlagen zu lernen.
Grundlagen sind der wichtigste Teil darin, ohne die du das alles nicht verstehst.
Nur mit Copy&Paste kommst du da nicht weiter.

ein uno hat halt kein Wlan, und mein Projekt geht nicht ohne Wlan.
Die Grundlagen on Arduino habe ich schon, bin da kein Neuling.
Man lernt nie aus :slight_smile:

Papispispa:
Die Grundlagen on Arduino habe ich schon, bin da kein Neuling.
Man lernt nie aus :slight_smile:

Man lernt nie aus, das stimmt, aber von den vorhandenen Grundlagen merken wir ziemlich wenig.
Ich bin nun schon eine ganze Weile dabei, mit dem ESP32 aber noch nicht wirklich warm geworden.
Ich ziehe da den ESP8266 vor.

Wenn Du die Grundlagen beherrschst, worin besteht dann Dein Problem, das Beispiel von Fips nachzuvollziehen?

Gruß Tommy