Feuchtigkeitssensor verifizieren und kalibrieren für präzise Messungen
Wie genau ist Ihr Feuchtigkeitssensor? Finden Sie es mit diesem Projekt heraus.
Feuchtigkeitssensoren sind allgegenwärtig, relativ kostengünstig und in vielen verschiedenen Varianten erhältlich. Zu oft prüfen wir das Datenblatt, nutzen sie mit einem Interface und (solange die Werte „plausibel aussehen“) akzeptieren wir die Ergebnisse.
In diesem Projekt demonstrieren wir, wie man einen Schritt weitergeht und die Genauigkeit eines Feuchtigkeitssensors überprüft. Wir illustrieren auch eine allgemeine Methode zur Sensorkalibrierung und wenden diese an, um die Ergebnisse zu kalibrieren und die Genauigkeit der Feuchtemessungen zu verbessern.
Test-Setup im Projekt (links nach rechts: Quark D2000 Mikrocontroller-Board, Sensor-Interface, HIH5030 Sensor in einer Mikroumgebung).
Projektgrundlagen
Um die Genauigkeit eines Sensors zu prüfen, werden gemessene Werte mit einem Referenzstandard verglichen. Um die Genauigkeit eines Feuchtigkeitssensors zu prüfen, nutzen wir die „gesättigte Salz“-Methode, um die Standards zu erzeugen. Vereinfacht gesagt erzeugen bestimmte Salze (ionische Verbindungen wie Kochsalz oder Kaliumchlorid), in wässriger Lösung gelöst, eine Atmosphäre bekannter Luftfeuchtigkeit (siehe Referenz-PDF).
Diese chemischen Eigenschaften werden genutzt, um Mikroumgebungen mit bekannter relativer Luftfeuchtigkeit (RH) zu schaffen (d. h. Referenzstandards), und die Sensoren werden innerhalb der Mikroumgebung ausgelesen. Konkret erstellen wir eine Lösung in einem verschlossenen Glas, um die Atmosphäre zu bewahren, und platzieren den angeschlossenen Sensor im verschlossenen Glas. Anschließend wird der Sensor wiederholt ausgelesen und die Werte aufgezeichnet.
Durch Wiederholung des Verfahrens mit mehreren verschiedenen Salzen, die jeweils eine unterschiedliche relative Luftfeuchtigkeit erzeugen, können wir ein Profil für den getesteten Sensor entwickeln. Da wir die relative Luftfeuchtigkeit für jede Mikroumgebung kennen, können wir die Abweichungen unserer Sensormesswerte von diesen bekannten Werten bewerten und somit die Genauigkeit des Sensors beurteilen.
Sind die Abweichungen erheblich, aber nicht unüberwindbar, können wir mathematische Kalibrierverfahren in Software anwenden, um die Messgenauigkeit zu erhöhen.
Ein Wort zur Sicherheit
Bevor Sie fortfahren, ist es essenziell, dass Sie die in diesem Projekt verwendeten Chemikalien verantwortungsvoll handhaben.
- Lesen Sie das Sicherheitsdatenblatt (SDS, manchmal auch MSDS) für jede der verwendeten Chemikalien (Links zu den SDS für jedes verwendete Salz sind unten angegeben, Sie können auch Literaturrecherchen zu jedem Salz und deren sicheren Handhabungsverfahren durchführen).
- Inhalieren oder verschlucken Sie die Chemikalien nicht.
- Lassen Sie die Chemikalien nicht mit Haut oder Augen in Kontakt kommen (Handschuhe und Schutzbrille tragen).
- Bereiten Sie die Lösungen nicht in dem Bereich zu, in dem Lebensmittel zubereitet werden.
- Lagern Sie die Chemikalien ordnungsgemäß.
- Entsorgen Sie die Lösungen und alle zur Herstellung verwendeten Instrumente ordnungsgemäß, damit keine versehentliche Exposition stattfindet.
- Bevor Sie beginnen, wissen Sie, was bei versehentlicher Exposition zu tun ist (siehe Sicherheitsdatenblatt).
Verwendete Salze
Im Allgemeinen gilt: Je mehr RH-Atmosphären Sie als Referenzstandards erzeugen können, desto besser wird die Charakterisierung des getesteten Sensors sein. Es gibt jedoch in praktischer Hinsicht immer eine Ressourcenbegrenzung. In diesem Projekt wurden vier Referenzstandards verwendet und die Salze wurden so gewählt, dass sie einen Bereich möglicher RH-Werte abdecken, aber auch unter Berücksichtigung von Sicherheit, Verfügbarkeit und Kosten.
Die unten aufgeführten Salze wurden gewählt. Im Fall von Natriumchlorid (Kochsalz) wurde reines Kosher-Salz günstig in einem lokalen Lebensmittelgeschäft beschafft. Wenn Sie diesen Weg gehen, vermeiden Sie Kochsalz mit Zusatzstoffen wie Jod oder Rieselhilfsmitteln.
| Salz | % RH (bei 25°C) | Quelle | Sicherheitsdatenblatt |
|---|---|---|---|
| Lithiumchlorid | 11,30 | Home Science Tools | SDS für LiCl |
| Magnesiumchlorid | 32,78 | Home Science Tools | SDS für MgCl |
| Natriumchlorid | 75,29 | Verschiedene (siehe Text) | SDS für NaCl |
| Kaliumchlorid | 84,34 | Home Science Tools | SDS für KCl |
Mikroumgebung erstellen
Wir haben Standards für fast alles und es gibt sogar einen für die Erzeugung stabiler RH aus wässriger Lösung (siehe ASTM E104 – 02(2012)). Während mein Arbeitstisch, und wahrscheinlich auch Ihrer, kein offizielles Prüflabor ist, lohnt es sich, die Spezifikationen im Standard so genau wie möglich zu befolgen.
Beachten Sie auch, dass die in diesem Projekt präsentierten Ergebnisse, obwohl mit Sorgfalt erhoben, nicht als Aussage über die Gesamtqualität der Genauigkeit einer Sensormarke angesehen werden sollten. Es wurden nur wenige Sensoren getestet, und diese hatten unterschiedliche Alters- und Nutzungsgeschichten.
Für jedes Salz wurde ein schlammiges Gemisch hergestellt, indem destilliertes Wasser zu einer Konsistenz ähnlich sehr nassem Sand hinzugefügt wurde. Vier bis fünf Esslöffel Chemikalie und ein Esslöffel destilliertes Wasser können versucht werden, aber Sie müssen eventuell etwas experimentieren.
Das Gemisch wurde in einem kleinen Glas mit festem Verschluss hergestellt. Glas oder sogar Kunststoff funktionieren gut, solange sie die Atmosphäre im Inneren bewahren. Ein kleines Loch kann in den Deckel gebohrt werden, um Anschlussdrähte zum Sensor-Interface und dann zum Mikrocontroller zu führen. Der angeschlossene Sensor wird dann etwa 0,5–1,0 Zoll über dem Gemisch positioniert. Achten Sie darauf, dass der Sensor nie direkt mit der Lösung in Kontakt kommt, da er sonst wahrscheinlich beschädigt wird. Um die Verbindung zu fixieren und das Loch im Deckel zu abdichten, kann leicht entfernbarer Kontaktkitt verwendet werden.
Es ist wichtig, dass Sie ausreichend Zeit für die Gleichgewichtsbildung lassen, bevor Sie die endgültige Messung vornehmen. Ich habe dies empirisch getestet, indem ich alle Minuten bis zu sechs Stunden in ausgewählten Testfällen Messwerte aufnahm. Meiner Erfahrung nach war dies länger als nötig und ich entschied mich für 90–120 Minuten Gleichgewichtszeit für jeden Sensor und jedes Salz. Dann wurde der Durchschnitt der letzten fünf Messwerte als Endwert verwendet. In allen Fällen zeigten die fünf Werte sehr wenig, wenn überhaupt, Unterschiede.
Zusätzlich wurden alle Messungen bei etwa 25 °C (± 1°) Umgebungstemperatur durchgeführt, und der für jeden Standard verwendete RH-Wert war der für 25 °C aufgeführte (siehe dieses PDF für die Werte).
HIH5030 Sensor auf Trägerplatine in einer Mikroumgebung mit Natriumchlorid.
Hardware
Mikrocontroller
In diesem Projekt verbinden wir die Sensoren mit einem Quark D2000 Mikrocontroller. Der D2000 ist ein 3V-Board mit I2C- und Analog-Digital-Interfaces.
Beachten Sie jedoch, dass die meisten anderen Mikrocontroller mit den entsprechenden Schnittstellen verwendet werden können.
Sensor-Interfaces
Im Projekt getestete Sensoren: A) HIH8121, B) HIH5030, C) DHT-22 (AM2302), D) HIH6030 (auf Trägerplatine).
Vier verschiedene Typen von Feuchtigkeitssensoren wurden getestet: DHT-22 (zwei wurden verwendet), HIH5030, HIH6030 und HIH8121. Die nachfolgenden Schaltpläne illustrieren die einfachen Interfaces für jeden Sensortyp, und die Konsultation der verlinkten Datenblätter liefert Hintergrundinformationen für die Schaltungen.
- Der DHT-22 ist ein Temperatur- und Feuchtigkeitssensor mit proprietärem seriellen Output
- Der HIH5030 ist ein Feuchtigkeitssensor mit analogem (Spannungs-)Output. Das Interface für diesen Sensor nutzt einen Op-Amp in Einheitsverstärker-Konfiguration für Impedanzanpassung.
- Der HIH6030 und HIH8121 sind Temperatur- und Feuchtigkeitssensoren, die das I2C-Protokoll nutzen
DHT-22 zu D2000 Interface.
DHT-22 BOM: U1, DHT-22 Sensor; R1, 4,7 kΩ Widerstand; C1, 0,1 µF Kondensator.
HIH5030 zu D2000 Interface.
HIH5030 BOM: U1, HIH3050 Sensor; U2, MCP601P Op-Amp; C1, 1,0 µF Kondensator; C2, 0,1 µF Kondensator.
HIH6030 zu D2000 Interface.
HIH6030 BOM: U1, HIH6030 Sensor; R1 und R2, 2,2 kΩ Widerstand; C1, 0,22 µF Kondensator; C2, 0,1 µF Kondensator.
HIH8121 zu D2000 Interface.
HIH8121 BOM: U1, HIH8121 Sensor; R1 und R2, 2,2 kΩ Widerstand; C1, 0,22 µF Kondensator.
Sensor-Software
Alle Programme zum Sammeln der Sensordaten sind in C geschrieben und können durch Klicken auf den Button „Humidity Sensor Project Code“ heruntergeladen werden. Jedes ist kommentiert und unkompliziert. Für jeden Sensor liest das Programm einfach den Sensor jede Minute und sendet den Wert an einen Serial Monitor. Als solche sollten sie einfach an Ihre spezifische Anwendung anpassbar sein.
Screenshots der Ausgabe von DHT22.c (links) und HIH5030.c (rechts).
Sensor-Evaluationsverfahren
Die folgende Tabelle enthält die Daten aus der Evaluierung der Sensoren in jeder der vier Mikroumgebungen.
| DHT #1 | DHT #2 | HIH5030 | HIH6030 | HIH8121 | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Referenz RH | OBS | ERR | OBS | ERR | OBS | ERR | OBS | ERR | OBS | ERR |
| 11,30 (LiCl) | 12,56 | 1,26 | 16,29 | 4,99 | 13,02 | 1,72 | 20,79 | 9,49 | 12,31 | 1,01 |
| 32,78 (MgCl) | 32,36 | -0,42 | 33,79 | 1,01 | 33,46 | 0,68 | 40,77 | 7,99 | 32,43 | -0,35 |
| 75,29 (NaCl) | 73,04 | -2,25 | 74,50 | -0,79 | 77,74 | 2,45 | 83,83 | 8,54 | 76,63 | 1,34 |
| 84,34 (KCl) | 82,30 | -2,04 | 82,15 | -2,19 | 85,84 | 1,50 | 93,43 | 9,09 | 85,01 | 0,67 |
| RMSE | 1,657 | 2,799 | 1,708 | 8,796 | 0,920 | |||||
Sobald Sie die Daten zur Sensorleistung in stabilen Umgebungen bekannter relativer Luftfeuchtigkeit gesammelt haben, können Sie die Genauigkeit eines Sensors numerisch bewerten.
Beachten Sie, dass in der Tabelle der Fehler für jeden Sensor bei jedem RH-Standard berechnet wurde. Wir können diese Werte jedoch nicht einfach mitteln, um den Sensor zu bewerten, da einige Werte positiv und andere negativ sind. Würden wir einfach einen Mittelwert bilden, würde der resultierende Wert den durchschnittlichen Fehler minimieren, da sich positive und negative Werte aufheben würden.
Stattdessen berechnen wir einen Root Mean Square Error (RMSE), um die Genauigkeit des Sensors zu charakterisieren. Die Formel für RMSE lautet:
wobei O der beobachtete Sensorwert und I der ideale Sensorwert (d. h. der Referenzstandard) ist. Um RMSE zu berechnen, quadrieren wir jeden Fehler (die Abweichung vom Referenzstandard), berechnen dann den arithmetischen Mittelwert dieser Werte und ziehen schließlich die Quadratwurzel des Mittelwerts.
Nachdem Sie die Genauigkeit des Sensors charakterisiert haben, können Sie den RMSE nutzen, um zu entscheiden, ob eine Kalibrierung des Sensors notwendig ist. In einigen Fällen ist der RMSE klein und für Ihre Anwendung vollkommen akzeptabel, sodass Sie vernünftigerweise entscheiden können, dass keine Kalibrierung erforderlich ist.
Zum Beispiel sind die Ergebnisse für den HIH8121 beeindruckend. Der RMSE liegt unter 1 % und alle Stichprobenpunkte haben einen Fehler unter 2 %.
Andererseits können Sie in einigen Fällen feststellen, dass die Sensorantwort so schlecht und unregelmäßig ist, dass Sie einfach entscheiden, dass ein anderer Sensor für Ihre Anwendung erforderlich ist.
Die Entscheidung zur Kalibrierung sollte immer den für die Aufgabe erforderlichen Genauigkeitsgrad berücksichtigen. Dennoch können wir die Genauigkeit der Sensormesswerte durch Kalibrierung für alle Sensoren in der Tabelle verbessern.
Sensor-Kalibrierungsverfahren
Um einen Sensor zu kalibrieren, müssen wir zunächst mathematisch die Funktion bestimmen, die die idealen Werte mit den beobachteten Werten verknüpft. Ein lineares Regressionsverfahren kann verwendet werden, um diese Funktion zu bestimmen.
Das Wort „linear“ im Namen des Regressionsverfahrens bedeutet nicht eine lineare Funktion. Stattdessen bezieht sich der Begriff auf eine lineare Kombination von Variablen. Die resultierende Funktion kann linear oder kurvilinear sein. Alle drei der folgenden Polynomfunktionen repräsentieren lineare Regression (Hinweis: wir ignorieren den 0-Grad-Fall, der in diesem Kontext nicht nützlich ist).
- y = ax + b (erster Grad, linear)
- y = ax2 + bx + c (zweiter Grad, quadratisch)
- y = ax3 + bx2 + cx + d (dritter Grad, kubisch)
Im aktuellen Projekt berechnen wir Sensorwerte mit vier Referenzstandards (d. h. n = 4). Somit ist ein Polynom dritten Grades das höchstmögliche Grad-Polynom, das wir berechnen können. Es ist immer der Fall, dass das höchstmögliche Grad-Polynom n – 1 ist, was in diesem Fall 3 (4 – 1) bedeutet.
Gewöhnlich werden Least-Squares-Verfahren für lineare Regression verwendet. In diesem Verfahren wird eine Linie so angepasst, dass die Summe der Abstände von jedem Datum zur Linie so klein wie möglich ist. Es gibt viele Programme, die Least-Squares-Verfahren zur linearen Regression nutzen. Sie können sogar Excel verwenden (klicken Sie hier für weitere Informationen).
Es sollte auch beachtet werden, dass wir nicht zwingend lineare Regression verwenden müssen. Wir könnten nichtlineare Regression verwenden. Beispiele für nichtlineare Regression ergeben eine Potenzfunktion oder eine Fourier-Funktion. Lineare Regression ist jedoch gut für unsere Projektdaten geeignet und zudem ist Software-Korrektur (Kalibrierung) einfach zu implementieren. Tatsächlich glaube ich nicht, dass Sie durch nichtlineare Regression in diesem Projekt viel gewinnen würden.
Polynomwahl
Theoretisch wollen wir das Polynom verwenden, das die Daten am besten anpasst. Das heißt, das Polynom, das den kleinsten Bestimmtheitskoeffizienten erzeugt, bezeichnet als r2 (oder R2, „R quadrat“ ausgesprochen). Je näher r2 an 1 liegt, desto besser die Anpassung. Mit Least-Squares-Schätzung ist es immer der Fall, dass je höher der Grad des verwendeten Polynoms, desto besser die Anpassung.
Sie müssen jedoch nicht automatisch das höchstmögliche Grad-Polynom verwenden. Da die Kalibrierung in Software stattfindet, kann es Fälle geben, in denen die Verwendung eines niedrigeren Grad-Polynoms einen Geschwindigkeits- und/oder Speichervorteil darstellt, besonders wenn der Genauigkeitsgewinn durch ein höheres Grad-Polynom sehr gering ist.
Unten demonstrieren wir die Kalibrierverfahren für den HIH6030 Sensor mit Polynomen verschiedenen Grades und illustrieren dabei das allgemeine Verfahren, das auf jeden von Ihnen gewählten Polynomgrad anwendbar ist.
Mit den Daten aus der vorherigen Tabelle führen wir zunächst das Least-Squares-Regressionsverfahren durch, um die Koeffizienten für jedes Polynom zu bestimmen. Diese Werte stammen aus dem verwendeten Regressions-Softwarepaket. Die Ergebnisse sind unten, einschließlich der r2 Werte.
- Linear: y = ax + b; a = 1,0022287, b = -8,9105659, r2 = 0,9996498
- Quadratisch: y = ax2 + bx + c; a = -0,0012638, b = 1,1484601, c = -12,0009745, r2 = 0,9999944
- Kubisch: y = ax3 + bx2 + cx + d; a = 0,0000076, b = -2,4906103, c = 1,2061971, d = -12,7681425, r2 = 0,9999999
Die beobachteten Werte können nun mithilfe der berechneten Funktionen modifiziert werden. Das heißt, die Sensormesswerte können kalibriert werden, wie in der folgenden Tabelle dargestellt (Hinweis: OBS, Corrected und ERR Werte sind auf zwei Dezimalstellen gerundet).
| RAW | 1. Grad | 2. Grad | 3. Grad | |||||
|---|---|---|---|---|---|---|---|---|
| Ref RH | OBS | ERR | Korrigiert | ERR | Korrigiert | ERR | Korrigiert | ERR |
| 11,30 | 20,79 | 9,49 | 11,93 | 0,63 | 11,36 | 0,06 | 11,30 | 0,00 |
| 32,78 | 40,77 | 7,99 | 31,95 | -0,83 | 32,83 | 0,05 | 32,78 | 0,00 |
| 75,29 | 83,83 | 8,54 | 75,11 | -0,18 | 75,85 | 0,55 | 75,29 | 0,00 |
| 84,34 | 93,43 | 9,09 | 84,73 | 0,39 | 84,83 | 0,49 | 84,34 | 0,00 |
| RMSE | 8,795736 | 0,562146 | 0,371478 | 0,00212 |
Man kann sehen, dass alle drei Polynome eine signifikante Verringerung des RMSE im Vergleich zu den beobachteten Messwerten erzeugten, und das ist der Grund, warum man kalibriert. Die Grafik unten veranschaulicht die Verbesserung mit dem Polynom 1. Grades. Beachten Sie, wie die kalibrierten (korrigierten) Datenpunkte nun nahe der idealen Diagonalen liegen.
Weitere Informationen lesen….
Wie man einen Feuchtigkeitssensor prüft und kalibriert
Aktuelles Projekt / Beitrag kann auch gefunden werden unter:
- how t chec for humidity calibratiod
Herstellungsprozess
- Feuchtesensoren: Funktionsweise und Hauptanwendungen
- DHT11 Sensor: Funktionsweise und Hauptanwendungen
- Raspberry Pi & HDC2010: Kompletter I2C Temperatur- & Feuchtigkeitssensor Setup-Guide
- Fern-Temperatursensor mit Raspberry Pi & Python bauen – Schritt-für-Schritt-Anleitung
- Raspberry Pi Wetterstation bauen, die tägliche Wetterdaten per E-Mail sendet
- Multi-Sensor Temperatur- & Licht-Überwachung mit Raspberry Pi & DS18B20
- Raspberry Pi Sensor & Aktuator Steuerung meistern: Beschleunigungsmesser, Servo und Datenstreaming
- Automatisiertes Aeroponik-System mit Raspberry Pi und Feuchtigkeitssensor bauen
- Präzise Temperatur- & Feuchtigkeitsüberwachung mit SHT15 unter Windows 10 IoT Core
- DC-Motor prüfen & diagnostizieren: Schritt-für-Schritt-Anleitung zur Fehlersuche