Nach dem ich mit der Telekom und einem Hybrid-Vertrag Probleme hatte habe ich mir selber auf Basis eines Raspberry Pi einen Internet Geschwindigkeit Monitor gebaut. Dieser zeichnet alle 15 Minuten die Geschwindigkeit auf und speichert die gemessenen Werte für Download und Upload in eine CSV Datei ab. Das ganze ist recht einfach umgesetzt und hilft ungemein bei der Diskussion mit seinem Provider da man bei der Diskussion nicht hilflos dasteht sondern aufzeigen kann wie die Datenrate wirklich vor Ort ist. Die Daten können je nach Interesse über viele Wochen hinweg aufgezeichnet werden und stellen sehr schön die tatsächliche Geschwindigkeit der Internetverbindung da.

Rasbperry Pi - Internet Geschwindigkeit Monitor

Rasbperry Pi – Internet Geschwindigkeit Monitor

Materialliste

Ich stelle auf meinen Blogs immer die Materialliste anhand von Amazon zusammen. Also sind die nachfolgenden Links alle Affiliate links.

Eine sehr schöne Lösung ist dieses Starterkit. Es enthält alles was man braucht vom Raspberry Pi über die mirco SD-Karte bis hin zum Gehäuse und Ladegerät mit der Garantie das es auch funktioniert. Der Raspberry Pi 3 Model B+ hat den Vorteil das schon ein WIFI Modul verbaut ist. Somit erhält man eine schöne kompakte Lösung.

(* = Affiliate-Link / Bildquelle: Amazon-Partnerprogramm)
×
Produktpreise und -verfügbarkeit sind zum angegebenen Datum / Uhrzeit korrekt und können sich ändern. Alle Preis- und Verfügbarkeitsinformationen auf https://www.amazon.de/ zum Zeitpunkt des Kaufs gelten für den Kauf dieses Produkts.

Jetzt ist es natürlich so, das man diesen Speedtest vielleicht ein paar Wochen laufen lässt und anschließend mit dem Raspberry Pi etwas anders machen möchte. Daher hier noch der Link auf das neueste Modell mit 4 GB Ram. Mit diesem kann man weitere Projekte machen und sich noch stärker mit z. B. Linux vertraut machen.

Für das neue Modell habe ich leider noch kein Kit gefunden das alles beinhaltet vom Gehäuse bis zum HDMI Kabel.

4%
Raspberry Pi 4 4GB
4.8 out of 5 stars
71,66 €
68,79 €
(Stand von: 21. December 2023 13:45 - Details)
Bei Amazon ansehen *
(* = Affiliate-Link / Bildquelle: Amazon-Partnerprogramm)
×
Produktpreise und -verfügbarkeit sind zum angegebenen Datum / Uhrzeit korrekt und können sich ändern. Alle Preis- und Verfügbarkeitsinformationen auf https://www.amazon.de/ zum Zeitpunkt des Kaufs gelten für den Kauf dieses Produkts.

Optional und von mir immer sehr gerne verbaut ist dieses OLED Display. So kann ich ganz einfach die IP-Adresse des Raspberry Pi ablesen und erfahre etwas über die Ressourcen Auslastung von der CPU, dem RAM und der Speicherkarte.

(* = Affiliate-Link / Bildquelle: Amazon-Partnerprogramm)
×
Produktpreise und -verfügbarkeit sind zum angegebenen Datum / Uhrzeit korrekt und können sich ändern. Alle Preis- und Verfügbarkeitsinformationen auf https://www.amazon.de/ zum Zeitpunkt des Kaufs gelten für den Kauf dieses Produkts.

Damit das OLED Display auch angeschlossen werden kann werden noch vier Female-Female Jumper Kabel benötigt. Praktisch ist dieses Set immer.

41%
AZDelivery ⭐⭐⭐⭐⭐ Jumper Wire Kabel 3 x 40 STK. je 20 cm M2M/ F2M / F2F für Arduino und Raspberry Pi Breadboard
4.7 out of 5 stars
10,19 € (0,08 € / stück)
5,99 € (0,05 € / stück)
(Stand von: 21. December 2023 14:15 - Details)
Bei Amazon ansehen *
(* = Affiliate-Link / Bildquelle: Amazon-Partnerprogramm)
×
Produktpreise und -verfügbarkeit sind zum angegebenen Datum / Uhrzeit korrekt und können sich ändern. Alle Preis- und Verfügbarkeitsinformationen auf https://www.amazon.de/ zum Zeitpunkt des Kaufs gelten für den Kauf dieses Produkts.

Software Installation

Als erstes muss ein Raspbian Image herunter geladen werden. Ich habe diese Anleitung anhand dem minimalen Image entwickelt. Das bedeutet es gibt keinen Desktop sondern nur die Kommandozeile für die Eingabe. Verwendet habe ich das Image “2019-07-10-raspbian-buster-lite.img” und habe noch ein paar Programme zusätzlich installiert.

Das Image wird z. B. mit “Win32DiskImager” auf die micro SD-Karte geschrieben.

Download: Win32DiskImager

Ich gehe davon aus, dass der Raspberry Pi via LAN-Kabel am Router direkt angeschlossen ist. Daher beschreibe ich hier nicht wie eine Headless Installation für WIFI abläuft. So kann es auch nicht zu Verfälschungen mit der WIFI Verbindung kommen.

Jetzt den Raspberry Pi via LAN-Kabel mit dem Router verbinden und diesen einschalten. Via SSH ist es jetzt möglich sich an dem Raspberry Pi anzumelden. Ich arbeite immer von Windows aus und verwende daher PuTTY als Programm um die SSH Verbindung aufbauen zu können.

Download: PuTTY

Ich empfehle immer den MidnightCommander zu installieren für alle die die vielen Linux Befehle nicht kennen.

Befehl: sudo apt-get install mc

Ich empfehle via MidnightCommander einen Ordner anzulegen mit dem Namen “speed-test” und in diesem das Python Programm speedtest.py später abgelet wird.

Jetzt muss noch der Speedtest-Client also das entsprechende Paket mit dem folgenden Befehl installiert werden.

Befehl: sudo apt-get install speedtest-cli

Damit auch die richtige Zeigt im Raspberry Pi eingestellt ist empfehle ich noch den NTP Diesnt zu installieren.

Befehl: sudo apt-get install ntp

Anschließend kann man noch um die Raspberry Pi Konfiguration die Zeitzone wählen.

Befehl: sudo dpkg-reconfigure tzdata

Dann kann auch schon das Python Programm auf den Raspberry Pi kopiert werden. Dazu bitte den folgenden Befehl im frisch angelegten Ordner ausführen.

Befehl: wget https://www.blogyourearth.com/wp-content/uploads/2019/08/speedtest.zip

Jetzt z. B. mit dem MidnightCommander die ZIP-Datei im Ordner “speedtest” entpacken. Dazu einfach die Datei öffnen und den Inhalt auf die andere Seite / Fenster in den Ordner speed-test kopieren.

Das Programm selber kann noch nach belieben konfiguriert werden. Dazu muss es editiert werden. Wer das nicht kann oder mag kann es jetzt mit dem folgenden Befehl ausführen.

Befehl: python speedtest.py

Das Programm speedtest.py legt dann im Ordner “speed-test” eine *.csv Datei ab. In dieser CSV Datei sind alle Werte der Netzwerkgeschwindigkeit-Analyse gespeichert.

Für den einfachen Zugriff lohnt es sich dann z. B. mit WinSCP vom Windows Rechner aus auf den Raspberry Pi zuzugreifen und die *.csv Datei herunter zu laden.

Download: WinSCP

Ich habe aktuelle mit meiner Fritzbox sehr gute Erfahrungen gemacht und eine top stabile Verbindung.

25%
(* = Affiliate-Link / Bildquelle: Amazon-Partnerprogramm)
×
Produktpreise und -verfügbarkeit sind zum angegebenen Datum / Uhrzeit korrekt und können sich ändern. Alle Preis- und Verfügbarkeitsinformationen auf https://www.amazon.de/ zum Zeitpunkt des Kaufs gelten für den Kauf dieses Produkts.

Internet Geschwindigkeit – Auswerten

Die Auswertung der Geschwindigkeit habe ich dann wieder in MS-Office via Excel gemacht. Ich hänge hier meine Beispieldatei einmal an samt Pivo-Tabelle und kleiner Grafik. Im Reiter Daten müssen dann die Daten aktualisiert werden also die von mir Beispielhaft eingetragenen Daten müssen gelöscht werden.

Hier gibt es die Excel-Datei zum Download: MS Excel – Speed-Report

speed test report

speed test report

OLED Display – OPTIONAL

Für das OLED Display müssen ein paar Bibliotheken installiert werden und das Display muss am I²C Bus des Raspberry Pi angeschlossen werden. Mehr dazu dann in den beiden folgenden Abschnitten.

OLED Display – verkabeln

Das Oled Display wird an den GPIO Pins des RaspberryPi angeschlossen. Dazu bitte beachten, dass der Pin mit den 3,3V am Raspberry Pi gewählt wird. Das OLED Display darf nicht an einem der 5V Pins angeschlossen werden. Das kann den Raspberry Pi beschädigen da dieser mit 3,3V an seinen GPIO Pins arbeitet.

Raspberry Pi OLED Display
GND GND
3,3V Vin
SCL SCL
SDA SDA

OLED Display – Software installieren

Jetzt müssen die folgenden Befehle einzeln eingetippt und ausgeführt werden. Anschließend kann das Display für die Anzeige verwendet werden. Als Beispielprogramm mit den nötigen Informationen dient das Adafruit Beispielprogramm stats.py das im Ornder exmaples liegt.

Befehl: sudo apt-get install -y python-setuptools
Befehl: sudo apt-get install python-pip
Befehl: sudo apt-get install git
Befehl: sudo apt-get install libjpeg8-dev
Befehl: pip install image
Befehl: git clone https://github.com/adafruit/Adafruit_Python_SSD1306.git
Befehl: cd Adafruit_Python_SSD1306
Befehl: sudo python setup.py install

Jetzt bitte in den Ordner examples wechseln und dort das Python Progamm stats.py starten.

Befehl: python stats.py

Es sollte die IP-Adresse, die CPU Auslastung sowie die RAM und Speicherkarten Belegung angezeigt werden. Wer mag kann das kleine Programm anpassen und sich die aktuelle Internet Geschwindigkeit direkt ausgeben lassen.

Autostart Internet Geschwindigkeits Monitor

Damit die Aufzeichnung der Internet Geschwindigkeit auch automatisch nach dem Einschalten des Raspberry Pi startet empfehle ich die crontab Datei anzupassen. Diese liegt im Ordner /etc/ und kann z. B. mit dem folgenden Befehl bearbeitet werden.

Befehl: sudo nano /etc/crontab

Anschließend müssen die beiden folgenden Zeilen ergänzt werden die das Skript speed-test-autostart.sh ausführt.

# Speed-Test-Autostart
@reboot pi /home/pi/speed-test-autostart.sh &

# OLED Display
@reboot pi python /home/pi/Adafruit_Python_SSD1306/examples/stats.py >> /home/pi/oled.log 2>&1 &

Zusammenfassung

Mit dem Raspberry Pi und dem kleinen Python Programm lässt sich auf recht einfache Weise ein Internet Geschwindigkeit Monitor bauen. Durch die automatische Aufzeichnungen und dies über viele Tage hinweg ergibt sich dann auch ein umfassendes Bild. Im Programm selber können noch ein paar Parameter gesetzt werden entsprechend den individuellen Bedürfnissen.

Wer gerne die aktuelle Geschwindigkeit auf dem OLED Display sehen möchte kann hier das Programm von Adafruit direkt anpassen.

BlogYourEarth


Ich lebe in Bayern nahe München. In meinem Kopf habe ich immer viele Themen und probiert gerade im Bereich Internet neue Medien viel in meiner Freizeit aus. Ich schreibe an dem Blog da es mir Spaß macht über die Dinge zu berichten die mich begeistern. Ich freue mich über jeden Kommentar, über Anregung aber auch über Fragen.

(Visited 4.802 times, 1 visits today)