Wemos D1 kann nur mit Hotspot vom Handy verbinden

  • Loisl_der_Imker
  • Autor
  • Offline
  • Junior Member
  • Junior Member
Mehr
11 Jul 2018 11:47 #431 von Loisl_der_Imker
Loisl_der_Imker erstellte das Thema Wemos D1 kann nur mit Hotspot vom Handy verbinden
Hallo

Ich hab seit kurzen ein Arduino ähnliches Wemos D1 Bord und folgendes Problem:

Alle Beispielprogramme für das Bord laufen nicht wenn eine Verbindung zum vorhandenen WLan aufgebaut werden soll. Sie bleiben immer in der Schleife hängen und am Seriellen Monitor schreibt es nur Punkte!

Hab versuchsweise das WLAN über den Router schon auf alle möglichen Modi umgestellt aber es klappt nicht! Auch auf ein anderes Wlan netzt im Haus kann nicht zugegriffen werden.

Hab jetzt versucht mit den Hotspot vom Handy eine Verbindung auf zu bauen - das hat geklappt.
Hier wird aber auch eine WPA2 PSK Verbindung aufgebaut und im SSID Namen sind auch Leerzeichen.


Warum klappt es beim WLan nicht - woran könnte das liegen?

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
11 Jul 2018 21:21 #432 von RedBaron
Wemos D1 kann nur mit Hotspot vom Handy verbinden
Versuche einmal das folgende Programm. Es meldet ein wenig mehr, was genau passiert. Dann könntest du dir auch noch einmal die Events in ESP8266WiFiGeneric.h anschauen und diese ausprogrammieren.

Wie man weitergehendes Debugging aktiviert, findest du z.B. auf meiner Seite: http://bienonline.magix.net/public/arduino-tipps.html#ESP8266

Ansosnten wäre es nützlich, wenn du deinen Code posten würdest. Am besten auf ein Minimum reduziert.

#include <ESP8266WiFi.h>

String getStatusString(int status = -1) {
  if (status < 0)
    status = WiFi.status();
  switch (status) {
  case WL_NO_SHIELD: return String(F("WL_NO_SHIELD"));
  case WL_IDLE_STATUS: return String(F("WL_IDLE_STATUS"));
  case WL_NO_SSID_AVAIL: return String(F("WL_NO_SSID_AVAIL"));
  case WL_SCAN_COMPLETED: return String(F("WL_SCAN_COMPLETED"));
  case WL_CONNECTED: return String(F("WL_CONNECTED"));
  case WL_CONNECT_FAILED: return String(F("WL_CONNECT_FAILED"));
  case WL_CONNECTION_LOST: return String(F("WL_CONNECTION_LOST"));
  case WL_DISCONNECTED: return String(F("WL_DISCONNECTED"));
  }
  return String(F("WL_UNKNOWN"));
}

void connect(String ssid, String pw) {
  WiFi.begin(ssid.c_str(), pw.c_str());
  wl_status_t st = WiFi.status();

  while (true) {
    delay(500);
    Serial.print(".");

    wl_status_t stn = WiFi.status();
    if (stn == WL_CONNECTED)
      break; // Ok, Verbindung hergestellt

    if (st != stn) {  // Status hat gewechselt, aber nicht auf WL_CONNECTED
      Serial.println(getStatusString() + " (" + String(stn) + ")");
    }
  }
}

void setup() {
  Serial.begin(115200);
  Serial.println(F("\n----------------------------"));
  connect("", ""); // <---- SSID und Passwort einsetzen
}

void loop() {
  // Nichts zu tun
}

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Loisl_der_Imker
  • Autor
  • Offline
  • Junior Member
  • Junior Member
Mehr
12 Jul 2018 06:51 #434 von Loisl_der_Imker
Wemos D1 kann nur mit Hotspot vom Handy verbinden
Danke für die schnelle Hilfe

Dein Sketch liefert folgendes im Seriellen Monitor zurück:
WL_Connect_Failed (4)

Ich versuche nachher mal ob eine Verbindung klappt wenn das WLan Passwort ausgeschaltet ist - beim Handy Hotspot war beim 1. Versuch das Passwort auch ausgeschaltet.

...melde mich wenn das erledigt ist.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Loisl_der_Imker
  • Autor
  • Offline
  • Junior Member
  • Junior Member
Mehr
12 Jul 2018 10:02 #435 von Loisl_der_Imker
Wemos D1 kann nur mit Hotspot vom Handy verbinden
Ich bin keinen Schritt weiter - hab jetzt den Sketch von RedBaron noch einmal mit copy/Paste eingefügt, an der einen stelle das Wlan Passwort und ssid eingegeben und nun zeigt er mir nur noch Punkte im Monitor an!

Dachte dann ich brauch ja für den oberen teil die deklarierte Variable ssid und pw also auch hier eine Definition oben eingefügt wo mein ssid und PW einmal vom Hotspot-Handy und einmal vom festen Wlan eingegeben war.

==> Hotspot vom Handy klappt die Verbindung aber Wlan schreibt er nur punkte.


Das Ausschalten von der Passwortabfrage vom Wlan hat auch keine änderung gebracht.

Nachfolgend der Sketch der auch nur mit Hotspot vom Handy klappt - es werden alle weiteren Wlan netze angezeigt:

/*
* This sketch demonstrates how to scan WiFi networks.
* The API is almost the same as with the WiFi Shield library,
* the most obvious difference being the different file you need to include:
*/
#include "ESP8266WiFi.h"
const char* ssidfix = "Name Handy-Hotspot"; // The SSID (name) of the Wi-Fi network you want to connect to
const char* password = "Passwort dazu"; // The password of the Wi-Fi network
// const char* ssidfix = "WLan";
// const char* password = "Passwort dazu";

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

// Set WiFi to station mode and disconnect from an AP if it was previously connected
WiFi.mode(WIFI_STA);
WiFi.disconnect();
delay(100);
Serial.println("Setup done");

WiFi.begin(ssidfix, password); // Connect to the network
Serial.print("Connecting to ");
Serial.print(ssidfix); Serial.println(" ...");
// Verbindung ohne Passwortschutz und auch mit hat geklappt
// warum es mit den festen Wlan netzt nicht klappt kann ich nicht sagen

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

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("scan start");

// WiFi.scanNetworks will return the number of networks found
int n = WiFi.scanNetworks();
Serial.println("scan done");
if (n == 0)
Serial.println("no networks found");
else
{
Serial.print(n);
Serial.println(" networks found");
for (int i = 0; i < n; ++i)
{
// Print SSID and RSSI for each network found
Serial.print(i + 1);
Serial.print(": ");
Serial.print(WiFi.SSID(i));
Serial.print(" (");
Serial.print(WiFi.RSSI(i));
Serial.print(")");
Serial.println((WiFi.encryptionType(i) == ENC_TYPE_NONE)?" ":"*");
delay(10);
}
}
Serial.println("");

// Wait a bit before scanning again
delay(5000);
}

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
12 Jul 2018 21:38 - 12 Jul 2018 21:39 #436 von RedBaron
Wemos D1 kann nur mit Hotspot vom Handy verbinden
Da wird es nötig sein, tiefergehende Information zu erhalten. Ich nehme an, du benutzt die Arduino IDE.

Im Code direkt nach
Serial.begin(...);
folgende Anweisung einfügen
Serial.setDebugOutput(true);
Das aktiviert die Ausgabe zusätzlicher Information. Diese müssen in der IDE ausgewählt werden:
Menü -> Werkzeuge -> Debug Port: Serial
Menü -> Werkzeuge -> Debug Level: WIFI

Das Programm auf ein Minimum reduzieren:
setup {
Serial.begin(115200);
Serial.setDebugOutput(true);
WiFi.begin("", ""); // <- Daten eintragen
}
loop() {}

Das Programm neu kompilieren, hochladen und starten.

Du bekommst jetzt eine Menge Zusatzinformationen.

Wenn es zuviel zum Posten ist, kannst du mir den Output auch mailen: bienonline<at>gmx.de
Letzte Änderung: 12 Jul 2018 21:39 von RedBaron. Begründung: Ergänzung

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
13 Jul 2018 12:05 #437 von RedBaron
Wemos D1 kann nur mit Hotspot vom Handy verbinden
Mir fällt noch etwas dazu ein. Hast du vielleicht Umlaute oder ß im SSID oder im Passwort? Der GCC behandelt die ziemlich merkwürdig!

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Powered by Kunena Forum