{"id":4192,"date":"2026-04-28T10:57:11","date_gmt":"2026-04-28T08:57:11","guid":{"rendered":"https:\/\/g7itchme.wordpress.com\/?p=4192"},"modified":"2026-04-28T10:57:11","modified_gmt":"2026-04-28T08:57:11","slug":"mit-esp-und-gsm-zum-personlichen-wlan-wachter-so-optimieren-sie-ihren-funkkanal","status":"publish","type":"post","link":"https:\/\/technodidact.de\/en\/mit-esp-und-gsm-zum-personlichen-wlan-wachter-so-optimieren-sie-ihren-funkkanal\/","title":{"rendered":"Mit ESP und GSM zum pers\u00f6nlichen WLAN-W\u00e4chter: So optimieren Sie Ihren Funkkanal"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>Autor: DerSchneider<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Einleitung<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Wer heute ein WLAN betreibt, teilt sich das Spektrum mit Nachbarn, B\u00fcros und unz\u00e4hligen IoT-Ger\u00e4ten. Die Folge: \u00dcberlappende Kan\u00e4le, Paketverluste und frustrierende Geschwindigkeitseinbr\u00fcche. Teure Profi-Scanner sind eine L\u00f6sung, aber sie bleiben f\u00fcr viele Hobbyisten und kleine Unternehmen unerschwinglich. Was aber, wenn man mit einem Mikrocontroller f\u00fcr wenige Euro selbst einen intelligenten WLAN-Scanner baut \u2013 und ihn per GSM direkt auf das Handy sprechen l\u00e4sst? Genau das zeigt der hier vorgestellte Code. Dieser Artikel f\u00fchrt Sie durch die optimale Nutzung dieser Open-Source-L\u00f6sung, erl\u00e4utert die technischen Hintergr\u00fcnde und zeigt Ihnen, wie Sie die gewonnenen Daten auf Ihrem GSM-Smartphone sichtbar machen k\u00f6nnen \u2013 sei es per SMS, Web-Dashboard oder Push-Benachrichtigung.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Hauptteil<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1. Warum ein eigenes WLAN-Monitoring? Die historische Perspektive<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Die Notwendigkeit, das Funkumfeld zu vermessen, ist so alt wie die drahtlose Vernetzung selbst. Bereits in den 1990er Jahren, mit dem Aufkommen von IEEE 802.11, k\u00e4mpften Administratoren mit versteckten Sendern und Interferenzen. Die ersten kommerziellen Spektrumanalysatoren kosteten Tausende Dollar. Open-Source-Projekte wie Kismet (2001) brachten eine Wende, erforderten aber spezielle WLAN-Chips\u00e4tze und einen Laptop.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Heute erm\u00f6glicht die ESP32-Plattform f\u00fcr unter 10 Euro einen autonomen Scanner, der seine Ergebnisse sogar per GSM ins Mobilfunknetz meldet \u2013 eine Kombination, die noch vor f\u00fcnf Jahren nur mit teuren Industriekomponenten m\u00f6glich war. Der hier diskutierte Code steht in dieser Tradition der \u00bbCitizen-Science\u00ab-Messtechnik: Er demokratisiert die Funkkanalanalyse.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. Die Bausteine der L\u00f6sung \u2013 Hardware im \u00dcberblick<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Um den Code optimal zu nutzen, ben\u00f6tigen Sie drei Komponenten:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Komponente<\/th><th class=\"has-text-align-left\" data-align=\"left\">Empfohlenes Modell<\/th><th class=\"has-text-align-left\" data-align=\"left\">Kosten (ca.)<\/th><th class=\"has-text-align-left\" data-align=\"left\">Besonderheit<\/th><\/tr><\/thead><tbody><tr><td>Mikrocontroller<\/td><td>ESP32 (DevKit V4)<\/td><td>8\u201312 \u20ac<\/td><td>Dual\u2011Core, WiFi\/BT integriert<\/td><\/tr><tr><td>GSM\u2011Modul<\/td><td>SIM800L<\/td><td>10\u201315 \u20ac<\/td><td>2G (in D ab 2025 schrittweise abgeschaltet \u2013 Achtung!)<\/td><\/tr><tr><td><\/td><td>SIM7000G<\/td><td>35\u201345 \u20ac<\/td><td>LTE\u2011M\/NB\u2011IoT, zukunftssicher<\/td><\/tr><tr><td>Stromversorgung<\/td><td>Li\u2011Ion 18650 + TP4056<\/td><td>5 \u20ac<\/td><td>F\u00fcr mobilen Betrieb<\/td><\/tr><tr><td>Antenne<\/td><td>SMA\u2011GSM\u2011Antenne (3 dBi)<\/td><td>5 \u20ac<\/td><td>Deutlich bessere Empfangsqualit\u00e4t<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Wichtige Unsch\u00e4rfe vermeiden:<\/strong>&nbsp;Die SIM800L arbeitet nur im 2G\u2011Netz. In Deutschland wird 2G zwar noch bis 2028 betrieben, die Bandbreite wird jedoch zunehmend reduziert. Wer eine l\u00e4ngerfristige L\u00f6sung sucht, investiert besser in ein LTE\u2011M\u2011f\u00e4higes Modul wie SIM7000G oder SIM7080G.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3. Code-Struktur und Optimierung \u2013 So holen Sie das Maximum raus<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Der vom Benutzer bereitgestellte Code verwendet eine objektorientierte Struktur mit zwei Hauptklassen:&nbsp;<code>WiFiScanner<\/code>&nbsp;und&nbsp;<code>GSMHandler<\/code>. Die Optimierungspotenziale liegen im Detail:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">3.1 Kanalanalyse \u2013 mehr als nur Signalst\u00e4rke<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Die Methode&nbsp;<code>analyzeChannels()<\/code>&nbsp;z\u00e4hlt Netzwerke pro Kanal und mittelt deren RSSI. Der daraus berechnete \u00bbScore\u00ab gewichtet die Kanalbelegung st\u00e4rker als die reine Signalst\u00e4rke \u2013 ein kluger Ansatz, denn ein \u00fcberf\u00fcllter Kanal mit schwachen Signalen kann problematischer sein als ein m\u00e4\u00dfig belegter mit starken Pegeln.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Optimierungstipp:<\/strong>&nbsp;Passen Sie die Gewichtung in der Zeile&nbsp;<code>int32_t score = -ch.avgRssi - (ch.networkCount * 10);<\/code>&nbsp;an. In dichten Umgebungen (z.\u202fB. Mehrfamilienhaus) erh\u00f6hen Sie den Faktor auf 15 oder 20.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">3.2 Vermeidung von Rauschen durch wiederholte Scans<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Der Code f\u00fchrt alle 30 Sekunden einen Scan durch. Um Fehlmessungen durch spontane Interferenzen zu gl\u00e4tten, bauen Sie eine gleitende Mittelung ein:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">cpp<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><em>\/\/ In der Klasse WiFiScanner<\/em>\nint movingAvg(int newValue) {\n  static int values[5] = {0};\n  static int index = 0;\n  values[index++] = newValue;\n  if (index &gt;= 5) index = 0;\n  int sum = 0;\n  for (int i = 0; i &lt; 5; i++) sum += values[i];\n  return sum \/ 5;\n}<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dies reduziert die Wahrscheinlichkeit, aufgrund eines einmaligen Ausrei\u00dfers einen suboptimalen Kanal zu empfehlen.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">3.3 GSM\u2011Daten\u00fcbertragung \u2013 Drei Wege zur Visualisierung<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Die&nbsp;<code>GSMHandler<\/code>-Klasse zeigt drei Ausgabepfade:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>SMS bei kritischen \u00c4nderungen<\/strong>\u00a0\u2013 ideal f\u00fcr unterwegs. Der Code vergleicht die aktuelle Netzwerkzahl mit dem letzten Wert und alarmiert bei Abweichung.<br><em>Optimierung:<\/em>\u00a0F\u00fcgen Sie eine Schwelle von \u00bbmehr als 10 dBm Ver\u00e4nderung auf dem empfohlenen Kanal\u00ab hinzu, nicht nur die reine Anzahl.<\/li>\n\n\n\n<li><strong>HTTP\u2011POST an eigenen Server<\/strong>\u00a0\u2013 erfordert eine \u00f6ffentliche IP oder einen Cloud\u2011Tunnel (z.\u202fB. ngrok). Eine einfachere Alternative: Nutzen Sie einen\u00a0<strong>MQTT\u2011Broker<\/strong>\u00a0(z.\u202fB. HiveMQ Cloud). Dazu ersetzen Sie die HTTP\u2011Befehle durch\u00a0<code>AT+MQTT<\/code>\u2011Kommandos (falls das GSM\u2011Modul diese unterst\u00fctzt).<\/li>\n\n\n\n<li><strong>Direkte Serial\u2011Ausgabe<\/strong>\u00a0\u2013 f\u00fcr Tests per USB. Hier k\u00f6nnen Sie die Daten mit einem Python\u2011Skript auf dem PC abgreifen und in eine Datei loggen.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">4. Die Daten auf Ihrem GSM\u2011Ger\u00e4t sichtbar machen \u2013 praktische Umsetzung<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ihr Ziel ist es, die Scan\u2011Informationen auf Ihrem&nbsp;<strong>Smartphone<\/strong>&nbsp;zu sehen \u2013 unabh\u00e4ngig vom Standort. Drei praxiserprobte Wege:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Weg A: Einfach \u2013 SMS mit kompaktem Bericht<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Der Code enth\u00e4lt bereits die Methode&nbsp;<code>sendSMS()<\/code>. Rufen Sie nach jedem Scan auf:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">cpp<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">if (signalChangeDetected) {\n  gsm.sendSMS(adminPhone, scanner.getCompactReport());\n}<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Nachteil:<\/strong>&nbsp;Bei h\u00e4ufigen Scans werden SMS schnell teuer. L\u00f6sen Sie die SMS nur bei echten Anomalien aus.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Weg B: Komfortabel \u2013 Telegram\u2011Bot als grafisches Interface<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Telegram ist f\u00fcr solche M2M\u2011Anwendungen ideal, da es kostenlos ist und einfach per HTTP\u2011API angesprochen werden kann. Sie ben\u00f6tigen jedoch einen GSM\u2011Stack mit TLS (nur neuere Module wie SIM7000 unterst\u00fctzen HTTPS). Alternativ: Binden Sie einen externen Cloud\u2011Dienst ein (z.\u202fB. IFTTT) \u2013 das ist oft einfacher, als TLS auf dem Modul zu konfigurieren.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Weg C: Professionell \u2013 Eigene Web\u2011App auf Ihrem Handy<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Die im Artikel gezeigte Node.js\u2011Webanwendung mit Chart.js k\u00f6nnen Sie auf einem kleinen VPS (z.\u202fB. Hetzner, 5 \u20ac\/Monat) hosten. Dann \u00f6ffnen Sie einfach&nbsp;<code>https:\/\/ihre-domain.com\/dashboard<\/code>&nbsp;im Smartphone\u2011Browser. Das Diagramm zeigt den Kanalverlauf \u00fcber Stunden \u2013 perfekt, um Interferenzmuster zu erkennen (z.\u202fB. jeden Abnd um 20 Uhr schaltet der Nachbar seine Mikrowelle ein).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">5. Tabelle der empfohlenen GSM\u2011Befehle f\u00fcr die Praxis<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Befehl<\/th><th class=\"has-text-align-left\" data-align=\"left\">Funktion<\/th><th class=\"has-text-align-left\" data-align=\"left\">Typische Antwort<\/th><\/tr><\/thead><tbody><tr><td><code>AT+CSQ<\/code><\/td><td>Signalqualit\u00e4t abfragen<\/td><td><code>+CSQ: 24,99<\/code>&nbsp;(24 = gut)<\/td><\/tr><tr><td><code>AT+CBC<\/code><\/td><td>Batteriestatus (sofern angeschlossen)<\/td><td><code>+CBC: 1,85,4150<\/code><\/td><\/tr><tr><td><code>AT+SAPBR=1,1<\/code><\/td><td>GPRS\u2011Context aktivieren<\/td><td><code>OK<\/code><\/td><\/tr><tr><td><code>AT+HTTPPARA=\"URL\",\"...\"<\/code><\/td><td>HTTP\u2011Ziel setzen<\/td><td><code>OK<\/code><\/td><\/tr><tr><td><code>AT+HTTPACTION=0<\/code><\/td><td>GET\u2011Request senden<\/td><td><code>+HTTPACTION: 0,200,1234<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Optimierung:<\/strong>&nbsp;F\u00fcgen Sie im Code eine regelm\u00e4\u00dfige Abfrage von&nbsp;<code>AT+CSQ<\/code>&nbsp;ein. Wenn der GSM\u2011Empfang unter einen Schwellwert f\u00e4llt (z.\u202fB. unter 12), sendet der Scanner eine Alarm\u2011SMS an den Administrator \u2013 so erkennen Sie Funkl\u00f6cher.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">6. Stromsparen \u2013 f\u00fcr den mobilen Einsatz auf der Baustelle<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Wer den Scanner in einer abgelegenen Halle oder auf einer Baustelle betreiben m\u00f6chte, muss den Energieverbrauch drastisch senken. Der ESP32 im aktiven Scan\u2011Modus zieht etwa 180 mA, das GSM\u2011Modul im Idealfall 20 mA (Deep\u2011Sleep). Mit einer 18650\u2011Zelle (2500 mAh) halten Sie dann weniger als einen Tag durch.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Bessere L\u00f6sung:<\/strong>&nbsp;Nutzen Sie den Deep\u2011Sleep des ESP32. Wecken Sie den Chip nur alle 15 Minuten f\u00fcr einen 30\u2011Sekunden\u2011Scan. Dazu \u00e4ndern Sie die&nbsp;<code>loop()<\/code>:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">cpp<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">void loop() {\n  performCompleteScan();\n  gsm.sendDataHTTP(scanner.getJSONReport());\n  esp_sleep_enable_timer_wakeup(15 * 60 * 1000000ULL); <em>\/\/ 15 min<\/em>\n  esp_deep_sleep_start();\n}<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Nach dem Aufwachen startet das Programm neu \u2013 der gesamte Zustand muss reinitialisiert werden. Das spart aber \u00fcber 90\u202f% Energie.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Fazit &amp; Ausblick<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Der vorgestellte Code verbindet zwei Welten: die kosteng\u00fcnstige, flexible Messtechnik der Maker\u2011Szene mit der Reichweite des Mobilfunknetzes. Wer ihn optimal nutzt, erh\u00e4lt einen pers\u00f6nlichen WLAN\u2011W\u00e4chter, der Kanalbelegungen analysiert, Ausweichkan\u00e4le vorschl\u00e4gt und bei Problemen direkt auf das eigene Handy meldet. Die drei Ausgabepfade \u2013 SMS, Telegram, Web\u2011Dashboard \u2013 decken sowohl den schnellen Alarm als auch die tiefgehende Langzeitanalyse ab.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Zuk\u00fcnftige Implikationen:<\/strong>&nbsp;Mit dem Aufkommen von Wi\u2011Fi 6 (802.11ax) und 6\u202fGHz\u2011B\u00e4ndern (Wi\u2011Fi 6E) wird Kanalmanagement noch komplexer. Gleichzeitig sinken die Kosten f\u00fcr LTE\u2011M\u2011Module weiter, sodass in zwei Jahren ein Scanner mit integrierter Cloud\u2011Anbindung f\u00fcr unter 20 Euro m\u00f6glich sein wird. Die hier gezeigte Architektur l\u00e4sst sich leicht auf diese neuen Frequenzbereiche erweitern \u2013 ein Update der&nbsp;<code>WiFiScanner<\/code>\u2011Klasse gen\u00fcgt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Kontroverse:<\/strong>&nbsp;Einige Datensch\u00fctzer warnen vor aktiven WLAN\u2011Scannern, da sie MAC\u2011Adressen im Vorbeigehen erfassen k\u00f6nnen. Der obige Code speichert jedoch keine MACs dauerhaft und sendet nur aggregierte Statistiken. Trotzdem sollten Sie beim Betrieb in \u00f6ffentlichen R\u00e4umen die lokalen Gesetze pr\u00fcfen \u2013 in Deutschland ist das passive Mith\u00f6ren von WLAN\u2011Beacons f\u00fcr eigene Zwecke grunds\u00e4tzlich erlaubt, solange keine Paketinhalte dekodiert werden.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Quellen<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>ESP32 Technical Reference Manual, Espressif Systems, Version 4.5, 2023.<\/li>\n\n\n\n<li>SIM7000G AT Command Manual, SIMCom, Rev. 2.03, 2022.<\/li>\n\n\n\n<li>IEEE Std 802.11\u2122-2020, \u00bbWireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications\u00ab.<\/li>\n\n\n\n<li>Deutschlands 2G\/3G\/4G\/5G Netzabschaltungsfahrplan, Bundesnetzagentur, Stand Januar 2025.<\/li>\n\n\n\n<li>Kismet Wireless Sniffer \u2013 Dokumentation,\u00a0<a href=\"https:\/\/www.kismetwireless.net\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.kismetwireless.net<\/a>\u00a0(abgerufen M\u00e4rz 2026).<\/li>\n\n\n\n<li>Beitrag \u00bbWLAN\u2011Kanalbelegung in Mehrfamilienh\u00e4usern\u00ab, c\u2019t Magazin f\u00fcr Computertechnik, Heft 12\/2024, S. 82\u201387.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Autor: DerSchneider Einleitung Wer heute ein WLAN betreibt, teilt sich das Spektrum mit Nachbarn, B\u00fcros und unz\u00e4hligen IoT-Ger\u00e4ten. Die Folge: \u00dcberlappende Kan\u00e4le, Paketverluste und frustrierende Geschwindigkeitseinbr\u00fcche. Teure Profi-Scanner sind eine L\u00f6sung, aber sie bleiben f\u00fcr viele Hobbyisten und kleine Unternehmen unerschwinglich. Was aber, wenn man mit einem Mikrocontroller f\u00fcr wenige Euro selbst einen intelligenten WLAN-Scanner [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[41,42,17,26],"tags":[2225,2588,2905,3415,3613,6408,7815],"class_list":["post-4192","post","type-post","status-publish","format-standard","hentry","category-digitalkultur","category-elektrotechnik","category-im-herz","category-mit-den-handen","tag-esp32","tag-funknetzoptimierung","tag-gsm-modul","tag-iot-datenubertragung","tag-kanalanalyse","tag-sms-steuerung","tag-wlan-scan"],"_links":{"self":[{"href":"https:\/\/technodidact.de\/en\/wp-json\/wp\/v2\/posts\/4192","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/technodidact.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/technodidact.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/technodidact.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/technodidact.de\/en\/wp-json\/wp\/v2\/comments?post=4192"}],"version-history":[{"count":0,"href":"https:\/\/technodidact.de\/en\/wp-json\/wp\/v2\/posts\/4192\/revisions"}],"wp:attachment":[{"href":"https:\/\/technodidact.de\/en\/wp-json\/wp\/v2\/media?parent=4192"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/technodidact.de\/en\/wp-json\/wp\/v2\/categories?post=4192"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/technodidact.de\/en\/wp-json\/wp\/v2\/tags?post=4192"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}