Leider ist die Luftverschmutzung ein Problem, nicht nur in den Millionenmetropolen in Fernost. Die Umweltämter der großen Städte in Deutschland wissen ein Lied davon zu singen. Da ist es gut, ein PM2,5-Anzeige zur Hand zu haben, um die Luftqualität zu überwachen, aber um ehrlich zu sein: Es ist eigentlich sehr schlecht, dass wir so etwas überhaupt brauchen.

In der Vergangenheit hatte ich ein PM2,5-Messgerät entworfen, das mit einem Solarpanel geladen werden konnte, aber nicht für den Einsatz in Innenräumen geeignet war. Ich hatte auch eine ESP32-basierte Version für verschiedene Sensortypen aufgebaut, deren Daten über WLAN an Thingspeak gesendet wurden, aber diese war nicht portabel. Das logische Ziel dieses Projekts ist es also, ein möglichst kompaktes Gerät zur Anzeige des PM2,5-Index der Umgebungsluft zu bauen, dessen Batterie mehrere Wochen permanenten Betriebs durchhalten würde. Eine solches portables Gerät könnte man in Innenräumen verwenden, aber auch zum Beispiel mit einem Saugnapf außen an ein Fenster befestigen, so dass der PM2,5-Wert von innen sichtbar ist.

Konstruktive Überlegungen

Die Wahl des Staubpartikel-Sensors ist sehr wichtig. In einem früheren Projekt hatte ich verschiedene Sensortypen getestet, für die Outdoor-Version zum Beispiel den Sharp GP2Y10. Für einen kompakten Entwurf scheint von all diesen Sensoren nur der Sensor PMS7003 von Plantower brauchbar zu sein. Er verfügt über eine serielle Schnittstelle zum Senden von Messdaten. Wenn Sie diesen Sensor bestellen, achten Sie darauf, dass Sie ihn inklusive des passenden Steckers kaufen! Da der Sensor bis zu 100 mA bei 5 V zieht (hauptsächlich wegen seines internen Mini-Lüfters), kann er nicht im Dauerbetrieb arbeiten, sonst wären die Batterien in kürzester Zeit leer. Die Versorgungsspannung wird von einer Lithium-Batterie geliefert, daher ist ein DC/DC-Aufwärtswandler (3,8 V auf 5 V) mit einer „echten“ Abschaltung erforderlich.

Zur Anzeige habe ich ein 8x2-zeiliges monochromes alphanumerisches LCD gewählt. Es benötigt weniger als 1 mA bei permanenter Anzeige. Ein Farb- oder OLED-Display kann aufgrund des hohen Strombedarfs nicht verwendet werden; die Autonomie des Geräts wäre ernsthaft beeinträchtigt. Für einen schnellen Überblick über den PM2,5-Index habe ich einen LED-Bargraph hinzugefügt. Der Indexwert wird durch eine leuchtende LED dargestellt: Sechs Bereiche von PM2,5-Quailitätsstufen mit fünf LEDs entsprechend den in Tabelle 1 gezeigten Farben, wobei mangels kastanienbrauner LEDs bei der schlechtesten Stufe die rote und die blaue LED gemeinsam leuchten. Für alle LEDs sollten lichtstarke Low-Current-Typen zum Beispiel aus der Kingbright-WP71xx-Reihe mit einem Durchlassstrom von 2 mA gewählt werden.

Tabelle 1. Die AQI-Indizes in Zahl, Wort und Farbe.

Die (optionale) Anzeige von Temperatur und Luftfeuchtigkeit ist ebenfalls möglich, wenn ein I2C-Sensor SHT20/SHT21 eingesetzt wird. Die Software unterstützt auch den 1-Wire-Temperatursensor DS1820, der jedoch in dieser Anwendung nicht getestet wurde. Das Herzstück des Messgeräts ist ein PIC18F2520, dem ein MAX931 zur Batteriespannungsüberwachung und ein Lithium-Batterielader LTC4054 zur Seite gestellt werden.

Die Gesamtleistungsaufnahme des Messgeräts hängt hauptsächlich vom Intervall zwischen den Messungen ab. Nach der Spezifikation des PMS7003 muss er 30 Sekunden lang eingeschaltet sein, bevor die erste zuverlässige Messung durchgeführt werden kann. Standardmäßig ist das Messintervall auf 20 Minuten eingestellt, es kann aber über das Menü geändert werden. Mit dieser Standardeinstellung und einem 1000-mAh-Akku hält das Messgerät etwa zwei Wochen lang ohne Nachladen durch. Die Größe des Akkus hängt vom Gehäuse ab. Es kann jeder Lithium-, LiPo- oder prismatische Akku verwendet werden. Da ich ein kompaktes Gehäuse für dieses Projekt selbst entwickelt habe, kann es natürlich perfekt an die Abmessungen des gewünschten Akkus angepasst werden. Bei meinem Messgerät spendet ein 1100-mAh-Akku der Elektronik seine Energie.

Berechnung des Luftqualitätsindex

Es gibt mehrere, zum Teil nicht triviale Methoden zur Berechnung des Luftqualitätsindexes. In diesem Projekt werden zwei Versionen implementiert. Die erste ist eine arithmetische Mittelwertberechnung über die letzten 24 Stunden nach der Berechnungsmethode der USA. Details zu dieser Methode, im Folgenden IQA genannt, finden Sie unter [1]. Der Nachteil dieser Methode ist, dass sie einen gleitenden Mittelwert über 24 Stunden verwendet, so dass der angezeigte Wert durch relativ alte Luftqualitätswerte beeinflusst wird.

Aus diesem Grund wird eine neue US-Berechnungsmethode (NowCast) mit einem gewichteten Mittelwerte verwendet. Kurz gesagt, hat die Messung der letzten Stunde in der endgültigen Berechnung ein größeres Gewicht als die Messung von vor 11 Stunden. Es handelt sich also ebenfalls um einen gleitenden Mittelwert, jedoch über 12 Stunden. Dies wird hier NQI (New Quality Index) genannt, hat aber die gleichen Indexgrenzen (Tabelle 1) wie die alte Version. Diese Methode wird bei [2] detailliert erläutert. Der Einfachheit halber wird in der Software dem Indexwert der vorherigen Stunde ein Gewicht von 50 %, dem der Stunde -2 ein Gewicht von 25 %, dem der Stunde -3 ein Gewicht von 12,5 % und so weiter zugemessen. Eine praktische Implementierung des Algorithmus wird in Link [3] diskutiert. In unserem Projekt können die Messwerte nach beiden Methoden berechnet und angezeigt werden, wobei die neue Berechnungsversion NQI standardmäßig eingestellt ist.

Die 2,5-µm-Partikelmenge wird von unserem Messgerät in regelmäßigen Abständen gemessen. Das Intervall kann im Menü zwischen 10 Minuten und 60 Minuten eingestellt werden, wobei die voreinstellten 20 Minuten einen guten Kompromiss zwischen Messgenauigkeit und Stromverbrauch darstellen. Jede Stunde berechnet das Programm den Durchschnitt der letzten Messungen, nur dieser Durchschnitt wird in einer Tabelle gespeichert und später nach der gewählten Methode bewertet. Der Index der Partikelmessung auf der LED-Leiste kann angezeigt werden als:
 

  • IQA oder NQI
  • jüngste Messung (Last)
  • letzter stündlicher Durchschnittswert (Hour)
 
Die LEDs können während der Nacht abgeschaltet werden, um Energie zu sparen. Ein LDR misst die Umgebungshelligkeit und wechselt entsprechend den Modus (Tag/Nacht).

Eine interessante Option ist die Anzeige des aktuellen PM2,5-Pegels in Echtzeit. Der Sensor ist dabei permanent aktiv und der angezeigte Wert wird jede Sekunde aktualisiert. Diese Option benötigt natürlich viel Energie und entleert die Batterie in kurzer Zeit.
 
  • Andere Werte, die angezeigt werden können:
  • Temperatur- und Luftfeuchtigkeitsanzeige
  • 3-stellige Batteriespannungsanzeige („384“ zum Beispiel bedeutet 3,84 V).

 
Bei zu niedriger Batteriespannung blinkt die LED-Anzeige und zeigt damit an, dass ein Aufladen erforderlich ist. Für den Außeneinsatz ist ein Anschluss für eine optionale Ladung über eine 5-V-Solarzelle vorgesehen. Die Menüeinstellungen werden im internen EEPROM des Mikrocontrollers gespeichert. Alle anderen Werte, Tabellen und Variablen werden zurückgesetzt, wenn das Gerät ausgeschaltet oder neu gestartet wird.

Die Hardware

Die Schaltung des Luftqualitäts-Messgerät in Bild 1 zeigt einen DC/DC-Aufwärtswandler LT3525ESC6-5 (U6) für den Sensor PMS7003.

PM2.5 display to monitor air quality
Bild 1. Die Hardware des PM2,5-Messgeräts.

Dieser Wandler garantiert mit einer „True-Shutdown“-Funktion niedrigste Stromaufnahme. Die meisten Gleichspannungswandler haben zwar eine Shutdown-Funktion, die aber lediglich den Schalttransistor an der Induktivität stilllegen. Die Ausgangsspannung folgt dann (über Induktivität und Diode) aber immer noch dem Eingang, so dass weiterhin Strom fließt. Echte Shutdown-Schaltungen schalten den Wandler wirklich komplett ab: 0,00 mA! Das einzige wirkliche Problem mit diesem IC ist, es zu verlöten. Es ist wirklich sehr klein, Lötpaste und eine Heißluft-Lötstation werden empfohlen ...

Der 3,3-V-Regler LP2980 (U7) wird von U1, einem Komparator mit Hysterese namens MAX931 gesteuert. Er schaltet den Regler ab, wenn die Batteriespannung unter 3,2 V fällt und kann erst wieder aktiviert werden, wenn diese Spannung über 3,8 V ansteigt. Diese Funktion ist im Normalbetrieb nicht unbedingt sinnvoll, aber notwendig, wenn ein Solarpanel zum Aufladen verwendet wird. Der MAX931 sperrt außerdem den DC/DC-Wandler über die Diode D5, um ungewollte Starts bei niedriger Batteriespannung zu verhindern.

Die serielle Schnittstelle wird auf die Verbinder J8 (für Tracking und Firmware-Upload) und J1 (für den PMS7003) aufgeteilt. Das Tx-Signal vom Mikrocontroller ist an beiden Verbindern angeschlossen, während die Rx-Signale ein Wired-or-Gatter (D2, D12 und R25) durchlaufen und zum Controller gelangen. Da die aktuelle Software keine Befehle an den PMS-Sensor sendet, ist der 0-Ω-Widerstand R16 nicht bestückt.
Für den SHT20/21-Sensor wird eine I2C-Schnittstelle per Software über portB.0 und portB.1 simuliert; die Hardware-I2C-Schnittstelle des PICs bleibt der LC-Anzeige vorbehalten. Das hier verwendete LCD, ein „Eastrising Serial COG 8x2 LCD Module I2C Character Display“ mit I2C-Schnittstelle wird über U3 angeschlossen.

Die Ladeschaltung für den Lithium-Akku ist mit LTC4054 (oder dem kompatiblen EUP8054, U4) aufgebaut. Die Eingangsspannung erhält dieses IC entweder vom USB-Anschluss (J2) oder von einem externen Solarpanel an J4. Der Ladestrom wird durch die beiden Widerstände R19 und R20 auf 400 mA begrenzt. LED D4 in der Nähe des USB-Anschlusses zeigt an, dass der Akku geladen wird. Ein eventuelles 5-V-Solar-Panel an J4 lädt den Akku über die Schottky-Diode D7 auf.

Die fünf Bargraph-LEDs (D8...D11 und D13) werden durch direkt vom PIC-Controller gesteuert. Der Strombegrenzungswiderstand jeder LED hängt vom verwendeten LED-Typ (Low-Power oder nicht) und von der Durchlassspannung der einzelnen Farb-LED ab. Die rote LED D1 leuchtet, wenn der DC/DC-Wandler arbeitet und zeigt an, dass das Messgerät eingeschaltet ist.

Für C10 und C11 am Display können Kondensatoren zwischen 1 µF und 2,2 µF mit einer Spannungsfestigkeit von mindestens 10 V verwendet werden. Die auf der Platine des Displays aufgeklebte Hintergrundbeleuchtung wird nicht verwendet und kann vor der Montage entfernt werden. Es wird empfohlen, das Display zusammen mit seinem Stecker zu kaufen.

Fehlt noch der „Tageslichtsensor“: Dafür wird ein simpler LDR (C1) verwendet, der aus der Frontplatte herausguckt. Er ist mit dem Analogeingang AN0 des Mikrocontrollers verbunden.

PCB, battery and PMS7003 sensor with the enclosure opened.
Bild 2. Platine, Batterie und PMS7003-Sensor bei geöffnetem Gehäuse.

Bestückung der Platine

Der Schaltplan und die Platine wurden mit der CAD-Software DipTrace von Novarm entworfen, die Designdateien können von der Elektor Labs-Projektseite heruntergeladen werden. Alle Bauteile außer den LEDs sind SMDs. Das am schwierigsten zu lötende Teil ist der DC/DC-Wandler, ich habe dafür Lötpaste und eine Heißluft-Lötstation verwendet. Aufgrund der Kompaktheit des Gehäuses ist es schwierig, Standardstecker zum Anschluss der zwei Sensoren zu montieren, so dass man besser die Anschlussdrähte direkt an die Schaltung lötet. Nur die Batterie und das Display werden mit Steckverbindern angeschlossen.

Zur Programmierung des Mikrocontrollers gibt es zwei Möglichkeiten. Entweder schließen Sie ein PicKit3 an J7 an oder Sie verwenden den seriellen Anschluss J8. Im zweiten Fall muss der Mikrocontroller vor dem Einlöten mit einem Bootloader programmiert werden. Zudem muss bei jedem Programmiervorgang des Controllers der PMS7003 abgezogen werden. Ich persönlich verwende immer einen Bootloader namens Tiny Bootloader. Es ist notwendig, dass die im PIC eingebettete Bootloader-Version den richtigen Wert für den Watchdog kennt (hier 256 ms) und daher muss der Sourcecode damit neu kompiliert werden. Die .asm- und .hex-Dateien dieses Bootloaders für den PIC18F2520 sind auch Teil des Software-Downloads auf der Elektor-Labs-Projektseite.

PM2.5 display in a 3D-printed case
Bild 3. Vorderansicht des PM2,5-Messgeräts im 3D-gedruckten Gehäuse.

Software

Die Software wurde mit einer älteren Version des MikroC-Compilers in C entwickelt. Sie kann wohl auf die neuere Version MikroC Pro portiert werden, aber ich habe es nicht ausprobiert. Der Quelltext und die HEX-Datei können von der Seite dieses Projekts auf Elektor Labs heruntergeladen werden. Die Firmware ist recht einfach:
 

  • Initialisierung
  • Endlosschleife mit Tastenabfrage
  • Anzeige der verschiedenen Displays, der Pegel der LEDs (je nach LDR-Wert für Tag/Nacht-Umschaltung)
  • Alle xx Minuten Einschalten des Gleichspannungswandlers für den Partikelsensor. Nach 30 s erfolgt das Auslesen des PM2,5-Werts. Der Wandler wird wieder abgeschaltet.
  • Jede Stunde Berechnung des Mittelwerts
  • Speicherung dieses Wertes in einer 24-reihigen gleitenden Durchschnittstabelle (für 24 Stunden)
  • Berechnung des IQA (gleitender 24-Stunden-Mittelwert) oder NQI (gleitender gewichteter 12-Stunden-Mittelwert)

 
Die Funktion calculation_aqi() berechnet den Wert des Luftqualitätsindexes nach dem Prinzip des einfachen Mittelwertes über 24 Stunden. Die letzten 24 Werte in der Tabelle werden dazu einfach gemittelt. Die Funktion calculation_nqi() berechnet den gewichteten Wert des Luftqualitätsindex. Die „praktische“ Formel wird in Referenz [3] erklärt.

Die Umrechnung dieser Werte in die Indizes (0...500) erfolgt durch die Funktion conversion_aqi(), entsprechend der im Dokument für die USA angegebenen Formel.

Die Hauptschleife der Software wird durch eine sleep-Anweisung beendet. Der Controller erwacht, wenn ein Watchdog ausgelöst wird, das Watchdog-Intervall wird auf 256 ms eingestellt (im Falle des PIC18F2520 muss dies bei der Programmierung des Mikrocontrollers geschehen). Dieses Intervall ist kurz genug, um keine Tastendrücke zu verpassen. Eine längere Zeit wäre besser, was den Stromverbrauch angeht, aber dann könnte man auch Tastendrücke verpassen. Die Software funktioniert auch ohne den angeschlossenen Temperatur-/Feuchtesensor, aber natürlich zeigt das Display dann ungültige Werte für Temperatur und Feuchte an.

Gehäuse aus dem Drucker

Das Gehäuse wurde in ThinkerCad entworfen und mit einem 3D-Drucker gedruckt. Es ist recht einfach, mit Öffnungen für den LDR und den SHT-Sensor auf der Oberseite sowie für den PMS7003-Sensor an der Seite, eine für den Lufteinlass, eine für den Auslass. Die aktuelle Version des Gehäuseentwurfs kann von [4] heruntergeladen werden, ebenso wie eine Halterung für eine Solarzelle, die wird mit kleinen Haken an der Rückseite des Gehäuses befestigt wird.

Die kompakte, batteriebetriebene Hardware funktioniert hervorragend, aber Hard- und Software können immer noch erweitert und/oder verbessert werden. So gibt es im Schaltplan und auf der Platine bereits einen Anschluss (J6) für ein Low-Power-Grafik-LCD mit 128x64 Pixeln, aber dies ist nicht getestet und wird in der aktuellen Version der Firmware auch nicht unterstützt. Hat man dies nicht vor, kann man J6 samt der Vielzahl von Kondensatoren in seiner Nähe einfach weggelassen.

(191215-01)

Haben Sie Fragen oder Kommentare?
Haben Sie Fragen oder Kommentare zu diesem Artikel? Schicken Sie eine E-Mail an den Autor unter laurent.elektor@gmail.com oder kontaktieren Sie Elektor unter editor@elektor.com.