Die Welt mit den Augen eines WLAN-Routers


Die Geschichte von Versuchen, die Welt in einem völlig anderen Licht zu sehen und wie dies schließlich zur Schaffung eines Geräts führte, mit dem Sie WiFi "sehen" können. Der Prozess verwendet das beliebte ESP8266-Modul. Leider wird Arduino auch nicht ohne Arduino auskommen.


Vor N Jahren beschrieb eine Gruppe junger Forscher aus Deutschland das Konzept einer Wärmebildkamera, die nur auf einem Sensor basiert. Das Wesen der Vorrichtung war wie folgt: Unter Verwendung eines Designs von zwei Servos wurde der IR-Sensor nacheinander vertikal und horizontal auf den gewünschten Bereich gerichtet, wobei das Bild allmählich abgetastet wurde. Eine solch interessante Lösung ermöglichte es, den Preis des Geräts drastisch zu senken und interessante Bilder der Temperaturverteilung zu erhalten, wie diese:

Das mechanische Scansystem des Bildes - und genau das hat sich das Design von Servos als äußerst interessant erwiesen. Unmittelbar nach dem Bau eines solchen Geräts stellt sich die Frage: Warum nicht den IR-Sensor durch etwas anderes ersetzen, mit dem beispielsweise Radiowellen nach demselben Prinzip visualisiert werden können?
Das menschliche Auge ist zwar ein recht komplexes, aber sehr begrenztes Werkzeug. Der Lichtbereich, den wir sehen, ist ein sehr kleiner Teil des Spektrums elektromagnetischer Strahlung.

Bewerten Sie das Ausmaß der Tragödie - die meisten Informationen über die Welt um uns herum sind uns einfach verborgen. Natürlich wäre es großartig, den natürlichen Rahmen zu erweitern und die Fähigkeit zu erlangen, über die von der Natur festgelegten Grenzen hinaus zu sehen. Daher wurden die folgenden Experimente unter Verwendung eines mechanischen Kehrsystems durchgeführt.

Um die Technologie zu testen, habe ich eine einfache „Einzelpixel“ -Kamera hergestellt, die in dem uns bekannten sichtbaren Bereich arbeitet. Ich habe eine Solarbatterie eines chinesischen Spielzeugautos als Sensor verwendet:

Natürlich ist die Fläche einer solchen Fotozelle sehr groß, was bedeutet, dass es notwendig ist, irgendwie ein enges Sichtfeld bereitzustellen, daher werden wir eine Linse von der Taschenlampe hinzufügen. Wir setzen Servos auf und verbinden uns mit Arduino.

Die Solarbatterie dreht sich in den gewünschten Bereich des zukünftigen Bildes. Danach liest die Steuerung ein Signal, das proportional zur auf die Batterie einfallenden Lichtmenge ist. Natürlich erzeugt eine solche Kamera irgendwann ein Schwarzweißbild.
Um die Scanergebnisse mit QT zu verarbeiten, wurde ein Programm mit einer einfachen Schnittstelle implementiert. (Lektionen zur Implementierung der Kommunikation zwischen Arduino und Qt finden Sie auf youtube) Das Programm besteht aus zwei Tasten zur manuellen Steuerung von Servos und dem QGraphicsScene-Feld, in dem Quadrate-Pixel gezeichnet werden, deren Farbe von der Stärke des Signals an einem bestimmten Punkt abhängt. Die Verwendung ist einfach: Zunächst werden die Laufwerke manuell zum oberen linken Punkt des zukünftigen Bildes geführt. Anschließend wird ein automatischer Scan des Bereichs durchgeführt, in dem das Bild erstellt wird. Folgendes ist dabei entstanden:

Was ist in dieser Visualisierung dargestellt? Dies ist natürlich das naheliegendste Motiv für Aufnahmen, wenn es sich bei Ihrer Kamera um eine Solarbatterie handelt - dies ist die Sonne.

Trotzdem ist das Batteriesignal zu schwach, um bei Raumbeleuchtung ausreichende Bilder zu erhalten, da es durch einen Fotowiderstand ersetzt wurde und die Linse der Taschenlampe der Hälfte des kaputten Theaterfernglases Platz machte.
Schaltplan



Diese Kreation erwies sich als erfolgreicher, und es war bereits möglich, mehr oder weniger erkennbare Fotos aufzunehmen:
Kronleuchtermaschine

auf der Straße

Blick aus dem Fenster

und sogar Wolken am Himmel

Nachdem ich mit diesem Ergebnis zufrieden war, entschied ich, dass es Zeit war, endlich einen vollwertigen Funkbildgeber herzustellen, der den Fotowiderstand durch eine Richtantenne ersetzte. Der am besten geeignete Bereich hierfür ist die Mikrowelle, da eine Richtantenne nicht viel Platz einnimmt, und in unserem heutigen Leben gibt es viele Geräte, die sorgfältig in diesem Bereich emittieren.

Zuerst habe ich mich für eine Hornantenne entschieden, die in Autoradardetektoren enthalten ist (sie arbeiten normalerweise im Bereich von 10,525 GHz oder 24,15 GHz). Versuche, ein analoges Signal proportional zum Wert der detektierten Strahlung von der Schaltung eines solchen Detektors zu isolieren, waren erfolglos, möglicherweise aufgrund meines Mangels an Wissen und möglicherweise weil es überhaupt nicht vorhanden ist, da es nach dem Vergleichsprinzip funktioniert. (Hallo an die chinesischen Brüder, die dieses Wunder gesammelt haben). Natürlich wollte ich die Antenne selbst herausziehen und etwas Eigenes bauen, aber ich fing nicht an, ein gutes Gerät dafür zu zerbrechen.
Das zweite, was mir in den Sinn kam, war, einen Felddetektor nach einem der auf Amateurfunkportalen reichlich vorhandenen Schemata zu bauen und eine selbstgemachte Richtantenne daran anzubringen, zum Beispiel den sehr beliebten und recht einfach herzustellenden Harchenko-Biquadrat. Aber wie sich herausstellte, ist das wichtigste Element - die Mikrowellendetektordiode - sehr schwer zu finden, leicht zu verlieren und im Allgemeinen kostet es viel, so dass ich zu lange und schwer das richtige Teil finden musste.
Nach einiger Zeit gelang es mir, eine Germaniumdetektordiode aus sowjetischer Zeit zu beschaffen und die folgende Schaltung zusammenzubauen:

Das resultierende Gerät funktionierte sicher, aber in sehr kurzer Entfernung, etwa 5 bis 10 cm von einem Mobiltelefon entfernt, das als Strahlungsquelle fungierte. Dies war natürlich nicht genug für die Aufgabe.

Nach all diesen Prüfungen habe ich endlich das ESP8266-Modul erhalten, das RSSI ( Anzeige des empfangenen WiFi-Signalpegels) der gefundenen Zugangspunkte anzeigen kann . Verwenden Sie dazu den Befehl AT + CWLAP in der Standard-Firmware des Moduls. Ich entschied mich für diese Funktion in Verbindung mit der bereits erwähnten hausgemachten WiFi-gesteuerten Biquadrat-Antenne. So erschien dieses Wunder der Technologie:
Schaltplan


Der ESP8266 selbst ist auf der Rückseite der Antenne montiert und mit Kupferblechen gut abgeschirmt. Die Leuchtziffern zeigen die Spannung am Ausgang des gepulsten DC-DC-Wandlers an, die 12 V von der Stromversorgung auf 3,3 V senkt, was für das Funktionieren des Moduls erforderlich ist (es ist sehr unersättlich, so dass die Einspeisung aus dem Arduino mit einem instabilen Betrieb behaftet ist).
Arduino verwaltet weiterhin Servoantriebe und sendet mithilfe der SoftwareSerial-Bibliothek AT-Befehle an den ESP8266. Einer der schwierigen Punkte - anstelle der Standardbibliotheken SoftwareSerial und Servo musste ich zu ihren Gegenstücken wechseln, da die ursprünglichen bei gleichzeitiger Verwendung in Konflikt stehen.
Natürlich kann man Vorwürfe hören, dass der Arduino hier ein zusätzliches Element ist, da der ESP8266 selbst mit solchen Funktionen umgehen kann. In der Vergangenheit war es jedoch so, dass ich mich bei der Erstellung des Geräts zunächst auf Arduino als zentrales Glied des endgültigen Geräts konzentrierte und der ESP8266 die Rolle einer Art Sensor spielt.
Das QT-Programm, das für die "Solarkamera" geschrieben wurde, wurde erheblich verfeinert.
endgültige Version des Programms


Während des Scannens des Bereichs wird für jeden gefundenen Zugangspunkt ein Array von Signalwerten erstellt, mit denen Sie sehen können, wie verschiedene WLAN-Router am Ende des Scans „leuchten“, und sogar versuchen können, ihren ungefähren Standort abzuschätzen. Je stärker das Signal an einem bestimmten Punkt ist, desto heller ist die blaue Farbe des entsprechenden Pixels.

Und schließlich, als ich das Gerät in verschiedenen Teilen meines Hauses aufstellte, bekam ich die folgenden Bilder. Glücklicherweise gibt es in meinem Haus viele WLAN-Netzwerke, und mit einer ähnlichen Richtantenne können Sie auch sehr entfernte abfangen.

Sofa und Teppichstück. Wenn Sie darauf achten, erhalten Sie am Punkt „SkyNet“ ein Bild von sehr hoher Qualität im Vergleich zu den anderen - dies ist mein Heimrouter. Er ist dem Drehort am nächsten, der dabei offenbar eine wichtige Rolle spielt.

Wieder Kronleuchter. Signale von einigen Netzwerken werden nicht von der Decke oder vom Kronleuchter reflektiert. Anhand dieser Zeichen können Sie höchstwahrscheinlich versuchen, den physischen Standort des Senders zu bestimmen.

Eine mit Wasser gefüllte Badewanne. Wie jeder weiß, werden Radiowellen unter Wasser schlecht übertragen.

Es ist anzumerken, dass Fotos im sichtbaren Bereich nur ungefähr dem gescannten Bereich entsprechen. Es muss auch berücksichtigt werden, dass die Antenne während des Betriebs die Halbkugel irgendwie beschreibt, und dies beeinflusst auch das Ergebnis. Die Auflösung ist im Prinzip nur durch den Verlauf der Antenne und die Zeit begrenzt, die benötigt wird, um den gesamten Bereich zu umkreisen. Darüber hinaus benötigt das Abrufen von Daten für jedes Pixel 4 bis 5 Sekunden. Ich möchte weniger unscharfe Bilder erhalten, dies erfordert jedoch eine Antenne mit einem engeren Strahlungsmuster.

Quellcodes, einschließlich einer Skizze für Arduino

Source: https://habr.com/ru/post/de392555/


All Articles