DHT22 (AM2302) нь өндөр нарийвчлалтай температурын мэдрэгч модуль бөгөөд Arduino-гийн дижитал IO хөлд холбогдож, тохируулга хийж температур ба чийгшлийн утгыг өгдөг. DHT22 нь температурыг Цельсийн хэмжигдэхүүнээр гаргана. Arduino-гийн програм нь уг температурыг Фаренгейт, Кельвин, Ранкины хэмжигдэхүүнд хөрвүүлж, сериал портоор дамжуулан ашиглаж болно.
Эд анги ба бүрдэл хэсгүүд
-
Arduino Uno самбар = 1 ширхэг
-
DHT22 (AM2302) = 1 ширхэг
-
10 кОм эсэргүүцэл = 1 ширхэг
.
Хэрэгтэй сангуудыг суулгах заавар:
Arduino IDE нээнэ
Sketch → Include Library → Manage Libraries…
Search хэсэгт:
Adafruit Unified Sensor
Adafruit Unified Sensor → Install дарна
Дараа нь:
DHT sensor library by Adafruit→ Install
Arduino IDE-г restart хийнэ
Дахин compile хийнэ6
DHT22 дижитал температур / чийгшлийн мэдрэгч нь –40°C-аас +80°C хүртэлх температурыг, 0%-аас 100% хүртэлх чийгшлийг хэмжинэ. Температурын нарийвчлал нь хамгийн ихдээ ±0.1°C байна.
DHT22-ын өгөгдлийн (data) хөл нь Arduino-гийн дижитал IO хөлд холбогдож, 10 кОм эсэргүүцлээр дамжуулан Vcc рүү татагдсан (pull-up) байна. DHT22 (AM2302) нь калибрлагдсан дижитал өгөгдлийн дохио гаргана.
Энэ загварын DHT22 мэдрэгч бүр температурыг нөхөн тооцоолсон (temperature compensated) бөгөөд өндөр нарийвчлалтай калибрлах камерт калибрлагдсан байдаг. Калибрлах коэффициент нь дотоод OTP санах ойд хадгалагдсан.
Мэдрэгч нь өгөгдлийг алсын зайд дамжуулах боломжтой. Arduino нь температурыг болон чийгшлийг 2 секундийн интервалтай уншиж, сериал порт руу илгээнэ.
Цельсийн температурыг бусад хэмжигдэхүүнд хөрвүүлэх томьёонууд:
Фаренгейт: T(°F) = T(°C) × 9/5 + 32
Кельвин: T(K) = T(°C) + 273.15
Ранкин: T(°R) = (T(°C) + 273.15) × 9/5
Алхам 2: Програм хангамж
Оруулсан DHT сан (library) нь мэдрэгчээс өгөгдөл унших интерфэйсийг хангана.
Arduino нь температур ба чийгшлийн утгуудыг 2 секунд тутамд уншина.
Температур нь эхлээд Цельсийн хэлбэрээр уншигдаж, дараа нь програмын тусламжтайгаар Фаренгейт, Кельвин, Ранкин хэлбэрт хөрвүүлэгдэнэ.
Бүх дөрвөн хэлбэрийн температурын утгыг сериал порт руу илгээж, сериал терминал дээр хэвлэн харуулна.
Код:
#include <DHT.h> //San g suulgah
//holbolt
#define DHTPIN 2 // 2 dugaar holond holbono
#define DHTTYPE DHT22 // DHT22
DHT dht(DHTPIN, DHTTYPE); // Initialize DHT sensor for normal 16mhz Arduino
//Variables
float hum; //chiigshiliig hum gesen huvisagchid hadgalah
float temp; //temperaturiig temp gesen huvisagchid hadgalah
void setup()
{
Serial.begin(9600);
Serial.println("DHT22 medregchiig shalgah");
dht.begin();
}
void loop()
{
float converted = 0.00;
//chiigshil ba temperaturiin utgiig unshij huvisagchid onooh
hum = dht.readHumidity();
temp= dht.readTemperature();
Serial.print("Celsius = ");Serial.print(temp);
//Print degree symbol
Serial.write(176);Serial.println("C");
Serial.print("Humidity =");
Serial.println(hum);
//2000mS zaitai temperatur bolon chiigshiliig damjuulna
delay(2000);
}
Эсвэл
#include "DHT.h" #define DHTPIN 2 //Pin where is the sensor connecte
#define DHTTYPE DHT22 // Sensor DHT22
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
Serial.println("Loading...");
dht.begin();
}
void loop() {
delay(2000);
float h = dht.readHumidity(); //Reading the humidity
float t = dht.readTemperature(); //Reading the temperature in Celsius degree
float f = dht.readTemperature(true); //Reading the temperature in Fahrenheit degrees
//--------Sending the reading through Serial port-------------
Serial.print("Humidity ");
Serial.print(h);
Serial.print(" %t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.print(" *C ");
Serial.print(f);
Serial.println(" *F");
}