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.
Docker Container mit REST Service in 5 min mit CO2-Ampel Service erstellen
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 docker build -f src/main/docker/Dockerfile.fast-jar -t quarkus/info-kleinhirn-fast-jar . // 3. den Container starten mit docker run -i --rm -p 8080:8080 quarkus/info-kleinhirn-fast-jar |
Schon läuft der CO2 Service http://localhost:8080/v1/rest/co2 und CO2-Ampel über http://localhost:8080/v1/rest/co2ampel
Cool. Und hier das Dockerfile … „Docker Container mit REST Service in 5 min mit CO2-Ampel Service erstellen“ weiterlesen
REST Service in 15 min mit Quarkus, OpenAPI, Swagger UI und JUnit-Test erstellen und um CO2-Ampel Service erweitern
Einen REST Service in 15 min mit Quarkus, OpenAPI, Swagger UI und JUnit-Test erstellen und um CO2-Ampel Service erweitern ist nicht kompliziert.

Vorraussetzungen Java 11 und Maven. Test mit:
mvn -version
auf der Kommandozeile:
|
1 2 3 4 5 6 |
➜ ~ mvn -version Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f) Maven home: /opt/local/share/java/maven3 Java version: 11.0.9, vendor: AdoptOpenJDK, runtime: /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home Default locale: de_DE, platform encoding: UTF-8 OS name: "mac os x", version: "10.15.7", arch: "x86_64", family: "mac" |
Dann fangen wir in einem leeren Verzeichnis an
|
1 2 |
mkdir rest-co2ampel cd rest-co2ampel |
jetzt rufen wir mit dem Maven Quarkus Plugin das create Goal auf:
|
1 |
mvn io.quarkus:quarkus-maven-plugin:1.9.0.Final:create -DprojectGroupId=de.wenzlaff.co2ampel -DprojectArtifactId=info-kleinhirn -DclassName="de.wenzlaff.Co2AmpelResource" -Dpath="/co2ampel" |
Zwei Sekunden später, ist das Projekt angelegt: „REST Service in 15 min mit Quarkus, OpenAPI, Swagger UI und JUnit-Test erstellen und um CO2-Ampel Service erweitern“ weiterlesen
Uhr umstellen, aber wohin? Zeitumstellung auf dem Raspberry Pi!
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.

Co2-Ampel: Nachhaltiges Ampel-Design – wiederverwendung (sustainable) eines Seifenspenders
Die Co2-Ampel hat nun ein nachhaltiges Ampel-Design bekommen. Hier die Rote-Warnung die bei über 1000ppm in der Luft erzeugt wird:

Und das ganze als Video, mit allen Ampel-Farben (oder in HD-Qualität):
Und hier noch der Grüne Status: „Co2-Ampel: Nachhaltiges Ampel-Design – wiederverwendung (sustainable) eines Seifenspenders“ weiterlesen
CO2-Ampel: RGB LED an Rasperry Pi
So, nun habe ich an die CO2-Ampel noch eine RGB LED,

die ich seit längerer Zeit liegen hatte angeschlossen:

So zeigt sie ROT:

Hier der ganze Schaltplan der CO2-Ampel in der 4. Version.
„CO2-Ampel: RGB LED an Rasperry Pi“ weiterlesen
Autostart: systemd zum script starten als service mit systemctl am Beispiel der co2ampel
Wie können bash Scripte auf dem Raspberry Pi automatisch nach dem reboot gestartet werden?

Mit einem Service systemctl. Was ist nötig? Nicht viel …
1. Erstellen einer Datei: „Autostart: systemd zum script starten als service mit systemctl am Beispiel der co2ampel“ weiterlesen
CO2-Ampel: Temperatur zur OLED-Anzeige des CO2-Wertes ergänzen
Zusätzlich zur CO2-Ampel auch noch die Temperatur zur Anzeige des CO2-Wertes hinzufügen. Das ist schnell gemacht, hier das Ergebnis:

Das zusätzliche Einlesen der Temperatur ist in Python auch schnell gemacht:
|
1 2 3 4 5 6 |
input_json = json.loads(sys.argv[1]) messung_json = input_json['messung'] satz_json = messung_json['satz'] satz_array_json = satz_json[1] co2_wert = satz_array_json['co2'] temperatur_wert = satz_array_json['temperature'] |
So sieht ja das JSon File welches per MQTT gesendet wird aus:
„CO2-Ampel: Temperatur zur OLED-Anzeige des CO2-Wertes ergänzen“ weiterlesen
CO2-Ampel an OLED1306 (GM009605B in Vers. 2.0, 128X64) via I2C
Damit die CO2-Werte der Co2-Ampel auch ohne Internet angezeigt werden, habe ich ein kleine OLED-Display an den Raspberry Pi angeschlossen. Das hatte ich noch in der Bastelkiste. Hatte es auch schon an einem Arduino. So werden die Werte nun dauernd angezeigt:

Hier der Schaltplan mit KiCad:

Und alles etwas größer …
„CO2-Ampel an OLED1306 (GM009605B in Vers. 2.0, 128X64) via I2C“ weiterlesen
CO2 History Browser mit NodeRed
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:

Hier der NodeRed Flow, der diesen CO2-History-Browser erzeugt: „CO2 History Browser mit NodeRed“ weiterlesen
Alexa sagt den Co2 Wert in der Luft an, wenn man sie fragt – CO2-Sprech-Ampel – Architektur Big Picture
Hier hatte ich ja das Video hochgeladen von der CO2-Ansage der CO2-Ampel mit Alexa. Hier nun das aktuelle fehlende Architektur-Bild:
Es ist gleich wieder soweit … „Alexa sagt den Co2 Wert in der Luft an, wenn man sie fragt – CO2-Sprech-Ampel – Architektur Big Picture“ weiterlesen
Auswertung der CO2 Messung an einem Arbeitstag mit CO2-Ampel
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.
Check neue Version KiCad 5.1.7
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:
und den Schaltplan „Check neue Version KiCad 5.1.7“ weiterlesen
Schaltplan C02-Sensor mh-z19b an Raspberry Pi für CO2-Ampel und NodeRed Ansteuerung
Hier noch der Schaltplan C02-Sensor mh-z19b an Raspberry Pi für die Co2-Ampel. Zuerst der Co2-Sensor:
Und hier die ganze „Schaltung“ „Schaltplan C02-Sensor mh-z19b an Raspberry Pi für CO2-Ampel und NodeRed Ansteuerung“ weiterlesen
Automatischer Server-Check auf Erreichbarkeit und im Fehlerfall eine Pushover Nachricht an das Handy senden – Wie?
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.
Der Code des Flows „Automatischer Server-Check auf Erreichbarkeit und im Fehlerfall eine Pushover Nachricht an das Handy senden – Wie?“ weiterlesen
Alexa sagt den Co2 Wert in der Luft an, wenn man sie fragt – CO2-Sprech-Ampel
Alexa sagt den Co2-Wert in der Luft in ppm an, wenn man sie fragt. Hier ein kurzes Demo-Video:
Auf dem Raspberry Pi läuft ein NodeRed mit dem node-red-contrib-alexa-remote2 der nicht nur Text ausgeben kann, sondern auch Befehle auswerten kann. Hier der relevante Teil der Sprachausgabe: „Alexa sagt den Co2 Wert in der Luft an, wenn man sie fragt – CO2-Sprech-Ampel“ weiterlesen
Jetzt sind coole Gruppen mit Farbe in NodeRed möglich

Jetzt sind coole Gruppen mit Farbe in NodeRed möglich. Einfach die zu gruppierenden Nodes selektiern und im Menü: Groups -> Group selection klicken:
Dann kann mit einem doppelklick auf die Gruppe auch die Farbe geändert werden: „Jetzt sind coole Gruppen mit Farbe in NodeRed möglich“ weiterlesen
NodeRed mit IOTstack im Docker Container läuft nun auch auf Rasberry Pi Model B Rev 2
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?
Erst mal ein Issue aufmachen.
Lösung: „NodeRed mit IOTstack im Docker Container läuft nun auch auf Rasberry Pi Model B Rev 2“ weiterlesen
WLAN Passwort aus wpa_supplicant.conf entfernen

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:
|
1 2 |
sudo -i wpa_passphrase "WLAN-NAME" "WLAN-PASSWORT" >> /etc/wpa_supplicant/wpa_supplicant.conf |
Dann noch die auskommentierte Passwortzeile löschen, wie hier ausführlich beschrieben.
CO2-Ampel ldt. Bundesumweltamt in NodeRed Flow integriert
Die CO2-Ampel ltd. Bundesumweltamt (PDF, Tabelle 4) wurde nun in den NodeRed-Flow der CO2-Messungen integriert. So zeigt das C02-Dashboard auch die Meldungen des UBA an. Die Meldung im Dashboard:

Hier der Flow:

„CO2-Ampel ldt. Bundesumweltamt in NodeRed Flow integriert“ weiterlesen







