W pierwszej części wpisu przedstawię sposób kalibracji czujnika DHT22 stosując drugi czujnik (referencyjny), w moim przypadku SHT31-D, któremu mocno ufam
Dokładność sensorów:
Czujnik | Dokładność | Jednostka |
---|---|---|
SHT31-D | ±2 | %RH |
DHT22 | ±5 | %RH |
Do wyliczeń użyłem danych z 24h (interwał 1 min), które miałem zapisane w bazie danych.
Obliczyłem średnią różnicę między wskazaniami i wyliczyłem współczynnik korygujący poniższym zapytaniem SQL:
1 2 3 | SELECT AVG (sht_hum) / AVG (hum_out) AS gain FROM weather_pms WHERE dt BETWEEN '2018-05-29 21:00:00' AND '2018-05-30 21:00:00' |
Dla jasności, pole sht_hum przechowuje wskazania z czujnika SHT, a pole hum_out z DHT.
W wyniku otrzymałem:
1 | 1.159184536790648 |
Teraz już wystarczy wyliczony współczynnik przemnożyć przez wartość wilgotności odczytaną z DHT22 i otrzymamy wynik zbliżony do naszego czujnika referencyjnego.
Poniżej zamieszczam przykładowy kod w PHP, który dodatkowo sprawdza, czy nie doszło do przekroczenia granicy 100% RH.
1 2 3 4 5 6 | function readHum( $rh ) { $rh = $rh * 1.16; return $rh > 100 ? 100 : $rh ; } echo readHum(50); // otrzymamy 58 |
Poniżej przygotowałem wykres, który przedstawia wskazania czujnika referencyjnego i kalibrowanego.
W następnej części wpisu przedstawię sposób kalibracji czujnika bez użycia czujnika referencyjnego, za pomocą roztworu soli.
One thought to “Kalibracja czujnika wilgotności DHT22 (AM2302) – 1/2”