Wissen

ESP8266 – WiFi Netze auf bestimmtes WLAN scannen

Heute scannen wir mit dem ESP8266 unsere WiFi Umgebung auf das Vorhandensein eines bestimmten WLAN Netzes. Wird dieses Netzwerk gefunden, so kann danach eine Aktion ausgelöst werden. Über dieses Verfahren könnte man z.B. einfache Automatisationen vornehmen, ohne dass der direkte Kontakt in WLAN Netzwerk statt finden muss. D.h. es reicht schon aus, wenn das WiFi Netzwerk, bzw. die SSID „gesehen“ wird. Ein möglicher Anwendungszweck wäre z.B. die Steuerung von Schaltvorgängen wenn man sich einem bestimmten Netzwerk nähert. z.B. Garagentor öffnet sich, wenn man am Haus des Nachbarn vorbei fährt und das System dessen WLAN bzw. die SSID des WLANs sieht.

Gut, dann muss man nur hoffen, dass der Nachbar seine SSID nicht ändert! 😉 Egal – denn ich denke, wenn ihr diesen Beitrag hier gefunden habt, dann habt ihr auch eine Anwendung dafür!

Im Code definieren wir zuerst die Tätigkeit des ESP8266.
Dafür setzen wir diesen in den STA Mode und führen vorsichtshalber einen „Disconnect“ aus.

Dann starten wir den Scan und lesen die Netzwerke aus.
Bei jedem Netzwerk überprüfen wir ob es eine Übereinstimmung mit unserer Target SSID gibt.

Wird diese gefunden, geben wir in diesem Fall eine Meldung auf der Konsole aus. Hier kann man natürlich auch andere Aktionen starten.

/*
*  Nach bestimmten WLAN Netzen Scannen!
*/
#include "ESP8266WiFi.h"
const char* target_ssid = "iPhone von Martin";
void setup() {
Serial.begin(115200);
// Serial Output(true);
// WiFi in Station Mode versetzen und WLAN trennen. 
WiFi.mode(WIFI_STA);
WiFi.disconnect();
delay(100);
Serial.println("Setup abgeschlossen");
Serial.println();
}
String encryptionTypeStr(uint8_t authmode) {
switch(authmode) {
case ENC_TYPE_NONE:
return "NONE";
case ENC_TYPE_WEP:
return "WEP";
case ENC_TYPE_TKIP:
return "TKIP";
case ENC_TYPE_CCMP:
return "CCMP";
case ENC_TYPE_AUTO:
return "AUTO";
default:
return "?";
}
}
void loop() {
Serial.println("scan start");
Serial.println("");
byte available_networks = WiFi.scanNetworks();
for (int network = 0; network < available_networks; network++) {
if (WiFi.SSID(network) == target_ssid) {
Serial.print("Ziel: ");
Serial.print(target_ssid);
Serial.print(" gefunden!");
Serial.println("");
}
}
// Pause zwischen den Scans
delay(10000);
}

Die Ausgabe sieht dann wie folgt aus:

Viel Spaß bei der Umsetzung Eures Projektes.


Tags

Ähnliche Artikel

1 thought on “ESP8266 – WiFi Netze auf bestimmtes WLAN scannen”

Kommentar verfassen

Close

Adblock Entdeckt

Bitte unterstütze uns in dem Du AdBlock deaktivierst.

Send this to a friend