Inhoudsopgave:

Pi Health Dashboard: 3 stappen
Pi Health Dashboard: 3 stappen

Video: Pi Health Dashboard: 3 stappen

Video: Pi Health Dashboard: 3 stappen
Video: Redmi Watch 3 Active - Correct Mi Fitness Settings 2024, November
Anonim
Image
Image

Raspberry Pi's worden gebruikt om een groot aantal projecten aan te sturen. Pi's werden voor het eerst geadopteerd door leraren en hobbyisten, maar nu hebben productie en bedrijven de verbazingwekkende kracht van Pi ontdekt. Ondanks dat hij klein, gebruiksvriendelijk en goedkoop is, bevat je Pi een indrukwekkend aantal complexe subsystemen die moeten werken om je project draaiende te houden. Dit maakt het belangrijk om de gezondheid van uw Pi te bewaken in veel toepassingen, van doorlopend onderhoud van een langetermijnproject tot het profileren van de prestaties van een nieuw prototype.

We gaan ons eigen browsergebaseerde dashboard bouwen om de gezondheid en prestaties van een web-verbonden Raspberry Pi te bewaken. Om deze taak te volbrengen, zullen we een eenvoudig Python-script uitvoeren dat systeeminformatie van de Pi verzamelt en naar een cloudplatform stuurt dat gespecialiseerd is in dashboards, analyses en visualisaties.

In deze stapsgewijze zelfstudie leert u:

  • leer hoe je systeeminformatie van je Pi kunt verzamelen via een eenvoudig Python-script
  • leer hoe u Initial State kunt gebruiken om uw eigen systeemgezondheids-/prestatiedashboard voor uw Pi. te bouwen

Stap 1: Oorspronkelijke staat

Pas uw dashboard aan
Pas uw dashboard aan

We willen al onze Pi-systeemgebruiksgegevens naar een cloudservice streamen en die service onze gegevens in een dashboard laten veranderen. Onze gegevens hebben een bestemming nodig, dus we gebruiken de beginstatus als die bestemming.

Registreer voor eerste staatsaccount

Ga naar https://iot.app.initialstate.com en maak een nieuw account aan. Je krijgt een gratis proefperiode van 14 dagen en iedereen met een edu-e-mailadres kan zich registreren voor een gratis studentenabonnement.

Installeer de ISstreamer

Installeer de Initial State Python-module op uw Raspberry Pi. Voer in de opdrachtprompt de volgende opdracht uit:

$ cd /home/pi/

$ \curl -sSL https://get.initialstate.com/python -o - | sudo bash

Maak wat automagisch

Na stap 2 ziet u iets dat lijkt op de volgende uitvoer op het scherm:

pi@raspberrypi ~ $ \curl -sSL https://get.initialstate.com/python -o - | sudo bash

Wachtwoord: Begin ISStreamer Python Eenvoudige installatie! Dit kan een paar minuten duren om te installeren, neem wat koffie:) Maar vergeet niet terug te komen, ik heb later vragen! Easy_install gevonden: setuptools 1.1.6 Gevonden pip: pip 1.5.6 van /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip hoofdversie: 1 pip kleine versie: 5 ISStreamer gevonden, updaten… Vereiste al up-to-date: ISStreamer in /Library/Python/2.7/site-packages Opruimen…Wilt u automatisch een voorbeeldscript krijgen? [j/N] Waar wil je het voorbeeld opslaan? [default:./is_example.py] Selecteer a.u.b. welke Initial State-app u gebruikt: 1. app.initialstate.com 2. [NIEUW!] iot.app.initialstate.com Voer keuze 1 of 2 in: Voer iot.app in.initialstate.com gebruikersnaam: Voer het iot.app.initialstate.com wachtwoord in:

Wanneer u wordt gevraagd of u automatisch een voorbeeldscript wilt krijgen, plaatst u "y" voor ja en drukt u op enter om uw script op de standaardlocatie op te slaan. Voor de vraag welke app je gebruikt, selecteer 2 (tenzij je je voor november 2018 hebt aangemeld) en voer je gebruikersnaam en wachtwoord in.

Voer het voorbeeldscript uit

Voer het testscript uit om er zeker van te zijn dat we een gegevensstroom naar uw Initial State-account kunnen maken. Schrijf het volgende commando:

$ python is_voorbeeld.py

Voorbeeldgegevens

Ga terug naar uw Initial State-account in uw webbrowser. Een nieuwe data-bucket genaamd "Python Stream-voorbeeld" zou aan de linkerkant in uw logplank moeten verschijnen (mogelijk moet u de pagina vernieuwen). Klik op deze bucket om uw gegevens te bekijken.

Stap 2: Psutil

We zullen psutil gebruiken om gemakkelijk toegang te krijgen tot de meeste systeeminformatie die we zullen gebruiken om ons dashboard te bouwen. Om de psutil Python-bibliotheek te installeren, gaat u naar een terminal op uw Pi en typt u:

$ sudo pip install psutil

Nadat de installatie is voltooid, hoeven we alleen maar een Python-script uit te voeren om de gegevensverzameling te starten. Laten we dit script als volgt in zijn eigen directory plaatsen:

$ cd /home/pi/

$ mkdir pihealth $ cd pihealth

Eenmaal in de nieuwe map maakt u een script door het volgende te doen:

$ nano pihealth.py

Dit opent een teksteditor. Kopieer en plak de code van deze Github-repository in de teksteditor.

Op regel 8 ziet u het gedeelte Gebruikersinstellingen:

# --------- Gebruikersinstellingen ---------

# Initiële statusinstellingen BUCKET_NAME = ":computer: Pi3-prestaties" BUCKET_KEY = "pi0708" ACCESS_KEY = "ZET UW INITIAL STATE ACCESS_KEY HIER" # Stel de tijd tussen controles in MINUTES_BETWEEN_READS = 1 METRIC_UNITS = False # --------- ------------------------

U moet uw Initial State-toegangssleutel in de ACCESS_KEY variabele toewijzing plaatsen. Om dit te vinden, gaat u naar uw startpagina in Initial State, klikt u op uw gebruikersnaam in de rechterbovenhoek, gaat u naar mijn instellingen en zoekt u daar een toegangssleutel voor streaming. Als u dit niet doet, worden uw gegevens niet naar uw Initial State-account gestreamd, wat u erg verdrietig en gefrustreerd maakt.

De variabele MINUTES_BETWEEN_READS is belangrijk om in te stellen op basis van uw toepassing. Als je dit script in de loop van dagen/weken/maanden gaat uitvoeren, wil je dit een groter aantal maken, zoals elke 2-5 minuten. Als u dit script uitvoert om de prestaties van een kortetermijntoepassing te controleren, wilt u misschien om de paar seconden een update.

Nadat u de tekst hebt bijgewerkt, slaat u de teksteditor op en sluit u deze af. We zijn klaar om systeemgegevens te verzamelen. Typ de volgende opdracht om het python-bestand uit te voeren:

$ python pihealth.py

Tip: Als u dit script op de achtergrond wilt uitvoeren en er zeker van wilt zijn dat het niet wordt afgesloten als uw SSH-verbinding wordt verbroken of de terminal is gesloten, kunt u het volgende commando gebruiken:

$ nohup python pihealth.py &

python.h-fout: als u een foutmelding krijgt die verwijst naar python.h wanneer u psutil in een script probeert te gebruiken, kan het installeren van de python-ontwikkelingsbibliotheken de fout oplossen:

$ sudo apt-get install gcc python-dev

$ sudo pip install psutil

Stap 3: Pas uw dashboard aan

Pas uw dashboard aan
Pas uw dashboard aan
Pas uw dashboard aan
Pas uw dashboard aan

Ga naar je Initial State-account en klik op de nieuwe databucket genaamd Pi3 Performance. Dit is je dashboard. Laten we de gegevens op dit dashboard aanpassen en ordenen tot iets nuttigs.

Er zijn veel tegels en gegevensstromen in dit dashboard. Laten we de tegels kleiner maken en alle informatie op één scherm krijgen. Klik op de knop Tegels bewerken in de linkerbovenhoek en deselecteer "Always Fit Tiles". Dit zet onze dashboardlay-out in de handmatige modus. Wijzig vervolgens het formaat van elke tegel naar 1/4 van de oorspronkelijke grootte door in de bewerkingsmodus op de hoek van elke tegel te klikken en deze te slepen. U kunt elke tegel naar elke gewenste positie op het scherm slepen.

Een van de vele handige dingen die u met dit dashboard kunt doen, is het maken van meerdere tegels en gegevensweergaven per gegevensstroom. U kunt bijvoorbeeld tegels maken om de lijngrafiek voor CPU-temperatuur te zien, evenals een metergrafiek en de laatste waarde. Om een nieuwe tegel toe te voegen, klikt u op Tegels bewerken en vervolgens op + Tegel toevoegen. Het nieuwe Tiles-configuratievenster verschijnt. Selecteer de gegevensstroom die deze tegel zal aansturen in het vak SignalKey, kies vervolgens het tegeltype en maak een titel voor deze tegel.

In mijn dashboard heb ik drie Pi's naar één dashboard gestreamd om het CPU-gebruik en de temperaturen te vergelijken.

De metergrafiek is uitermate handig voor gegevensstromen zoals Schijfgebruik (%) en CPU-gebruik (%). Wanneer u een metergrafiekweergave selecteert, kunt u de min- en max-waarde voor de meter instellen in de tegelconfiguratie. Het is belangrijk om de min/max in te stellen op 0/100 voor schijfgebruik (%) en CPU-gebruik (%) meters, zodat de tegels logisch zijn.

U kunt een achtergrondafbeelding aan uw dashboard toevoegen om uw gegevens meer context te geven.

Hier zijn de openbare shares van twee dashboards die ik heb gemaakt:

  1. https://go.init.st/6g3spq4
  2. https://go.init.st/ynkuqxv

Aanbevolen: