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:

  • d1 mini pro wlan finder
  • wifi-umgebung
  • esp8266 wlan scanner
  • wifi scan 8266
  • esp8266 wlan scanner
Die mobile Version verlassen