DHT11 là một dạng cảm biến tích hợp đơn giản và khá phổ biến với các ứng dụng dùng vi điều khiển nói chung, và Microbit nói riêng. Để có thể đọc dữ liệu từ nó, mạch Microbit phải gửi tín hiệutruy vấn(query). Khi nhận được tín hiện này, cảm biến mới bắt đầu tính toán và gửi dữ liệu trả về cho mạch Microbit. Cũng chính vì lý do này, nếu như mạch Microbit quên gửi tín hiệu truy vấn, dữ liệu mà nó nhận được là dữ liệu cũ và không hợp lệ.
Hình 5.4:Nguyên lý giao tiếp với DHT11
Mặc dù là cảm biến tích hợp đơn giản bậc nhất, việc lấy dữ liệu từ nó phức tạp hơn chúng ta nghỉ. Để bắt đầu việc giao tiếp, tín hiệu truy vấn từ Microbit gửi tới cảm biến là 1 xung mức thấp, kéo dài trong 18ms. Sau đó, Microbit sẽ nâng tín hiệu lên mức cao và chờ phản hồi từ DHT11. Sau khoảng 40µs, cảm biến sẽ xác nhận việc nhận lệnh bằng xung 80µs ở mức thấp, theo sau là xung 80µs nhưng ở mức cao. Cuối cùng, 40 bit dữ liệu sẽ được gửi lên Microbit, với bit 0 có hình xung là 50µs mức thấp và 25µs ở mức cao, còn bit 1 có hình xung là 50µs mức thấp và 70µs ở mức cao. Bạn đọc cần lưu ý về đơn vị thời gian cho quá trình giao tiếp này, được minh họa ở hình bên trên.
Cuối cùng, sau khi giải mã ra 40 bit dữ liệu, mạch Microbit phải tiếp tục xử lý để lấy ra thông tin cần thiết cho ứng dụng, với 16 bit đầu là thông tin cho độ ẩm, 16 bit tiếp theo là thông tin về nhiệt độ, và 8 bit cuối cùng là thông tin kiểm tra lỗi (40 = 16 + 16 + 8).
Vì tính chất phức tạp của cảm biến tín hiệu, chủ yếu là xử lý tín hiệu xung, đa số các ứng dụng trên Microbit sẽ sử dụng các thư viện lập trình hỗ trợ. Nhờ các thư viện này, việc lập trình sẽ đơn giản hơn rất nhiều và thuận tiện cho bạn đọc để tập trung xây dựng ứng dụng, hơn là việc can thiệp sâu vào hệ thống cho các tác vụ liên quan đến xử lý tín hiệu.