Clouds

Luftfeuchte-Messung mit dem Raspberry Pi Pico

1. Einleitung

In einem früheren Artikel stellte ich eine Wetterstation bestehend aus einem Raspberry Pi Einplatinencomputer, Sensoren und einer Flüssigkristallanzeige (LCD) vor.

Diese war in der Lage Temperatur, Luftdruck und Helligkeit zu bestimmen, nicht jedoch eine weitere wichtige Wettergröße: die Relative Feuchtigkeit (englisch Relative Humidity, abgekürzt RH) oder auch Luftfeuchtigkeit.

Da mir die Verfügbarkeit von Luftfeuchte-Sensoren aus dem Maker Umfeld nicht sonderlich groß und die Qualität der Teile etwas fragwürdig erschien entschied ich mich jene Wetterstation nicht mit einem Teil von der Stange zu erweitern, sondern eine separate Elektronik mit schlichter optischer Anzeige und einem Industrie-Sensor zu entwickeln.

2. Projekt Luftfeuchte-Messung

2.1 Physikalische Größe Luftfeuchtigkeit

Die (intensive Messgröße) Relative Feuchtigkeit ist das einheitenlose und temperaturabhängige Verhältnis von zwei Dichten, nämlich der Dichten des Wasserdampfes in ungesättigter (ρD) und gesättigter (ρDS) Luft:

φ = ρDDS

Das ist die aus Wetterberichten bekannte Luftfeuchtigkeit, angegeben in einem Prozentwert von 0% – 100% (RH).

2.2 Bauteile und Komponenten

2.21 Übernahme von Hardware

Ich machte mir beim Design der optischen Anzeige die Erkenntnisse bzw. Hardware einer anderen Entwicklung zu Nutze, nämlich die der Bodenfeuchte-Messung.

Hauptmerkmal sind zwei Siebensegmentanzeigen und eine Multiplex-Logik. Es wird jeweils nur ein Block durch einen Transistor aktiv geschaltet, und zwar in so schnellem Wechsel dass dies außerhalb der Wahrnehmung des menschlichen Auges geschieht und die Anzeige statisch wirkt.

Messung und Anzeige der Luftfeuchtigkeit (mit Temperaturkompensation, einzelnes gelbes Kabel), gemultiplexte Siebensegmentanzeigen auf PCB; die längliche grüne Platine ist der aufgelötete µC
Messung und Anzeige der Luftfeuchtigkeit (mit Temperaturkompensation, einzelnes gelbes Kabel), gemultiplexte Siebensegmentanzeigen auf PCB; die längliche grüne Platine ist der aufgelötete µC

Der unmittelbare Gewinn ist die Einsparung von Leitungen und Bauteilen.

Hier die Einsparung eines CD4511BE (BCD-zu-Siebensegment Decoder) ICs und sieben 47 Ohm Widerständen, zum Preis von zwei Bipolartransistoren (z. B. BC337) und zwei 1 kOhm Widerständen (wie man vielleicht erkennt kommen die Vorteile der Multiplex-Logik erst zum Tragen bei drei oder mehr Siebensegmentanzeigen).

2.22 Bauteile-Liste

Die Bauteile-Liste dieses Projekts beinhaltet ausschließlich der Ansteuerlogik für die Siebensegmentanzeigen:

  • Raspberry Pi Pico (RasPi Pico) – DatenblattRP2040 Datenblatt
  • Sensor HIH 4020-001 (siehe Abschnitt 2.3)
  • 1xWiderstand 100 kOhm
  • 2xWiderstand 10 kOhm
  • Punktrasterplatine (202 Kontakte) und Blankdraht
  • Buchsen- und Steckerleisten, Schaltlitze (0,14 mm² verwendet), Schrumpfschlauchstücke

2.3 Sensor HIH 4020-001

Der Luftfeuchte-Sensor HIH 4020-001 kostete Stand Mitte März 2022 gut zwanzig Euro, damit etwa das Vierfache des RasPi Pico Mikrocontrollers selbst.

Es handelt sich um einen abgedeckten (jedoch nicht gegen Kondensation geschützten), integrierten Sensor auf Polymerbasis der eine technische Verfeinerung aufweist und das Signal konditioniert. Er ist jedoch passiv und benötigt Energie von außen.

Im Datasheet finden sich alle wesentlichen Daten, einschließlich einer wichtigen Umrechnungsformel welche für die Zusatzhardware wie für einen Verarbeitungs-Algorithmus eine Rolle spielen wird.

Es besteht ein linearer Zusammenhang zwischen RH und dem Sensor-Output Uout:

Uout (25°C) = USupply[V]*(0,0062*(RHSensor[%])+0,16)

In meinem Fall somit eine Ausgangsspannung im Bereich von (mit +5V VBUS vom Pico Pin 40):

Uout_max (25°C) = 5V*(0,0062*100+0,16) = 3,9V

Uout_min (25°C) = 5V*(0,0062*0+0,16) = 0,8V

Wie man sieht ist für einen verlässlichen Output Uout eine stabile Spannung USupply essentiell, nicht zuletzt deswegen weil die Sensorschnittstelle dieses Mal nicht ratiometrisch ist (d. h. ADC_VREF ist von Schwankungen USupply prinzipiell unbeeinflusst).

Die lineare Ausgangskennlinie gestaltet eine Weiterverarbeitung äußerst einfach, was das entscheidende Feature dieses teuren Sensors ist.

2.4 Schaltplan

Der Analog-Digital-Wandler (ADC) des RasPi Pico verarbeitet ein Maximum von 3,3V, folglich muss eine Art Logik den Sensor-Output skalieren.

Hier bietet sich ein gewöhnlicher Spannungsteiler an.

UADC_max (25°C) = (3,9V*100)/120 = 3,25V

UADC_min (25°C) = (0,8V*100)/120 = 0,67V

Schaltplan des Spannungsteilers mit HIH 4020-001 Sensor
Schaltplan des Spannungsteilers mit HIH 4020-001 Sensor

Änderungen von Spannungswerten finden während der Erfassung der Messgröße vergleichsweise langsam statt (keine schnellen Pulse), daher sind keine zusätzlichen Bauelemente erforderlich.

Der Pico ADC arbeitet nach dem Prinzip der “sukzessiven Approximation”. Dieses Wandlerprinzip ist zwar simpel, aber auch relativ langsam, was allerdings für den gegebenen Anwendungsfall keine Rolle spielt. Die 12-bit Auflösung ist ebenfalls völlig ausreichend.

Auf einen zusätzlichen Widerstand (Pull-up oder Pull-down) zur Erkennung eines Leitungsabrisses der Signalleitung habe ich bei dieser Schaltung verzichtet.

2.5 Algorithmus (Verarbeitung und Ansteuerung)

Die weitere Verarbeitung erfolgt per Software.

Ein kompletter, lauffähiger Code inklusive Erläuterungen zur Multiplex-Logik und Mathematik (Offset sowie “Aufspreizung” des Messbereichs) findet sich in meinem RasPi Github-Repository.

3. Produktiver Test

Ergebnisse waren auf Anhieb recht genau. Eine “Feinjustierung” der Mathematik, Temperaturkompensation (z. B. mit 103AT-2 NTC-Widerstand) sowie eine externe ADC-Referenzspannung können für ausgedehnte Messreihen noch zuverlässigere Ergebnisse liefern.

3.1 Messwerte vs. Referenzwerte

Gemessen: USupply = 4,99V.

12.03.2022, 13:00h

Nürnberg-Flughafen (Quelle dwd.de, Standort 49.494, 11.078): 23% RH

Messgerätanzeige Außenbereich (Standort 49.465, 11.126): 22% RH

mit Temperaturkompensation, s. Datenblatt (für 11°C): 1,031*22 = 23% RH

13.03.2022, 5:00h

Nürnberg-Flughafen (s.o.): 45% RH

Messgerätanzeige (s.o.): 44% RH

mit Temperaturkompensation, s. Datenblatt (für -1°C): 1,06*44 = 47% RH

14.03.2022, 10:00h

Nürnberg-Flughafen (s.o.): 84% RH

Messgerätanzeige (s.o.): 81% RH

mit Temperaturkompensation, s. Datenblatt (für 7°C): 1,04*81 = 84% RH

Anmerkung: Werte gleichfalls mit Wetter-App gegengeprüft.

4. Erweiterungen und Ausblick

In diesem Projekt war der Fokus wiederum auf einer Hardware- und Sensorkonfiguration in einem standalone System.

Es ist daher naheliegend zukünftige Pico Projekte mit IoT-Funktionalität zu erweitern, entweder in Form zusätzlicher Elektronik (Espressif ESP8266) oder mit einem Pico der die WLAN-Fähigkeit bereits mitbringt (Raspberry Pi Pico W).

5. Weiterführende Informationen

5.1 Literatur

1. Grundlagen der Technischen Thermodynamik – Doering/Schedwill/Dehli, Teubner; ISBN 3-519-46503-5 (5. Auflage)

2. Elektronik Tabellen: Betriebs- und Automatisierungstechnik – Michael Dzieia, Westermann; ISBN 978-3142350165 (4. Auflage)

3. The Art of Electronics – Paul Horowitz/Winfield Hill, Cambridge University Press; ISBN 978-0-521-80926-9 (Third edition)

5.2 Online Ressourcen

hackaday.io Projekte des Autors (englisch)