D1 Mini V3 ESP8266EX WLan Verbindung

Hallo, ich habe mir vor Kurzem 3 D1 Mini V3 mit ESP8266EX auf Amazon bestellt (link) um LED Streifen damit zu steuern. Allerdings habe ich schon meine ersten Probleme damit den D1 Mini ins WLan zu bekommen.

Der Sketch zur Verbindung mit dem WLan

#include <ESP8266WiFi.h>        // Include the Wi-Fi library

const char* ssid     = "SSID";         // The SSID (name) of the Wi-Fi network you want to connect to
const char* password = "password";     // The password of the Wi-Fi network

const IPAddress STATIC_IP(192, 168, 2, 230);
const IPAddress GATEWAY(192, 168, 2, 1);
const IPAddress SUBNET(255, 255, 255, 0);
const IPAddress DNS(GATEWAY);

void setup() {
  Serial.begin(115200);         // Start the Serial communication to send messages to the computer
  delay(10);
  Serial.println('\n');
  
  WiFi.hostname("ESP8266");
  WiFi.config(STATIC_IP, GATEWAY, SUBNET, DNS);
  WiFi.begin(ssid, password);             // Connect to the network
  WiFi.mode(WIFI_STA);
  Serial.print("Connecting to ");
  Serial.print(ssid); Serial.println(" ...");

  int i = 0;
  while (WiFi.status() != WL_CONNECTED) { // Wait for the Wi-Fi to connect
    delay(1000);
    Serial.println(++i);
  }

  Serial.println('\n');
  Serial.println("Connection established!");  
  Serial.print("IP address:\t");
  Serial.println(WiFi.localIP());         // Send the IP address of the ESP8266 to the computer
}

void loop() {
  Serial.println(WiFi.RSSI());
  delay(2000);
 }

Und der Sketch zum Scannen aller WLannetze

#include "ESP8266WiFi.h"

void setup()
{
  Serial.begin(115200);
  Serial.println();

  WiFi.mode(WIFI_STA);
  WiFi.disconnect();
  delay(100);
}

void loop()
{
  Serial.print("Scan start ... ");
  int n = WiFi.scanNetworks();
  Serial.print(n);
  Serial.println(" network(s) found");
  Serial.printf("%d network(s) found\n", n);
  for (int i = 0; i < n; i++)
  {
    Serial.printf("%d: %s, Ch:%d (%ddBm) %s\n", i+1, WiFi.SSID(i).c_str(), WiFi.channel(i), WiFi.RSSI(i), WiFi.encryptionType(i) == ENC_TYPE_CCMP ? "WPA2/PSK" : "");
  }
  WiFi.scanDelete();
  Serial.println();

  delay(5000);
}

Beim Scannen fällt auf, dass nur das WLan eines Nachbarn, und ein WLan 3 Stockwerke unter mir erkannt werden. Das WLan des Routers der weniger als einen Meter entfernt steht wird nur sehr selten erkannt. Alle Netzwerke in meiner Umgebung sind mit WPA2/PSK gesichert.
Versuche ich mich direkt mit dem WLan neben mir zu verbinden, muss ich manchmal bis zu 10 Minuten warten bis eine Verbindung hergestellt wird. Ist die Verbindung hergestellt habe ich eine Signalqualität zwischen -35 und -50.
Mit Micropython das gleiche Spiel, die Verbindung herzustellen dauert sehr lange. Benutze ich den D1 Mini als AP kann ich keine Verbindung damit herstellen.
Ich habe schon mehrere D1 Mini, sowie einige USB Kabel ausprobiert. Die Stromversorgung über ein 5V USB Netzteil oder über einen USB PC Anschluss macht auch keinen Unterschied. Ich habe den D1 schon mehrmals neu geflasht (vorher auch flash gelöscht) und auch versucht im Router den WLan Kanal umzustellen (1-11 getestet). Leider ohne Erfolg.
Habe ich einfach schlechte Module erwischt oder mache ich unwissentlich Fehler?

Vielen Dank
Keedosuul

Solange Du Dein Netz nicht stabil im Scanner hast, haben auch die D1 mini keine Chance auf eine stabile Verbindung. Versuche mal, ob es mit einem größeren Abstand funktioniert. Haben andere Geräte im Haushalt (z.B. Smartphone) gute WLAN-Anbindung?

Gruß Tommy

Wie groß soll der Abstand denn sein?
Ja alle anderen Geräte wie ein Laptop, eine Konsole und mehrere Smartphones funktionieren ohne Probleme.

Vielen Dank
Keedosuul

Das wirst Du ausprobieren müssen.
Was sagt denn Dein Router zu Deinem ESP?

Gruß Tommy

Ich bin jetzt durchs ganze 4 Etagenhaus gelaufen und hab nebenbei immer den Scan laufen lassen. Abstand scheint nicht das Problem zu sein, da das WLan nirgends mehr als einmal gefunden wurde.
Der Router (im obersten Stockwerk, Telekom Speeport Smart 3) zeigt, wenn mal eine Verbindung zum ESP bestehen sollte, den ESP als Gerät mit MAC und IP an.

Vielleicht mal 5GHz beim Router aus machen? Also nur mit 2,4GHz

Damit wird das 2,4GHz Netz etwas öfter gefunden aber viel Unterschied macht das leider auch nicht.
Mich wundert es auch dass ich keine Verbindung mit dem ESP herstellen kann wenn ich ihn als eigenen AP einstelle.

Entweder machst Du was falsch (was wir nicht sehen können) oder die Dinger sind Schrott ==> zurückschicken.

Ich habe mit meinen D1 Mini (aus China) noch nie Probleme gehabt.

Gruß Tommy

Welches Board muss ich denn in der IDE einstellen? Ich hatte (LOLIN) Wemon D1 R2 & mini eingestellt.
Ansonsten habe ich den ESP nur mit USB an meinen PC angeschlossen und den Sketch mit der IDE hochgeladen. Glaube nicht dass man da viel falsch machen kann oder doch?

Da wir Deinen Sketch, mit dem Du den AP-Modus testen willst nicht kennen und auch nicht wie Du testest, kann man nichts dazu sagen.
(Sketch bitte in Codetags. Wie das geht, steht hier.)

Gruß Tommy

Oh tut mir leid, dachte ich hätte den Sketch auch im ersten Post angegeben.
Hier der Sketch für den AP Modus

/* 
 *  For more information see http://42bots.com
 *  Configure the ESP8266 unit as a Wi-Fi access point
 */

#include <ESP8266WiFi.h>

/* Your WiFi Soft Access Point settings */
const char* ssid = "ESP8266";          //this will be the network name
const char* password = "ESP8266Test";  //this will be the network password

void setup() {
  delay(1000);
  Serial.begin(115200);
  Serial.println();
  Serial.println();
  Serial.print("Configuring WiFi access point...");
  
  /* You can remove the password parameter if you want the AP to be open. */
  boolean result = WiFi.softAP(ssid, password);
  if(result==true) {
    IPAddress myIP = WiFi.softAPIP();
  
    Serial.println("done!");
    Serial.println("");
    Serial.print("WiFi network name: ");
    Serial.println(ssid);
    Serial.print("WiFi network password: ");
    Serial.println(password);
    Serial.print("Host IP Address: ");
    Serial.println(myIP);
    Serial.println("");
  }

  else {
    Serial.println("error! Something went wrong...");
  }
}

void loop() {
  Serial.printf("Number of connected devices (stations) = %d\n", WiFi.softAPgetStationNum());
  delay(3000);
}

Der AP startet ohne Fehlermeldung aber ich kann mich mit keinem Gerät damit verbinden. Beim Smartphone kommt einfach nur Verbindung fehlgeschlagen und Linux versucht ewig sich zu verbinden aber ohne Erfolg.

Wie versuchst Du darauf zu zu greifen?

Gruß Tommy

Ich versuche mich mit dem WLan das der ESP als AP erstellt zu verbinden. So wie ich die Geräte auch mit meinem normalen WLan verbinden würde.

Mit der IP 192.168.4.1?
Dann wird Dir wohl keiner mehr helfen können. Reklamiere die Dinger als defekt.

Gruß Tommy

Ja genau als Host IP wird 192.168.4.1 angegeben.
Wodran sieht man dass die Dinger defekt sind? Bin davon ausgegangen dass einfach nur ein anderer Adressbereich benutzt wird.
Habe bei allen 3 den Sketch nochmal neu hochgeladen und alle 3 haben die gleiche Host IP

Ja, das ist so voreingestellt.
Sehen, im Sinne von optisch, kann man das nicht. Es sei denn man sieht Kötbrücken zwischen den Pins der IC (Lupe)

Gruß Tommy

Achso nein ich meinte ob man das an der IP sehen könnte, da nach der IP gefragt wurde und danach direkt dass ich die Dinger reklamieren soll. Dann habe ich das missverstanden.
Ich werde die D1 reklamieren und mein Glück mit anderen D1 minis versuchen.

Vielen Dank

Auch wenn es andere Meinungen gibt, so bin ich der Ansicht, ein ESP32 ist besser dafür geeignet. FastLED soll die Daten per DMA rausschicken und zwei Kerne könnten auch hilfreich sein.

Leider liest man von diesem Versender in letzter Zeit keine guten Dinge.

Das dürfte in erster Linie von der Menge und Art der LED abhängen.

Gruß Tommy

Ich hatte vor Micropython und SPI zur Steuerung der LED Streifen zu benutzen. Genauso wie ich es mit einem RasPi auch schon mache, CLK und DATA an CLK und MOSI vom D1 mini und dazu eine externe Stromversorgung.
Zur Not reklamiere ich die Dinger so oft bis ich welche erhalte die auch funktionieren.