Inhaltsverzeichnis:
Video: Pi-Gesundheits-Dashboard - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:17
Raspberry Pis werden verwendet, um eine große Anzahl von Projekten voranzutreiben. Pis wurden zuerst von Lehrern und Hobbyisten übernommen, aber jetzt haben Herstellung und Unternehmen die erstaunliche Kraft von Pi erkannt. Obwohl Ihr Pi klein, benutzerfreundlich und kostengünstig ist, enthält er eine beeindruckende Anzahl komplexer Subsysteme, die funktionieren müssen, um Ihr Projekt am Laufen zu halten. Daher ist es in vielen Anwendungen wichtig, den Zustand Ihres Pi zu überwachen, von der laufenden Wartung eines langfristigen Projekts bis hin zur Leistungsprofilierung eines neuen Prototyps.
Wir werden unser eigenes browserbasiertes Dashboard erstellen, um den Zustand und die Leistung eines mit dem Internet verbundenen Raspberry Pi zu überwachen. Um diese Aufgabe zu erfüllen, führen wir ein einfaches Python-Skript aus, das Systeminformationen vom Pi sammelt und an eine Cloud-Plattform sendet, die auf Dashboards, Analysen und Visualisierungen spezialisiert ist.
In dieser Schritt-für-Schritt-Anleitung werden Sie:
- Erfahren Sie, wie Sie Systeminformationen von Ihrem Pi über ein einfaches Python-Skript sammeln
- Erfahren Sie, wie Sie den Initial State verwenden, um Ihr eigenes Dashboard für den Systemzustand/die Systemleistung für Ihren Pi. zu erstellen
Schritt 1: Ausgangszustand
Wir möchten alle Nutzungsdaten unseres Pi-Systems an einen Cloud-Dienst streamen und diesen Dienst unsere Daten in ein Dashboard umwandeln lassen. Unsere Daten benötigen ein Ziel, daher verwenden wir den Initial State als dieses Ziel.
Registrieren Sie sich für das anfängliche Statuskonto
Gehen Sie zu https://iot.app.initialstate.com und erstellen Sie ein neues Konto. Sie erhalten eine 14-tägige kostenlose Testversion und jeder mit einer edu-E-Mail-Adresse kann sich für einen kostenlosen Studententarif registrieren.
Installieren Sie den ISStreamer
Installieren Sie das Initial State Python-Modul auf Ihrem Raspberry Pi. Führen Sie in der Eingabeaufforderung den folgenden Befehl aus:
$ cd /home/pi/
$ \curl -sSL https://get.initialstate.com/python -o - | sudo bash
Machen Sie etwas Automagic
Nach Schritt 2 sehen Sie etwas Ähnliches wie die folgende Ausgabe auf dem Bildschirm:
pi@raspberrypi ~ $ \curl -sSL https://get.initialstate.com/python -o - | sudo bash
Passwort: Beginnen mit ISStreamer Python Einfache Installation! Die Installation kann ein paar Minuten dauern, trinken Sie einen Kaffee:) Aber vergessen Sie nicht, wiederzukommen, ich werde später Fragen haben! Gefunden easy_install: setuptools 1.1.6 Gefunden pip: pip 1.5.6 aus /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip Hauptversion: 1 pip Nebenversion: 5 ISStreamer gefunden, aktualisiert… Anforderung bereits aktuell: ISStreamer in /Library/Python/2.7/site-packages Aufräumen… Möchten Sie automatisch ein Beispielskript erhalten? [y/N] Wo möchten Sie das Beispiel speichern? [default:./is_example.py] Bitte wählen Sie aus, welche Initial State App Sie verwenden: 1. app.initialstate.com 2. [NEU!] iot.app.initialstate.com Geben Sie Auswahl 1 oder 2 ein: Geben Sie iot.app ein.initialstate.com-Benutzername: Geben Sie das iot.app.initialstate.com-Passwort ein:
Wenn Sie gefragt werden, ob Sie automatisch ein Beispielskript erhalten möchten, geben Sie "y" für "Ja" ein und drücken Sie die Eingabetaste, um Ihr Skript am Standardspeicherort zu speichern. Wählen Sie bei der Frage, welche App Sie verwenden, 2 aus (sofern Sie sich nicht vor November 2018 angemeldet haben) und geben Sie Ihren Benutzernamen und Ihr Passwort ein.
Führen Sie das Beispielskript aus
Führen Sie das Testskript aus, um sicherzustellen, dass wir einen Datenstrom zu Ihrem Initial State-Konto erstellen können. Schreiben Sie den folgenden Befehl:
$ python is_example.py
Beispieldaten
Gehen Sie in Ihrem Webbrowser zu Ihrem Initial State-Konto zurück. Ein neuer Daten-Bucket namens „Python Stream Example“sollte links in Ihrem Log-Regal angezeigt werden (möglicherweise müssen Sie die Seite aktualisieren). Klicken Sie auf diesen Bucket, um Ihre Daten anzuzeigen.
Schritt 2: Psutil
Wir werden psutil verwenden, um einfachen Zugriff auf die meisten Systeminformationen zu erhalten, die wir zum Erstellen unseres Dashboards verwenden. Um die Python-Bibliothek psutil zu installieren, gehen Sie zu einem Terminal auf Ihrem Pi und geben Sie Folgendes ein:
$ sudo pip install psutil
Nach Abschluss der Installation müssen wir lediglich ein Python-Skript ausführen, um mit der Datenerfassung zu beginnen. Legen wir dieses Skript wie folgt in ein eigenes Verzeichnis:
$ cd /home/pi/
$ mkdir pihealth $ cd pihealth
Erstellen Sie im neuen Verzeichnis ein Skript, indem Sie die folgenden Schritte ausführen:
$ nano pihealth.py
Dies öffnet einen Texteditor. Kopieren Sie den Code aus diesem Github-Repository und fügen Sie ihn in den Texteditor ein.
In Zeile 8 sehen Sie den Abschnitt Benutzereinstellungen:
# --------- Benutzereinstellungen ---------
# Einstellungen für den Anfangszustand BUCKET_NAME = ":computer: Pi3 Performance" BUCKET_KEY = "pi0708" ACCESS_KEY = "PUT YOUR INITIAL STATE ACCESS_KEY HERE" # Legen Sie die Zeit zwischen den Überprüfungen fest MINUTES_BETWEEN_READS = 1 METRIC_UNITS = False # --------- ------------------------
Sie müssen Ihren Initial State Access Key in die ACCESS_KEY-Variablenzuweisung einfügen. Um dies zu finden, gehen Sie auf Ihre Initial State-Homepage, klicken Sie oben rechts auf Ihren Benutzernamen, gehen Sie zu meinen Einstellungen und finden Sie dort einen Streaming-Zugangsschlüssel. Wenn Sie dies nicht tun, werden Ihre Daten nicht in Ihr Initial State-Konto gestreamt, was Sie sehr traurig und frustriert macht.
Es ist wichtig, die Variable MINUTES_BETWEEN_READS basierend auf Ihrer Anwendung festzulegen. Wenn Sie dieses Skript im Laufe von Tagen/Wochen/Monaten ausführen möchten, sollten Sie diese Zahl alle 2-5 Minuten erhöhen. Wenn Sie dieses Skript ausführen, um die Leistung einer kurzfristigen Anwendung zu überwachen, möchten Sie möglicherweise alle paar Sekunden ein Update.
Nachdem Sie den Text aktualisiert haben, speichern und beenden Sie den Texteditor. Wir sind bereit, mit der Erfassung von Systemdaten zu beginnen. Um die Python-Datei auszuführen, geben Sie den folgenden Befehl ein:
$ python pihealth.py
Tipp: Wenn Sie dieses Skript im Hintergrund ausführen und sicherstellen möchten, dass es nicht beendet wird, wenn Ihre SSH-Verbindung unterbrochen oder das Terminal geschlossen wird, können Sie den folgenden Befehl verwenden:
$ nohup python pihealth.py &
python.h-Fehler: Wenn beim Versuch, psutil in einem Skript zu verwenden, ein Fehler beim Verweisen auf python.h angezeigt wird, kann die Installation der Python-Entwicklungsbibliotheken den Fehler beheben:
$ sudo apt-get install gcc python-dev
$ sudo pip install psutil
Schritt 3: Passen Sie Ihr Dashboard an
Gehen Sie zu Ihrem Initial State-Konto und klicken Sie auf den neuen Daten-Bucket namens Pi3 Performance. Dies ist Ihr Dashboard. Lassen Sie uns die Daten in diesem Dashboard anpassen und in etwas Nützliches organisieren.
Es gibt viele Kacheln und Datenströme in diesem Dashboard. Lassen Sie uns die Kacheln verkleinern und alle Informationen auf einem einzigen Bildschirm anzeigen. Klicken Sie oben links auf die Schaltfläche "Kacheln bearbeiten" und deaktivieren Sie "Kacheln immer anpassen". Dadurch wird unser Dashboard-Layout in den manuellen Modus versetzt. Als nächstes ändern Sie die Größe jeder Kachel auf 1/4 ihrer ursprünglichen Größe, indem Sie im Bearbeitungsmodus auf die Ecke jeder Kachel klicken und diese ziehen. Sie können jede Kachel an eine beliebige Position auf dem Bildschirm ziehen.
Eines der vielen praktischen Dinge, die Sie mit diesem Dashboard tun können, ist das Erstellen mehrerer Kacheln und Datenansichten pro Datenstrom. Sie können beispielsweise Kacheln erstellen, um das Liniendiagramm für die CPU-Temperatur sowie ein Messdiagramm und den letzten Wert anzuzeigen. Um eine neue Kachel hinzuzufügen, klicken Sie auf Kacheln bearbeiten und dann auf + Kachel hinzufügen. Das neue Kachel-Konfigurationsfeld wird angezeigt. Wählen Sie im Feld SignalKey den Datenstrom aus, der diese Kachel steuert, wählen Sie dann den Kacheltyp und erstellen Sie einen Titel für diese Kachel.
In meinem Dashboard habe ich drei Pis in ein einziges Dashboard gestreamt, um CPU-Auslastung und Temperaturen zu vergleichen.
Das Gauge-Diagramm ist äußerst nützlich für Datenströme wie Festplattennutzung (%) und CPU-Auslastung (%). Wenn Sie eine Gauge-Diagrammansicht auswählen, können Sie den Min- und Max-Wert für die Gauge in der Kachelkonfiguration festlegen. Es ist wichtig, die Min/Max-Werte für die Anzeigen für die Festplattennutzung (%) und die CPU-Auslastung (%) auf 0/100 zu setzen, damit die Kacheln einen Sinn ergeben.
Sie können Ihrem Dashboard ein Hintergrundbild hinzufügen, um Ihren Daten mehr Kontext zu geben.
Hier sind die öffentlichen Freigaben von zwei Dashboards, die ich erstellt habe:
- https://go.init.st/6g3spq4
- https://go.init.st/ynkuqxv