WLAN Connect mit ESP32S3

Hallo,

habe en Sketch geschrieben, mit dem eine WLAN Verbindung hergestellt werden soll:

#include <WiFi.h>

char ssid[] = "ssid";  // Eingeben Sie Ihren WLAN-Namensstring hier
char password[] = "password";  // Eingeben Sie Ihr WLAN-Passwort hier

uint8_t status;

void setup() {
  Serial.begin(115200);
  delay(10);

  Serial.println();
  Serial.print("Verbindung zu ");
  Serial.println(ssid);

  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    Serial.print("Status: ");
    Serial.println(WiFi.status());
    delay(1000);
    Serial.print(".");
    status = WiFi.status(); // Hier wird der Statuswert gespeichert
    Serial.print(status);
  }

  Serial.println("");
  Serial.println("Verbindung hergestellt");
  Serial.println("IP-Adresse: ");
  Serial.println(WiFi.localIP());
}

void loop() {
 
}

Der WiFi Status steht immer auf 255. Dieser Wert ist ein ungültiger Wert. Deswegen läuft das Sketch nicht weiter, als bis zur while-Schleife.
In diversen Quellen wird empfohlen, die Firmware zu aktualisieren, wenn es eine aktuellere Version gibt.
Beim Ausführen des Befehls "ESP.getSdkVersion()" wird "v5.1.4-828-g33fbade6b8-dirty" zurückgegeben.

Auf dem ESP32S3 steht "ESP32S3 WROOM FREENOVE".

Weiß jemand, ob man die Firmware über Arduino aktualisieren kann?

nicht wirklich die Antwort auf deine Frage, aber es ist doch eher ungewöhnlich dass genau dein ESP eine zu alte Firmwäre hätte.

Welche ESP Core Version verwendest du genau?
Mit welchem ESP Board kompilierst du den Sketch?

Wie viele Zeichen hat deine SSID?
Wie viele Zeichen hat dein WLAN Passwort?

Chip Modell: ESP32-S3
Chip Revision: 1
CPU-Zyklen: 10873878

Ausgelesen wurde es mit diesen Befehlen:

Serial.print("Chip Modell: ");
Serial.println(ESP.getChipModel());
Serial.print("Chip Revision: ");
Serial.println(ESP.getChipRevision());
Serial.print("CPU-Zyklen: ");
Serial.println(ESP.getCycleCount());

Das Board hat den Name "ESP32S3 Dev Module".

Die ssid hat 13 Zeichen. Es enthält keine keine Sonderzeichen.

Es hat 11 Zeichen und hat auch keine Sonderzeichen.

Auf den Gedanken, dass die ESP Firmware zu alt sein könnte, bin ich gekommen, da der Status ein ungültigen Wert 255 hat.

Wieso Firmware ?
Wenn du den ESP mit deinem Programm flasht, ist doch dein Programm die Firmware und das sollte dann dein neuster Stand sein.

Oder sollte ich mich da irren ?

Ich habe noch zu wenige Kenntnisse auf dem Gebiet der ESP32-Programmierung. Daher bin ich darauf gekommen, dass eventuell die Firmware zu alt sein könnte.

Mit ESP Core meine ich eine Versionsnummer wie 3.0.5 oder 2.0.17

die 2.0.17 ist in Teilbereichen stabiler als die 3.x.x

Ich bin nun auch nicht der Fachmann, aber mit den ESP32 habe ich nie Problem gehabt und alle laufen bei mir im WLan. Hast du mal die Beispiele von fips ausprobiert ? Und eine Einführung dazu.
Die sind alle funktionstüchtig.

Welche Bibliotheken hast Du dazu installiert?

Wenn z.B. ein Sketch ESP32 Zeitschaltuhr Dual via Arduino kompiliert werden soll, werden Fehlermeldungeen angezeigt, die melden, dass die class WiFiClass gewisse Methoden nicht hätte.

Auf meinem System sind in Arduino 1.8.18 u.a. folgende Bibliotheken installiert:

  • AlPlc_Opta
  • AlPlc_PMC
  • Arduino Cloud Provider Examples
  • Arduino Low Power
  • Arduino SigFox for MKRFox1200
  • Arduino Uno WiFi Dev Ed Library
  • Arduino_AdvancedAnalog
  • Arduino_Alvik
  • Arduino_AlvikCarrier
  • Arduino_Apa102
  • Arduino_APDS9960
  • Arduino_AVRSTL
  • Arduino_BHY2
  • Adruino_BHY2Host
  • Arduino_BMI270_BMM150
  • Arduino_BQ24195
  • Arduino_Braccio_plusplus
  • Arduino_Builtin
  • Arduino_Cellular
  • Arduino_CloudConnectionFeedback
  • Arduino_CMSIS_DSP
  • Arduino_ConnectionHandler
  • Arduino_CRC32
  • Arduino_DebugUtils
  • Arduino_EdgeControl
  • Arduino_EMBY
  • Arduino_ESP32_OTA
  • ...
  • ArduinoHttpClient
  • Bridge
  • Esplora

und noch viele weitere... (Es würde viel zu lange dauern, wenn ich alles Abtippen müsste)

Bist Du Dir sicher, dass Du den Rattenschwanz an Libs wirklich brauchst? Du ziehst Dir damit schnell Fehler rein.
Alle IDE < 1.8.19 machen den Rechner durch den Log4J-Bug angreifbar, also gehe besser auf die 1.8.19 portable IDE und installiere erst mal nur den Core für den ESP32 (am Besten die Version 2.0.17). Das genügt für einen WLAN-Connect.

Gruß Tommy

Die ganzen Libs sind alle während der Installation mit auf die Platte kopiert.

Ich habe diese nicht bewusst ausgewählt.

Werde dann tatsächlich alles mal deinstallieren und die portable Version vorliebnehmen.

Wo kann man sich denn die portable Version herunterladen?

Wie das geht steht in dem Link, den ich Dir gegeben habe.
Du kannst die portable IDE neben der installierten betreiben.

Dass die Libs alle von allein bei der Installation der IDE gekommen sind, glaube ich Dir nicht.

Gruß Tommy

Sobald du die notwendige core-Version installiert hast, sind auch die richtigen Libraries installiert. Diese sind dann auch in den entsprechenden Beispielen eingebunden. Somit zeigen dir die Beispiele die korrekten Vorgaben, die nur nachgebaut werden müssen.

Der Link öffnet diese Webseite wo etwas weiter unten folgender Link angeklickt werden kann:
image
Direkt daneben kann wahlweise die exe, msi oder die Zip-Datei heruntergeladen werden:


Hatte immer bislang die exe Datei heruntergeladen, mit der die Installations-Datei heruntergeladen wird.

Mir ist dabei noch aufgefallen, dass es auch ein cloud-Editor gibt.

Diesen habe ich probehalber eingerichtet und gleich mit dem Beispiel-Sketch für WLAN-Anbindung Erfolg gehabt:

ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x1 (POWERON),boot:0xb (SPI_FAST_FLASH_BOOT)
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fce3808,len:0x4bc
load:0x403c9700,len:0xbd8
load:0x403cc700,len:0x2a0c
entry 0x403c98d0
***** Arduino IoT Cloud - configuration info *****
Device ID: 9aaadbc9-f814-407e-be64-ace4e94ac03f
MQTT Broker: iot.arduino.cc:8884
WiFi.status(): 255
Connection to "ssid" failed
Retrying in "4000" milliseconds
Connected to "ssid"
Connected to Arduino IoT Cloud
Thing ID: [ID-Kennung]

So wie es ausschaut, wird zunächst immer der Status 255 gemeldet und erst anschließend der korrekte Status im zweiten Versuch gemeldet.

Somit braucht der ESP32-S3 keinen upgrade, wie ich ursprünglich angenommen habe.

Na ja, ich habe in den Bibliotheken einige ausgewählt, die dann installiert wurden :slight_smile:

Aber auch in der portablen Version sind gleich noch weitere Pakete nachinstalliert worden:

Pakete werden heruntergeladen
arduino:arduinoOTA@1.3.0
arduino:avr-gcc@7.3.0-atmel3.6.1-arduino7
arduino:avrdude@6.3.0-arduino17
arduino:avr@1.8.6
arduino:arduinoOTA@1.3.0 wird installiert
Konfiguriere Werkzeug.
arduino:arduinoOTA@1.3.0 installiert
arduino:avr-gcc@7.3.0-atmel3.6.1-arduino7 wird installiert
Konfiguriere Werkzeug.
arduino:avr-gcc@7.3.0-atmel3.6.1-arduino7 installiert
arduino:avrdude@6.3.0-arduino17 wird installiert
Konfiguriere Werkzeug.
arduino:avrdude@6.3.0-arduino17 installiert
Plattform arduino:avr@1.8.6 wird installiert
Konfiguriere Plattform
Plattform arduino:avr@1.8.6 installiert
Ethernet@2.0.2 wird heruntergeladen
Ethernet@2.0.2
Ethernet@2.0.2 wird installiert
Ethernet@2.0.2 installiert
Firmata@2.5.9 wird heruntergeladen
Firmata@2.5.9
Firmata@2.5.9 wird installiert
Firmata@2.5.9 installiert
Mouse@1.0.1 wird heruntergeladen
Mouse@1.0.1
Mouse@1.0.1 wird installiert
Mouse@1.0.1 installiert
Stepper@1.1.3 wird heruntergeladen
Stepper@1.1.3
Stepper@1.1.3 wird installiert
Stepper@1.1.3 installiert
LiquidCrystal@1.0.7 wird heruntergeladen
LiquidCrystal@1.0.7
LiquidCrystal@1.0.7 wird installiert
LiquidCrystal@1.0.7 installiert
SD@1.3.0 wird heruntergeladen
SD@1.3.0
SD@1.3.0 wird installiert
SD@1.3.0 installiert
TFT@1.0.6 wird heruntergeladen
TFT@1.0.6
TFT@1.0.6 wird installiert
TFT@1.0.6 installiert
Keyboard@1.0.6 wird heruntergeladen
Keyboard@1.0.6
Keyboard@1.0.6 wird installiert
Keyboard@1.0.6 installiert
Servo@1.2.2 wird heruntergeladen
Servo@1.2.2
Servo@1.2.2 wird installiert
Servo@1.2.2 installiert
Arduino_BuiltIn@1.0.0 wird heruntergeladen
Arduino_BuiltIn@1.0.0
Arduino_BuiltIn@1.0.0 wird installiert
Arduino_BuiltIn@1.0.0 installiert
Adafruit GFX Library@1.11.11 wird heruntergeladen
Adafruit GFX Library@1.11.11
Adafruit GFX Library@1.11.11 wird installiert
Ersetze Adafruit GFX Library@1.11.10 durch Adafruit GFX Library@1.11.11
Adafruit GFX Library@1.11.11 installiert

Das ist alles automatisch ausgeführt worden, nachdem die portable Version erstmailg gestartet wurde.

Bei mir nicht.

Gruß Tommy

Portable und v2.3.3 ?

Passt nicht. Ich hatte ja explizit 1.8.19 geschrieben.

Gruß Tommy

Deswegen. Auf seinem Screenshot ist ja die 2.3.3 zu sehen.

Ich weiß nicht was er nun tatsächlich gemacht hat. Seine Beschreibung ist etwas durcheinander.

Gruß Tommy

Hatte tatsächlich erst die Version 2.3.3 heruntergeladen. :slight_smile:

Später habe ich erst meinen Irrtum bemerkt und noch die portable Version Version 1.8.19 heruntergeladen.