Büro-Dashboard mit Raspberry Pi, CO2-Sensor und Grafana

9. Dezember 2020

 

Es sind zwar bereits einige Wochen vergangen seitdem wir unser Büro-Dashboard in Betrieb genommen haben, jedoch haben wir es nun auch endlich geschafft den passenden Blogpost zu schreiben.

Neben einer kurzen Info wie es dazu kam findet ihr nachfolgend eine Schritt-für-Schritt Installationsanleitung, Links zu allen benötigten Teilen und die entsprechenden Scripte aug Github.

Wie kam´s dazu?

Ich (Tobias) bin zufällig auf das Thema Corona-Ampel aufmerksam geworden und habe recherchiert wie ich mir einfach, schnell und günstig so etwas in der Art basteln könnte. ;-) Nachdem ich bereits den ein oder anderen Rapserry Pi im Einsatz habe war die Idee einen CO2-Sensor und die serielle Schnittstellen zu koppeln. Gesagt und getan. ;-) Grafana/MySQL war bereits für anderen Statistiken im Einsatz sodass dies eine solide Basis war. Mit der entsprechenden Panelkonfiguration kann man je nach CO-2 Wert unterschiedliche Farben darstellen. In diesem Fall: bis 1000 ppm grün, bis 1400 ppm orange, ab 1400 ppm rot

Installation und Konfiguration

  1. Hardware bestellen (siehe unten)
  2. Raspberry Pi OS mit Desktop herunterladen
  3. Image mit Etcher auf MicroSD Karte spielen
  4. Bei Bedarf WLAN vorab konfigurieren
  5. Rasperry erstmalig booten, Login mit pi/raspberry
  6. System aktualisieren (sudo -i, dann apt-get update, dann apt-get upgrade)
  7. Datenbank MariaDB installieren
  8. Grafana Open-Source Dashboard installieren
  9. CO2-Sensor anschließen und Software installieren
  10. Chromium (Kiosk-Mode) Autostart konfigurieren
  11. jq zum Parsen von JSON installieren
  12. Raspberry Pi tunen (optional)

Was steht am Dashboard?

Auf unserem Dashboard werden aktuell folgende Informationen angezeigt:

  • Corona Inzidenz-Wert für Nürnberg (über RKI API)
  • Aktuelles Datum und Uhrzeit (einfaches JS Script)
  • CO2-Wert und Temperatur (CO2-Sensor)
  • Außentemperatur und Wetter (über openweathermap.org API)

Daten sammeln und speichern

Alle Daten werden in einer Datenbank gespeichert und in Grafana dargestellt. Alle wichtigen Konfigurationen/Skripte haben wir in einem Github-Repo hinterlegt:

  • co2.sh zum Auslesen von CO2-Wert und Temperatur
  • corona.sh zum Auslesen des aktuellen Inzidenz-Wertes
  • wetter.sh zum Auslesen der aktuellen Außentemperatur, Luftfeuchtigkeit und Wetter
  • grafana-panel-co2.json Konfiguration für Grafana-Panel Luftqualität
  • grafana-panel-wetter.json Konfiguration für Grafana-Panel Wetter
  • sb.sql für Datenbankstruktur
  • autostart Konfiguration für Chromium Kiosk

Was wird benötigt?

Wir haben zwei unterschiedliche Arten von Dashboards im Einsatz. Entweder mit externen Monitor oder mit dem Rasperry 7″ Touch-Screen.
Nachfolgend eine Liste aller benötigen Teile (Amazon-Links):

Wir freuen uns über Feedback jeglicher Art, am Besten als Github Issue. Ach ja, der Monitor ist natürlich nur an wenn sich auch wer im Büro befindet. Zeitgesteuert per Cronjob und REST-API über eine WLAN-Steckdose oder alternativ über einen Bewegungssensor. ;-)