Dieser Leitfaden führt dich durch den Prozess der Visualisierung von Temperatur- und induktiven Sensordaten in Grafana unter Verwendung von InfluxDB2. Die Sensoren sind an die Erweiterungsmodule RevPi AIO und RevPi DIO angeschlossen. Mit der Python-Bibliothek Revpimodio können die Erweiterungsmodule einfach in Python programmiert werden, um Daten erfolgreich an InfluxDB2 zu übertragen. Folge den untenstehenden Schritten, um deine Daten effektiv zu sammeln, zu speichern und in Grafana zu visualisieren.
Hintergrund #
Die Integration von InfluxDB und Grafana auf einem RevPi Connect 4 ermöglicht die Echtzeitüberwachung von Daten, um wichtige Einblicke in Umweltdaten zu gewinnen.
InfluxDB und das Grafana-Frontend laufen auf einem RevPi Connect 4. Die Sensoren sind an die Erweiterungsmodule RevPi AIO und RevPi DIO angeschlossen. Mit der Python-Bibliothek Revpimodio können Sensorwerte von den Erweiterungsmodule ausgelesen und an ein InfluxDB-Bucket gesendet werden. In diesem Fall wird InfluxDB Version 2 verwendet. In InfluxDB 2 werden statt Datenbanken sogenannte Buckets verwendet. Ein Bucket ist ein Container für Zeitreihendaten, der eine Organisation und Isolierung der Daten ermöglicht. Diese Buckets werden verwendet, um die gesammelten Daten zu speichern.
Grafana hingegen ist ein Web-Frontend zur Erstellung von Daten-Dashboards und wird häufig für die Echtzeitanalyse von Servern genutzt. Es kann eine Vielzahl von Datenquellen verwenden, funktioniert jedoch besonders gut mit InfluxDB.
Voraussetzungen #
Hardware
✓ RevPi Connect 4
✓ RevPi DIO - digitales I/O-Modul
✓ RevPi AIO - analoges I/O-Modul
✓ Induktiver Näherungssensor (3 Drähte, PNP)
✓ PT-1000 Temperatursensor (4 Drähte)
✓ Verbindungskabel (zum Verdrahten des RevPi DIO und der LED).
Software
✓ InfluxDB2
✓ Grafana
System konfigurieren #
Detaillierte Anleitung, siehe Getting Started.
▷ Schließe den RevPi Connect 4 an eine Stromquelle an.
▷ Stelle sicher, dass er mit deinem lokalen Netzwerk verbunden ist, um darauf zugreifen zu können.
▷ Schalte das RevPi DIO ein.
▷ Schalte das RevPi AIO ein. ▷ Stelle sicher, dass der Induktive Näherungssensor richtig mit dem RevPi DIO verbunden ist.
▷ Überprüfe, ob RevPi DIO und RevPi AIO sicher mit dem RevPi Connect 4 über die PiBridge Schnittstelle verbunden sind.
▷ Verbinde den PT-1000 mit dem RTD-Kanal 1 des RevPi AIO.
▷ Öffne einen Webbrowser auf einem Gerät, das mit demselben Netzwerk verbunden ist.
▷ Greife auf das Revolution Pi System über die IP-Adresse zu.
|
Note
|
Bei Netzwerkproblemen oder um die IP-Adresse deines RevPi zu ermitteln, siehe Netzwerkverbindung herstellen. |
Übersicht #
-
Setup und Installation
-
Einrichten des RevPi Connect 4 und der Erweiterungsmodule (RevPi DIO, RevPi AIO)
-
Installation von InfluxDB2
-
Installation von Grafana
-
Konfiguration von InfluxDB2 und Grafana
-
-
Daten im InfluxDB2-Datenbank loggen
-
Einrichten der Datenbank und Buckets in InfluxDB2
-
Konfiguration des Python-Skripts zum Erfassen und Übertragen von Daten von den Sensoren an InfluxDB2
-
-
Visualisierung von Temperatur- und Induktivsensorstatus mit InfluxDB2 und Grafana
-
Integration von InfluxDB2 in Grafana
-
Erstellen von Dashboards in Grafana zur Visualisierung von Temperatur- und Sensordaten
-
Anpassen und Optimieren von Dashboards für eine klare Datenpräsentation
-
Schritt 1: RevPi System in PiCtory konfigurieren #
|
Note
|
Verwende für diese Demo ein 64-Bit image, da InfluxDB2 nur mit einem 64-Bit-Betriebssystem kompatibel ist. Die Betriebssystem-Images sind im Revolution Pi Download-Bereich verfügbar. |
▷ Füge das RevPi DIO und das RevPi AIO zu deiner Konfiguration hinzu, siehe Geräte anordnen.
▷ Weise passende I/O-Namen für eine leichtere Referenz zu, z. B. Input1_Proximity_sensor, RTD_channel_1, siehe Ein- und Ausgänge konfigurieren.
▷ Speichere die Konfiguration und starte den Treiber neu, um die Änderungen anzuwenden.
Schritt 2: RevPi AIO konfigurieren #
Das RevPi AIO hat 2 RTD-Kanäle. Du kannst diese verwenden, um die Temperatur der angeschlossenen PT-100 und PT-1000-Sensoren zu bestimmen, siehe RevPi AIO RTD-Kanäle.
▷ Wähle , um die Datei zu speichern.
▷ Wähle , um deine Konfiguration zu aktivieren.
Schritt 3: InfluxDB2 installieren #
▷ Öffne ein Terminal auf deinem Computer und verbinde dich über SSH mit deinem neu gebooteten RevPi, indem du den Hostnamen oder die IP-Adresse deines RevPi verwendest:
ssh pi@<RevPi-IP-Adresse>
oder
ssh pi@dein-revpi-name
❯ Nachdem du das SSH-Passwort eingegeben hast, solltest du mit deinem RevPi verbunden sein.
▷ Um die neuesten Änderungen an den Paketen deines RevPi vor der Installation von InfluxDB2 anzuwenden, gib die folgenden Befehle ein:
sudo apt update
▷ Füge den Schlüssel für InfluxDB hinzu und installiere es:
echo 'deb [signed-by=/etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg] https://repos.influxdata.com/debian stable main' | sudo tee /etc/apt/sources.list.d/influxdata.list
cat influxdata-archive_compat.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg > /dev/null
sudo apt update && sudo apt install -y influxdb2
▷ Starte InfluxDB als Dienst (d.h. es wird beim Booten gestartet und neu gestartet, wenn es abstürzt):
sudo systemctl unmask influxdb.service
sudo systemctl start influxdb
sudo systemctl enable influxdb.service
InfluxDB2 sollte standardmäßig konfiguriert sein. Während der Installation von InfluxDB2 wird das influxdb2-cli-Paket verwendet, um InfluxDB2 zu konfigurieren und zu verwalten. Wenn das Paket nicht installiert ist, kannst du es mit folgendem Befehl installieren:
sudo apt install influxdb2-cli
Das influxdb2-cli-Paket stellt Befehle zur Verfügung, mit denen du die InfluxDB2-Instanz konfigurieren, Datenbanken und Buckets verwalten sowie Benutzer und Berechtigungen einrichten kannst. Mit diesem Tool kannst du die gesamte Konfiguration von InfluxDB2 bequem über die Befehlszeile durchführen und deine Zeitreihendatenbank einfach verwalten.
▷ Gib folgendes im Terminal deines RevPi über SSH ein, um InfluxDB2 zu konfigurieren:
influx setup
▷ Folge der Aufforderung, folgende Informationen einzugeben:
-
Benutzername
-
Passwort
-
Organisationsname
-
Bucket-Name
Alternativ kannst du InfluxDB2 beim ersten Login über den Webbrowser konfigurieren. Der Login erfolgt durch Eingabe der IP-Adresse deines RevPi zusammen mit Port 8086 im Webbrowser. Beispiel: 192.168.1.214:8086
|
Note
|
Ein Token wird dir nach dem ersten Login in InfluxDB angezeigt. Kopiere es und speichere es an einem sicheren Ort auf deinem Computer, damit du es nicht verlierst. |
Schritt 4: Grafana installieren #
▷ Lade den Grafana-GPG-Schlüssel herunter, installiere ihn und führe ihn als Dienst aus:
wget -O- https://packages.grafana.com/gpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/grafana-archive-keyring.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/grafana-archive-keyring.gpg] https://packages.grafana.com/oss/deb stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
sudo apt update && sudo apt install -y grafana
sudo systemctl unmask grafana-server.service
sudo systemctl start grafana-server
sudo systemctl enable grafana-server.service
❯ Dein Grafana-Server sollte nun laufen und über einen Webbrowser zugänglich sein.
▷ Gib die IP-Adresse (http://<deine-revpi-ip-adresse>:3000) oder den Hostnamen (http://RevPi99920:3000) deines RevPi in die Adresszeile deines Webbrowser ein.
▷ Logge dich mit dem Benutzernamen admin und dem Passwort admin ein und ändere das Passwort auf ein neues, wenn du dazu aufgefordert wirst.
▷ Wähle im linken Menü Home und dann Data Sources aus dem Dropdown-Menü Connections.
▷ Auf der Seite Data Sources wähle Add new data source, suche nach InfluxDB und wähle es aus.
❯ Du gelangst zu einer Seite, auf der du deine InfluxDB-Datenquelle konfigurieren kannst.
▷ Im Feld Query language wähle die Option Flux.
▷ Im Abschnitt HTTP gib die URL im entsprechenden Feld ein, z. B. http://192.168.1.214:8086.
▷ Gib im Abschnitt Basic Auth Details die Authentifizierungsinformationen für InfluxDB ein, einschließlich des Benutzernamens und des Passworts, die du zuvor bei der Konfiguration von InfluxDB festgelegt hast.
▷ Gib weiter unten auf der Seite im Abschnitt InfluxDB Details die zusätzlichen Authentifizierungsinformationen für InfluxDB ein, einschließlich der Organisation, des Tokens und des Standard-Buckets, die du zuvor eingerichtet hast.
▷ Wähle abschließend Save and Test und stelle sicher, dass Data source is working. 3 buckets found angezeigt wird.
Schritt 5: InfluxDB Python-Bibliotheken installieren #
Um Sensordaten von den Erweiterungsmodulen zu lesen und sie in InfluxDB zu speichern, muss die Python-InfluxDB-Bibliothek installiert werden.
▷ Verwende pip, um diese Bibliothek zu installieren:
pip install influxdb-client
Schritt 6: Python-Skript erstellen zur Datenerfassung und zum Senden an InfluxDB #
▷ Erstelle ein Python-Skript, das die Sensordaten ausliest und in InfluxDB speichert.
Ein einfaches Beispiel-Skript könnte folgendermaßen aussehen:
from influxdb_client import InfluxDBClient, Point, WritePrecision
import time
import revpimodio2
# Verbindung zu InfluxDB
client = InfluxDBClient(url="http://192.168.1.214:8086", token="your-token", org="your-org")
write_api = client.write_api(write_options=SYNCHRONOUS)
# RevPi Module initialisieren
revpi = revpimodio2.RevPiModIO()
# Sensor auslesen
def read_sensor_data():
proximity_sensor = revpi.io['Input1_Proximity_sensor'].value
temperature = revpi.io['RTD_channel_1'].value
# Daten in InfluxDB schreiben
point = Point("sensor_data") \
.tag("sensor", "proximity") \
.field("value", proximity_sensor) \
.time(time.time(), WritePrecision.NS)
point_temp = Point("sensor_data") \
.tag("sensor", "temperature") \
.field("value", temperature) \
.time(time.time(), WritePrecision.NS)
write_api.write(bucket="your-bucket", record=point)
write_api.write(bucket="your-bucket", record=point_temp)
while True:
read_sensor_data()
time.sleep(10)
Schritt 7: Dashboard in InfluxDB2 und Grafana zum Anzeigen der Daten erstellen #
▷ Öffne InfluxDB während das Programm läuft.
▷ Wähle im linken Menü Data Explorer und richte ein Dashboard ein, um die Temperaturwerte des PT-1000 anzuzeigen:

▷ Um dieses Dashboard auch in Grafana zu haben, musst du SCRIPT EDITOR wählen und das Flux-Skript kopieren, dann in Grafana verwenden.
▷ Wähle im Grafana-Menü Dashboards, dann New und anschließend New Dashboard.
▷ Wähle auf der Seite New Dashboard Add visualization.
❯ Ein neues Fenster mit InfluxDB als Standard-Datenquelle erscheint.
▷ Wähle InfluxDB und füge den kopierten Flux-Code in das Abfrage-Terminal ein.
Die folgenden Bilder führen dich durch den Prozess, ein Dashboard in Grafana zu erstellen.
Auf der rechten Seite findest du alle Werkzeuge, um das Dashboard zu verschönern und zu beschriften.
▷ Benenne das Dashboard nach jeder Änderung und speichere es, indem du Save und Apply wählst.
❯❯ Du hast nun erfolgreich die Temperatur des PT-1000-Sensors über das RevPi AIO visualisiert.
Die Visualisierung des Status des induktiven Näherungssensors über das RevPi DIO in InfluxDB und Grafana ist etwas komplexer. In Flux gibt es keine spezielle Funktion zum Filtern von booleschen Werten. Daher ist es ratsam, alternative Methoden zu erkunden, um boolesche Werte zu aggregieren und zu visualisieren.