Inhaltsverzeichnis:
- Schritt 1: Der Plan
- Schritt 2: Dinge, die Sie brauchen
- Schritt 3: Berechnung des Vollausschlagsstroms
- Schritt 4: Erstellen einer SNMP-GET-Anfrage
- Schritt 5: GET-Antwort verstehen
- Schritt 6: Digital-Analog-Wandler (DAC)
- Schritt 7: Die Montage
- Schritt 8: Zeit für die Codierung
- Schritt 9: Viel Spaß
Video: Internet-Geschwindigkeitsmesser - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:16
Da in Indien eine vollständige Sperrung stattfindet, wurde alles, einschließlich der Postdienste, geschlossen. Keine neuen PCB-Projekte, keine neuen Komponenten, nichts! Um die Langeweile zu überwinden und mich zu beschäftigen, habe ich mich entschlossen, aus den Teilen, die ich bereits zu Hause habe, etwas zu machen. Ich fing an, in dem Haufen Elektronikschrott zu suchen und fand ein altes, kaputtes analoges Multimeter. Ich rettete die "Meterbewegung" daraus und beschloss, eine Art von Informationen anzuzeigen, wusste aber nicht genau, was. Zuerst dachte ich daran, COVID-19-Statistiken anzuzeigen, aber im Internet gibt es bereits viele bessere Projekte. Außerdem werden die Daten nach ein paar Stunden aktualisiert und ein stiller Zeiger des Zählers wäre langweilig. Ich wollte Daten, die sich schnell ändern, sich jede Sekunde ändern. Ich habe auf Instagram nach Vorschlägen gefragt und einer meiner Follower antwortete mit Internet Speedometer. Es klang interessant und beschloss, es zu machen!
In diesem Instructable zeige ich Ihnen, wie ich Daten von meinem WLAN-Router mit SNMP erfasst und die Upload- und Download-Geschwindigkeiten auf dem Messgerät angezeigt habe.
Lass uns anfangen
Schritt 1: Der Plan
Wie immer vor Beginn des Projekts habe ich ein wenig im Internet recherchiert. Ich habe einige Projekte zu diesem Thema gefunden. Sie waren von zweierlei Art. Eine, die die Internetgeschwindigkeit anzeigte, indem sie die "Stärke" des WiFi-Signals maß. Ich bin kein Netzwerkexperte, aber das klang nicht richtig. Die anderen maßen die Latenz und kategorisierten die Geschwindigkeit als langsam, mittel oder schnell. Latenz ist die Zeitverzögerung zwischen dem Senden der Anfrage und dem Erhalten der Antwort und kann daher nicht die tatsächliche Darstellung der Internetgeschwindigkeit sein. Wir können es jedoch eine Netzwerkantwortgeschwindigkeit nennen! Dann gab es seriöse Projekte, die die Zeit zum Herunterladen einiger Daten maßen und darauf basierend die Internetgeschwindigkeit berechneten.
Aber in diesem Projekt (von Alistair) habe ich das Simple Network Management Protocol oder SNMP kennengelernt. Über SNMP können wir mit dem WLAN-Router kommunizieren und die benötigten Daten direkt von diesem beziehen. Einfach richtig? Nicht wirklich! Weil verschiedene Modelle von WLAN-Routern unterschiedliche Einstellungen haben und viel Ausprobieren erfordern, bevor Sie endlich die Ausgabe erhalten. Haben Sie keine Angst. Ich werde kurz erklären, was ich über SNMP gelernt habe und welche Schwierigkeiten ich bei den nächsten Schritten hatte.
Der Plan ist also, NodeMCU zu verwenden, um sich mit dem WLAN-Router zu verbinden. Dies sind die Schritte, um zur endgültigen Ausgabe zu gelangen:
- Senden Sie eine Anfrage an den Router und fordern Sie die erforderlichen Daten an
- Holen Sie sich die Antwort vom Router
- Analysieren Sie die Antwort und analysieren Sie die erforderlichen Daten daraus
- Wandeln Sie die „Rohdaten“in verständliche Informationen um
- Erzeuge eine Spannung proportional zur Internetgeschwindigkeit für das Messgerät
- Wiederholen
Ich werde einen DAC oder einen Digital-Analog-Wandler zur Steuerung des Messgeräts verwenden.
Schritt 2: Dinge, die Sie brauchen
1x NodeMCU
1x analoge Zählerbewegung
1x MPU4725 DAC
1x SPDT-Schalter
1x 10k Potentiometer
1x Widerstand
Schritt 3: Berechnung des Vollausschlagsstroms
Hinweis: Springen Sie zu Schritt 7 für den tatsächlichen Build!
Überspringen Sie diesen Schritt, wenn Sie den Skalenendwert des Ablenkstroms für Ihr Messgerät bereits kennen. Mein Zähler hatte nichts davon erwähnt, also musste ich rechnen. Aber lassen Sie uns zunächst schnell sehen, wie eine solche Bewegung funktioniert. Es besteht aus einer Spule, die in einem Magnetfeld aufgehängt ist. Wenn Strom durch die Spule fließt, erfährt sie nach dem Faradayschen Gesetz eine Kraft. Die Spule darf sich im Magnetfeld frei drehen, ebenso der Zeiger, der an der Spule befestigt ist. Die Stromstärke, die den Zeiger am 'Ende der Skala' bewegt, wird als Vollausschlagsstrom bezeichnet. Dies ist auch der maximale Strom, der durch die Spule fließen darf.
Es passiert noch viel mehr, aber das reicht für das, was wir tun. Wir haben jetzt die Bewegung. Es kann als Voltmeter verwendet werden, indem ein hoher Widerstand in Reihe geschaltet wird, oder als Amperemeter, indem ein kleiner Widerstand parallel dazu hinzugefügt wird. Wir werden es als Voltmeter verwenden, um die Spannung proportional zur Internetgeschwindigkeit anzuzeigen. Wir müssen also den Widerstand berechnen, der in Reihe hinzugefügt werden soll. Dazu müssen wir zunächst den Vollausschlags-Ablenkstrom berechnen.
- Wählen Sie einen hohen Widerstandswert (wie >100k)
- Verbinden Sie es in Reihe mit dem Uhrwerk und legen Sie mit dem Topf eine variable Spannung daran an.
- Erhöhen Sie die Spannung langsam weiter, bis der Zeiger das Ende der Skala erreicht.
- Messen Sie mit einem Multimeter den durchfließenden Strom. Dies ist der Vollausschlags-Ablenkstrom. (I = 150uA in meinem Fall)
Wir verwenden einen DAC mit einem Ausgangsspannungsbereich von 0 bis VCC (3,3 V aufgrund von NodeMCU). Das heißt, wenn 3,3 V an das Messgerät angelegt werden, sollte es auf das Ende der Skala zeigen. Dies kann passieren, wenn ein Vollausschlags-Ablenkstrom durch die Schaltung fließt, wenn 3,3 V angelegt werden. Unter Verwendung des Ohmschen Gesetzes gibt 3,3/(Vollbereichs-Ablenkstrom) den in Reihe einzufügenden Widerstandswert an.
Schritt 4: Erstellen einer SNMP-GET-Anfrage
Simple Network Management Protocol (SNMP) ist ein Internet-Standardprotokoll zum Sammeln und Organisieren von Informationen über verwaltete Geräte in IP-Netzwerken und zum Ändern dieser Informationen, um das Geräteverhalten zu ändern. Zu den Geräten, die normalerweise SNMP unterstützen, gehören Kabelmodems, Router, Switches, Server, Workstations, Drucker und mehr. Für diesen Build werden wir über SNMP mit unserem WLAN-Router kommunizieren und die erforderlichen Daten abrufen.
Aber zuerst müssen wir eine Anfrage, die als 'GET Request' bekannt ist, an den Router senden, in der die Details der gewünschten Daten aufgeführt sind. Das GET-Request-Format wird im Bild gezeigt. Die Anfrage besteht aus verschiedenen Teilen. Ich habe die Bytes hervorgehoben, die Sie möglicherweise ändern möchten.
Bitte beachten Sie, dass alles hexadezimal ist.
SNMP-Nachricht -In meinem Fall beträgt die Länge der gesamten Nachricht 40 (graue Farbe), was bei der Konvertierung in hexadezimal 0x28 beträgt.
SNMP Community String - Der Wert 'PUBLIC' wird hexadezimal als '70 75 62 6C 69 63' mit einer Länge von 6 (gelb) geschrieben.
SNMP-PDU-Typ - In meinem Fall beträgt die Länge der Nachricht 27 (blau), d. h. 0x1B.
Varbind List Type - In meinem Fall beträgt die Länge der Nachricht 16 (grün), d. h. 0x10.
Varbind-Typ - In meinem Fall beträgt die Länge der Nachricht 14 (pink), d. h. 0x0E.
Objektkennung -
Wie bereits erwähnt, unterhalten SNMP-fähige Netzwerkgeräte (z. B. Router, Switches usw.) eine Datenbank mit Systemstatus-, Verfügbarkeits- und Leistungsinformationen als Objekte, die durch OIDs identifiziert werden. Sie müssen die OIDs Ihres Routers für Upload- und Download-Pakete identifizieren. Dies kann mit einem kostenlosen MIB-Browser wie diesem erfolgen.
Geben Sie die Adresse als 192.168.1.1 und die OID als.1.3.6.1.2.1.2.2.1.10.x (ifInOctets) oder.1.3.6.1.2.1.2.2.1.16.x ein. (ifOutOctets). Wählen Sie Vorgang abrufen und klicken Sie auf Los. Sie sollten die OID zusammen mit ihrem Wert und Typ sehen.
In meinem Fall beträgt die Länge der Nachricht 10 (rot), also 0x0A. Ersetzen Sie den Wert durch die OID. In diesem Fall '2B 06 01 02 01 02 02 01 10 10'
Das ist es! Ihre Anfragenachricht ist fertig. Belassen Sie die restlichen Bytes so, wie sie sind.
Aktivieren von SNMP auf Ihrem Router:
- Melden Sie sich über das Standard-Gateway auf der Seite Ihres WLAN-Routers an. Geben Sie 192.168.1.1 in Ihren Browser ein und drücken Sie die Eingabetaste. Standardmäßig sollten Benutzername und Passwort „admin“lauten.
- Ich verwende einen TP-LINK (TD-W8961N) Router. Für diesen Router müssen Sie zu Access Management > SNMP gehen und 'Activated' auswählen.
- GET-Community: öffentlich
- Trap-Host: 0.0.0.0
Schritt 5: GET-Antwort verstehen
Sie können diesen Schritt überspringen, aber es ist gut zu wissen, wenn Sie eine Fehlerbehebung durchführen müssen.
Nachdem Sie den Code hochgeladen und ausgeführt haben, können Sie sich die Antwort über den Serial Monitor ansehen. Es sollte wie auf dem Bild gezeigt aussehen. Es gibt ein paar Bytes, nach denen Sie suchen müssen, die ich hervorgehoben habe.
Ausgehend von 0, Das 15. Byte teilt dem PDU-Typ mit - 0xA2 bedeutet, dass es sich um eine GetResponse handelt.
48. Byte sagt den Datentyp - 0x41 bedeutet, dass der Datentyp Zähler ist.
49. Byte gibt die Länge der Daten an - 0x04 bedeutet, dass die Daten 4 Byte lang sind.
Byte 50, 51, 52, 53 enthält die Daten.
Schritt 6: Digital-Analog-Wandler (DAC)
Mikrocontroller sind digitale Geräte, die analoge Spannungen nicht direkt verstehen. Ich verwende ein analoges Messgerät, das als Eingang eine variable Spannung benötigt. Der Mikrocontroller kann jedoch nur HIGH (3,3 V bei NodeMCU) und LOW (0 V) ausgeben. Jetzt könnten Sie sagen, warum nicht einfach PWM verwenden. Es funktioniert nicht, da das Messgerät nur den Durchschnittswert anzeigt.
Ich verwende den MCP4725 DAC, um eine variable Spannung zu erhalten. Es ist ein 12-Bit-DAC, dh in einfachen Worten, er teilt 0 bis 3,3 V in 4096 (= 2^12) Teile auf. Die Auflösung beträgt 3,3/4096 = 0,8056 mV. Das bedeutet 0 entspricht 0V, 1 entspricht 0,8056mV, 2 entspricht 1,6112mV, ….., 4095 entspricht 3,3V.
Die Internetgeschwindigkeit wird von '0 bis 7 Mbit/s' auf '0 bis 4095' "abgebildet" und dann wird dieser Wert an den DAC gegeben, um eine Spannung auszugeben, die proportional zur Internetgeschwindigkeit ist.
Schritt 7: Die Montage
Anschlüsse sind ganz einfach. Der Schaltplan wurde hier angehängt.
Ich habe die Waage entworfen und gedruckt. Der obere ist für die Download-Geschwindigkeit und der untere für die Upload-Geschwindigkeit. Ich klebte die neue Skala über die alte.
Ich habe all das alte Zeug aus dem Multimeter entfernt und alles darin gestopft. Es war eine enge Passform. Ich musste vorne ein Loch bohren, um den Kippschalter anzubringen, mit dem zwischen Upload- und Download-Geschwindigkeit gewählt wird.
Schritt 8: Zeit für die Codierung
Der Code wurde hier angehängt. Laden Sie es herunter und öffnen Sie es in der Arduino IDE. Installieren Sie die MCP4725-Bibliothek von Adafruit.
Vor dem Hochladen:
- Geben Sie Ihre WLAN-SSID und Ihr Passwort ein
- Geben Sie die auf der Skala angegebene maximale Upload- und Download-Geschwindigkeit ein.
- Nehmen Sie die erforderlichen Änderungen im Request-Array für Download- und Upload-Pakete vor.
- Entkommentieren Sie Zeile 165, um die Antwort auf dem seriellen Monitor anzuzeigen.
Hit hochladen!
Schritt 9: Viel Spaß
Schalten Sie es ein und genießen Sie es, die Nadel beim Surfen im Internet tanzen zu sehen!
Vielen Dank, dass Sie bis zum Ende durchgehalten haben. Ich hoffe, Sie alle lieben dieses Projekt und haben heute etwas Neues gelernt. Lassen Sie es mich wissen, wenn Sie selbst eine machen. Abonniere meinen YouTube-Kanal für mehr solcher Projekte.
Empfohlen:
Uhrzeit und Datum aus dem Internet abrufen - Tutorial: 9 Schritte
Abrufen von Uhrzeit und Datum aus dem Internet - Tutorial: In diesem Tutorial erfahren Sie, wie Sie mit M5Stack StickC und Visuino das Datum und die Uhrzeit vom NIST TIME-Server abrufen. Sehen Sie sich ein Demonstrationsvideo an
ESP8266 Netzwerkuhr ohne RTC - Nodemcu NTP-Uhr Keine RTC - INTERNET-UHR-PROJEKT: 4 Schritte
ESP8266 Netzwerkuhr ohne RTC | Nodemcu NTP-Uhr Keine RTC | INTERNET-UHRPROJEKT: Im Projekt wird ein Uhrenprojekt ohne RTC erstellt, es wird Zeit vom Internet über WLAN benötigt und auf dem st7735-Display angezeigt
Steuern Sie Geräte über das Internet über den Browser. (IoT): 6 Schritte
Steuern Sie Geräte über das Internet über den Browser. (IoT): In diesem Instructable zeige ich Ihnen, wie Sie Geräte wie LEDs, Relais, Motoren usw. über das Internet über einen Webbrowser steuern können. Und Sie können über jedes Gerät sicher auf die Bedienelemente zugreifen. Die Webplattform, die ich hier verwendet habe, ist RemoteMe.org visit
Steuern Sie Ihren ESP6266 über das Internet? Kostenlos und einfach: 7 Schritte
Steuern Sie Ihren ESP6266 über das Internet? Kostenlos und einfach: Wie oft haben wir nicht nach einer einfachen Möglichkeit gesucht, mit unseren Geräten über das Internet ohne Komplikationen und / oder komplexe Zwischenanwendungen, DNS, IP-Adressen oder VPNs zu kommunizieren geführt, r
F.i.c.s. - Fonera Internet-gesteuerter Schalter (ON/OFF): 4 Schritte
F.i.c.s. - Fonera Internet Controlled Switch (ON/OFF): Ich habe vor ein paar Monaten meinen ersten FON-Router kostenlos bekommen. Als erstes habe ich dd-wrt-Firmware darauf flashen. Da der FONera-Router gpio-Pins hat, habe ich mich entschieden, einen dieser Pins zu verwenden, um AC-Lasten zu steuern oder einen Schalter aus der Ferne EIN / AUS zu schalten. Es gibt eine ähnliche