В предишна статия ви запознахме с DHT11 , друг от сензорите за температура и влажност, които са ви на разположение. Но в тази нова статия ще ви разкажем всичко, което трябва да знаете за DHT22 . Като цяло, на пръв поглед, единствената разлика между DHT11 и DHT22 е, че първият се предлага в син корпус, а вторият в бял. Всъщност и двата са част от едно и също семейство сензори.
DHT11 е по-малкият брат , което означава, че има някои ограничения или по-малко функции в сравнение с DHT22 и следователно е с по-висока цена. DHT11 може да се използва за проекти, където не се изискват високоточни измервания, докато ако искате нещо по-точно, трябва да изберете DHT22. DHT22 също не е с висока прецизност, но предлага повече от приемлива производителност за повечето проекти „Направи си сам“.
Какво е DHT22?
DHT22 е сензор за температура и влажност с производителност, която съперничи на високопрецизни модели . Той е лесно достъпен в специализирани магазини или големи търговци на дребно . Това ви позволява да имате всичко интегрирано в едно устройство, елиминирайки нуждата от отделни сензори за температура и влажност.
Можете да го намерите свободно монтиран или в модули, специално проектирани за Arduino ; тоест, DHT22 е монтиран на печатна платка, готов за употреба, без да е необходимо добавяне на pull-up резистори и т.н. Дотук е доста подобен на DHT11. Освен това ще получите висока надеждност и стабилност при измерванията благодарение на калибрирания цифров сигнал, който използва.
Pinout, функции и лист с данни
На изображението по-горе можете да видите сравнение на разпределението на пиновете на DHT22 и DHT11 и както виждате, те са идентични по отношение на пиновете. Следователно, сглобяването им би било абсолютно същото, а най-хубавото е, че можете да замените DHT11 с DHT22 и обратно във вашия проект по всяко време, без да правите твърде много промени.
Не забравяйте, че има 3 пина, които трябва да използвате: GND, Vcc и Data . Пин №3 е неизползван и е деактивиран на модулите, което означава, че ще видите само три пина. Ако искате повече подробности за закупения от вас продукт, можете да потърсите в информационните листове за конкретния модел и производител, за да получите цялата информация. Въпреки че повечето стойности може да изглеждат еднакви, може да има някои леки вариации. Най-важните му технически характеристики са:
- Захранване от 3,3v до 6v
- Консумация на ток 2,5mA
- Цифров изходен сигнал
- Температурен диапазон от -40ºC до 125ºC
- Точност за измерване на температура при 25 ° C от 0.5 ° C вариация
- Разделителната способност за измерване на температурата е 8-битова, 0,1ºC
- Влажността може да измерва от 0% RH до 100% RH
- Точно влажност 2-5% RH за температури между 0-50ºC
- Разделителната способност е 0,1% относителна влажност, не може да улови вариации под нея
- Честота на вземане на проби от 2 проби в секунда: 2Hz
- Лист с данни на Sparkfun
Ако сте прочели нашето ръководство за DHT11, ще знаете, че той предава данни цифрово чрез своя Data pin, което е друго предимство за тези сензори. Няма нужда да пишете код в Arduino IDE, за да преобразувате аналоговите сигнали в четими за човек стойности; цифровият сигнал може да бъде обработен директно, за да се преобразува в градуси или процент относителна влажност.
Отчасти това е причината да е толкова прецизен, тъй като 40-битовият кадър , който предава, позволява по-висока точност. Той дори включва битове за паритет, за да открива грешки в сигнала. Това го няма при аналоговия сигнал, освен факта, че аналоговите сигнали са много чувствителни към промени в напрежението…
Интеграция с Arduino
Точно както при DHT11, инсталирането на DHT22 с Arduino е доста лесно . Не забравяйте, че ако го използвате самостоятелно, без да е монтиран на модул, и сензорът е далеч (или ако използвате по-ниско напрежение за захранването му), ще трябва да използвате pull-up резистор, за да свържете Vcc пина и Data пина. Но ако използвате модула, можете да пропуснете тази стъпка и да го свържете директно, както е показано на изображението по-горе. Също така, не забравяйте, че неизползваният NC пин няма да присъства на модула, което прави още по-лесно избягването на объркване.
Трябва само да свържете GND и Vcc към съответните връзки на вашата платка Arduino , тоест към тези, обозначени като GND и 5V в този случай. За пина Data можете да го свържете към всеки от цифровите входове на Arduino; в нашия случай използвахме пин 7. Ако използвате различен пин, не забравяйте да коригирате кода, за да работи със специфичните връзки на вашите компоненти (изглежда очевидно, но е много често срещана грешка при копиране и поставяне на код в Arduino IDE).
Код в IDE на Arduino
След като вече сте го свързали, нека разгледаме един прост примерен код за Arduino IDE . Не забравяйте, че имаме ръководство за начинаещи за Arduino в PDF формат, което можете да изтеглите безплатно от тук , което може да ви бъде полезно. Също така, ако сте чели нашата статия за DHT11, ще си спомните, че имаше библиотека за използване на DHTxx сензорите ; следователно, същата библиотека, използвана за DHT11, може да се използва за DHT22.
След като инсталирате библиотеката и всичко е готово, е време да въведете кода , за да програмирате микроконтролера Arduino, така че вашият проект да работи. Един основен пример би бил:
#include "DHT.h"
// Ejemplo sencillo de uso para el DHT22
const int DHTPin = 7;
DHT dht(DHTPin, DHTTYPE);
void setup() {
Serial.begin(9600);
Serial.println("Test DHT22");
dht.begin();
}
void loop() {
// Tiempo de espera entre tomas de mediciones de 2 segundos.
delay(2000);
// Lee temperatura y humedad durante unos 250ms
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Fallo en la lectura");
return;
}
Serial.print("Humedad relativa: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperatura: ");
Serial.print(t);
Serial.print(" *C ");
}
Надявам се, че нашите ръководства за DHTxx са били полезни , въпреки че проектите, които обикновено се правят, са малко по-сложни, но тези кодове, за да се види как работи сензорът, са доста показателни за по-късно модифициране на кода и добавяне на каквото искате...