DHT11 sử dụng giao thức 1-wire tín hiệu số
Dữ liệu gồm 40 bit:
8 bit độ ẩm nguyên
8 bit độ ẩm thập phân
8 bit nhiệt độ nguyên
8 bit nhiệt độ thập phân
8 bit checksum
MCU gửi tín hiệu START:
Kéo DATA xuống thấp trong 18ms
Kéo lên cao trong 20-40µs
DHT11 phản hồi:
Phản hồi ban đầu
Kéo LOW ~80µs
Sau đó HIGH ~80µs
Mỗi bit dữ liệu (40 bit):
Bắt đầu bằng LOW 50µs
Sau đó:
Bit 0: HIGH ~26-28µs
Bit 1: HIGH ~70µs cao
Ghi chú
Đảm bảo dây nối DATA có điện trở kéo lên (pull-up) 10kΩ (module 3 chân thường đã có sẵn).
Tốc độ đọc dữ liệu: Tối đa 1 lần / giây (delay 1s trong loop()).
Hàm micros() có độ phân giải đủ để phân biệt xung 26µs và 70µs.
Lập trình dht11 bằng Arduino IDE (Không dùng thư viện)