- Impressum / Datenschutz / ...
- ESP8266 spezifisch
- Codebesprechung
- Wemos D1 kann nur mit Hotspot vom Handy verbinden
Wemos D1 kann nur mit Hotspot vom Handy verbinden
- Loisl_der_Imker
- Autor
- Offline
- Junior Member
Weniger
Mehr
- Beiträge: 29
- Dank erhalten: 3
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?
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.
- RedBaron
- Offline
- Junior Member
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.
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
Weniger
Mehr
- Beiträge: 29
- Dank erhalten: 3
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.
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
Weniger
Mehr
- Beiträge: 29
- Dank erhalten: 3
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);
}
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.
- RedBaron
- Offline
- Junior Member
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
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.
- RedBaron
- Offline
- Junior Member
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.
- Aktuelle Seite:
- Startseite
- Impressum / Datenschutz / ...
- ESP8266 spezifisch
- Codebesprechung
- Wemos D1 kann nur mit Hotspot vom Handy verbinden