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:
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.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.
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”