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);
}
danke , daran hat es gelegen.
wisst ihr nun wie ich diese Daten über ein Terminal(Unter Windows und Linux) dem ESP32 schicken kann. über Putty wird nichts gesendet.
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.
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
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.
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
achso
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.
@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.
Papispispa:
Die Grundlagen on Arduino habe ich schon, bin da kein Neuling.
Man lernt nie aus
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?