So ein Dashboard, hier am Beispiel der CO2 Messungen ist mit dem Cloud Anbieter Ubidots.com schnell gemacht. Kostenlos gibt es 3 Geräte. Es muss ja auch nicht immer Thinkspeak sein.
Hier mal eine Zusammenfassung eines CO2-Messsystems (CO2-Ampel) mit dem Raspberry Pi an dem der MH-Z19b, OLED Anzeige, LED-Rgb-Ampel hängen. Auch werden die Daten Online an Thinkspeak, MQTT, NodeRed, Alexa ausgabe von Warnungen und abfrage der Co2 Werte, Pushover nachrichten ans Handy, REST Java-Client, Docker Container und an einen History Browser gesendet. Wie hier auch schon einzeln veröffentlicht.
Wer noch 5 Minuten hat, kann das Beispielprojekt mit der CO2-Ampel auch gleich in einem Docker Container laufen lassen. Vorraussetzung Docker läuft und das Beispielprojekt wurde installiert.
Dann sind, dank der automatisch generierten Docker-Files nur diese 3 Schritte im Verzeichnis der root pom nötig:
1
2
3
4
5
6
7
8
// 1. das Projekt bauen
mvn package-Dquarkus.package.type=fast-jar
// 2. das Image bauen, man beachte den Punkt am Ende
Einen REST Service in 15 min mit Quarkus, OpenAPI, Swagger UI und JUnit-Test erstellen und um CO2-Ampel Service erweitern ist nicht kompliziert. Freut euch immer
Vorraussetzungen Java 11 und Maven. Test mit:
Da nicht jeder meinen Podcast wenzlaff.de im Apple-Store, Spotify und bei Google abonniert hat (warum eigentlich nicht?) und es auch nicht hier online hören möchte:
Folgt nun hier das Script zur letzten Sendung als Text.
Die gestellten und beantworteten Fragen:
1. Was ist Kohlenstoffdioxid oder CO2?
2. Wie ist das vorkommen?
3. Wie ist die Bedeutung?
4. Wo wird CO2 verwendet?
5. Wie ist das vorkommen von CO2 in Räumen?
6. Was sind so normale Werte beim Atmen?
7. Gibt es eine Korrelation mit Bakterien und Viren wie Covid-19?
8. Wie teilt die DIN die Raumluft ein? „CO2 Podcast Folge 3: Script zur Sendung“ weiterlesen
Und nicht vergessen die Uhr auf dem Raspberry Pi umstellen, wie hier (MESZ, MEZ, UT, UTC, GMT – Raspberry Pi: Wie kann die Sommerzeit bzw. Winterzeit überprüft und die Zeitzone gestellt werden?) beschrieben wenn nicht die automatische Umstellung aktivierte ist oder der Rechner keinen Zugang zum Internet hat.
Ein Raspberry Pi dient ja als CO2-Ampel und misst jede Minute den CO2-Wert bei mir in der Luft. Die Werte werden auch als CSV-Datei gespeichert. Jeden Tag wird eine neue Datei erzeugt. Die Dateien sind dann nur ca. 30 kB groß.
Mit dem CO2-History Browser kann ich nun mit jeden Browser auch die CO2-Vergangenheit leicht anzeigen lassen. Es braucht nur die entsprechende Datei ausgewählt zu werden und auf den „GRAPH“ Button geklickt zu werden. Hier z.B. der CO2-Verlauf von gestern:
Mit klick auf den „OPEN“-Button kann die Datei auch im CSV-File geladen, und dann in Excel oder Numbers geöffnet werden: co2 to numbers
Hier mal die CO2 Werte von Heute in der History-Ansicht:
Man sieht deutlich, das ich um 6:30 Uhr angefangen habe zu arbeiten (die Rote 1).
Bei der Grünen 2 habe ich jeweils gelüftet und das Fenster geöffnet, da die 1000 ppm an CO2 im Zimmer erreicht wurden. Deshalb fallen die Werte schnell ab, es wird aber auch schon im Zimmer kalt. Um 12 Uhr hatte ich das Fenster aufgemacht, und bin in die Mittagspause gegangen.Dann heute etwas früher Feierabend gemacht, und kurz nach 15 Uhr noch mal gelüftet.
Wie das ganze mit dem Raspberry Pi und NodeRed und Mqtt erfasst wird, siehe hier.
Vor zwei Tagen wurde die neue KiCad 5.1.7 Version veröffentlicht. Dann mal gleich die 1,3 G laden und einen Plan für die CO2-Ampel von einem alten Projekt für den Raspberry Pi anlegen. Zuerst den Footprint für die CO2-Ampel:
Seit 1992 ist KiCad ein freies ECAD-Programmpaket zur Entwicklung von Leiterplatten in der Elektronik. Ich haben nun die erste Version der Kicad Lib für den Co2 und Temp. Sensor MH-Z19B erstellt. Die Lib kann hier kostenlos geladen werden. Die Vorgaben für die Lib sind doch sehr umfangreich und die Checker-Scripte habe ich noch nicht ausgeführt. So das ich noch keinen Pull-Request gestellt habe. Die Lernkurve für KiCad ist doch sehr steil (einige Videos sind schon nötig). Hier das neue Symbol des CO2 und Temp.-Sensors:
Wie immer gilt, Vorschläge und Hinweise sind erwünscht.
Heute zum 1. Mal die Warnung per Alexa von NodeRed. Und das bei nur zwei Personen und defekter Heizung.
Übrigens: Bei 1000 ppm empfinden rund 20 % der Personen die Raumluft als unbefriedigend. Diese Konzentration entspricht der Pettenkofer-Zahl, die von dem Hygieniker Max von Pettenkofer (1858) als Richtwert für die maximale CO2- Konzentration in Wohn- und Aufenthaltsräumen mit 0,1 Vol% CO2 (1000 ppm) definiert wurde.
Wo es viel CO2 gibt, werden auch besonders viele Keime gefunden. Die amerikanischen Wissenschaftler Rudnick und Milton zum Beispiel untersuchten 2003, wie hoch das Grippe Ansteckungsrisiko in einem Klassenraum ist. 30 Personen waren vier Stunden lang im Klassenraum, eine Person hatte akut Grippe. Das Ergebnis: Bei 1.000 ppm CO2 steckten sich fünf Personen an, bei 2.000 ppm waren es zwölf und bei 3.000 ppm sogar 15.
MAK-Werte Deutschland für CO2: 9100 mg/m3 Warum ist das so hoch?
Automatischer täglicher Server Check mit Ping. Es wird auf Erreichbarkeit getestet und im Fehlerfall eine Pushover Nachricht an das Handy versendet. Kann schnell und leicht erweitert werden. Einfach einen neuen inject Node mit Server URL und Zeitpunkt ergänzen.
Mein C02-Messgerät (Raspberry Pi) steht nun im Schlafzimmer und loggt jede Minute die CO2-Konzentration in ppm. Dann werden diese Daten drahtlos per WLAN zum NodeRed-Server gesendet. Der sendet sie dann auch wieder in Echtzeit für jeden sichtbar ins Internet.
Es dauert übrigens 40 Minuten bei gekippten Fenster und offener Tür (ohne Durchzug), bis die Werte von nur 550 ppm wieder auf Normal (400 ppm) sind.
Das ist länger als ich gedacht hatte. Hier der Verlauf:
Bei der Installation von NodeRed mit IOTstack im Docker Container auf einem Rasberry Pi Model B Rev 2 kann NodeRed nicht installiert werden. Es kommt der Fehler beim aufrufen des menu.sh Scriptes:
ERROR: Service ’nodered‘ failed to build: The command ‚/bin/sh -c for addonnodes in ; do npm install ${addonnodes} ;done;‘ returned a non-zero code: 139
Die Ursache ist, das das Model B eine ARMv6-compatible processor rev 7 (v6l) hat. Docker kann das nicht richtig erkennen, wie es hier steht. Was also tun?
Wenn in der /etc/wpa_supplicant/wpa_supplicant.conf eines Raspberry Pi noch das WLAN-Passwort im Klartext steht, kann das optional durch einen Key ersetzt werden. Der Key kann einfach als ROOT erstellt werden: