Mỗi lần đọc gồm 40 bit:
16 bit độ ẩm (humidity)
16 bit nhiệt độ (temperature)
8 bit checksum (kiểm tra)
Giao tiếp 1 dây (single-wire), do đó cần thao tác mức logic chính xác bằng digitalWrite và digitalRead.
Mỗi bit:
Bắt đầu bằng xung LOW 50µs
Nếu là 0 ➜ HIGH ~26-28µs
Nếu là 1 ➜ HIGH ~70µs
Lưu ý
Đảm bảo có điện trở kéo lên (pull-up) 10kΩ giữa chân dữ liệu và Vcc.
Thời gian đọc cần chính xác micro giây → dùng micros() và delayMicroseconds() thay vì delay().
DHT22 cần ít nhất 2 giây giữa mỗi lần đọc.
Lập trình dht22 bằng Arduino IDE (Không dùng thư viện)