Độ ẩm và nhiệt độ là các thông số phổ biến để đo điều kiện môi trường. Trong dự án dựa trên Arduino này, chúng tôi sẽ đo nhiệt độ và độ ẩm xung quanh và hiển thị nó trên màn hình LCD 16x2. Cảm biến nhiệt độ và độ ẩm kết hợp DHT11 được sử dụng với Arduino una để phát triển nhiệt kế đo độ C và dự án đo độ ẩm tỷ lệ phần trăm này. Trong một dự án trước đây của tôi, tôi cũng đã phát triển một nhiệt kế kỹ thuật số sử dụng cảm biến nhiệt độ LM35.
Dự án này bao gồm ba phần - một phần cảm nhận độ ẩm và nhiệt độ bằng cách sử dụng cảm biến độ ẩm và nhiệt độ DHT11. Phần thứ hai đọc đầu ra của mô-đun DHTsensor và trích xuất các giá trị nhiệt độ và độ ẩm thành một con số phù hợp trong thang phần trăm và độ C. Và phần thứ ba của hệ thống hiển thị độ ẩm và nhiệt độ trên màn hình LCD.
Hoạt động của dự án này dựa trên giao tiếp nối tiếp dây đơn. Đầu tiên arduino gửi tín hiệu khởi động đến mô-đun DHT và sau đó DHT đưa ra tín hiệu phản hồi chứa dữ liệu nhiệt độ và độ ẩm. Arduino thu thập và trích xuất trong hai phần một là độ ẩm và thứ hai là nhiệt độ và sau đó gửi chúng đến màn hình LCD 16x2.
Ở đây trong dự án này, chúng tôi đã sử dụng một mô-đun cảm biến là DHT11. Mô-đun này có phức hợp độ ẩm và nhiệt độ với đầu ra tín hiệu kỹ thuật số đã được hiệu chuẩn có nghĩa là mô-đun cảm biến DHT11 là mô-đun kết hợp để cảm nhận độ ẩm và nhiệt độ, cung cấp tín hiệu đầu ra kỹ thuật số đã hiệu chuẩn. DHT11 cung cấp cho chúng ta giá trị độ ẩm và nhiệt độ rất chính xác và đảm bảo độ tin cậy cao và ổn định lâu dài. Cảm biến này có thành phần đo độ ẩm kiểu điện trở và thành phần đo nhiệt độ kiểu NTC với bộ vi điều khiển 8 bit có sẵn có phản ứng nhanh và hiệu quả về chi phí và có sẵn trong gói hàng đơn 4 chân.
Mô-đun DHT11 hoạt động trên giao tiếp nối tiếp tức là giao tiếp dây đơn. Mô-đun này gửi dữ liệu dưới dạng truyền xung của khoảng thời gian cụ thể. Trước khi gửi dữ liệu đến arduino, nó cần một số lệnh khởi tạo với thời gian trễ. Và toàn bộ quá trình thời gian là khoảng 4ms. Quá trình truyền dữ liệu hoàn chỉnh là 40-bit và định dạng dữ liệu của quá trình này được đưa ra dưới đây:
Dữ liệu RH tích phân 8 bit + Dữ liệu RH thập phân 8 bit + Dữ liệu T tích phân 8 bit + Dữ liệu T thập phân 8 bit + Tổng kiểm tra 8 bit.
Hoàn thành quy trình
Trước hết arduino gửi tín hiệu bắt đầu từ cao xuống thấp đến DHT11 với độ trễ 18µs để đảm bảo DHT phát hiện. Và sau đó arduino kéo dòng dữ liệu lên và đợi phản hồi của DHT trong 20-40µs. Khi DHT phát hiện tín hiệu khởi động, nó sẽ gửi một tín hiệu đáp ứng mức điện áp thấp đến arduino với thời gian trễ khoảng 80µs. Và sau đó bộ điều khiển DHT kéo dòng dữ liệu lên và giữ nó trong 80µs để DHT sắp xếp việc gửi dữ liệu.
Khi bus dữ liệu ở mức điện áp thấp, có nghĩa là DHT11 đang gửi tín hiệu phản hồi. Sau khi hoàn tất, DHT lại thực hiện kéo lên đường dữ liệu trong 80µs để chuẩn bị truyền dữ liệu.
Định dạng dữ liệu được DHT gửi đến arduino cho mỗi bit bắt đầu với mức điện áp thấp 50µs và độ dài của tín hiệu mức điện áp cao xác định xem bit dữ liệu là “0” hay “1”.
Một điều quan trọng là đảm bảo giá trị điện trở kéo lên vì nếu chúng ta đặt cảm biến DHT ở khoảng cách <20 mét, thì nên kéo điện trở lên 5k. Nếu đặt DHT dài hơn 20m thì dùng điện trở kéo lên có giá trị thích hợp.
Sơ đồ mạch và giải thích
Màn hình tinh thể lỏng được sử dụng để hiển thị nhiệt độ và độ ẩm được kết nối trực tiếp với arduino ở chế độ 4 bit. Các chân của LCD cụ thể là RS, EN, D4, D5, D6 và D7 được kết nối với chân số 2, 3, 4, 5, 6 và 7. Và một mô-đun cảm biến DHT11 cũng được kết nối với chân số 12 của arduino bằng một Điện trở kéo lên 5k.
Mô tả lập trình
Trong lập trình, chúng ta sẽ sử dụng các thư viện được tạo sẵn cho cảm biến DHT11 và mô-đun màn hình LCD.
Sau đó, chúng tôi đã xác định các chân cho LCD và cảm biến DHT và khởi tạo tất cả những thứ trong thiết lập. Sau đó, trong một vòng lặp bằng cách sử dụng hàm dht đọc cảm biến DHT và sau đó sử dụng một số hàm dht, chúng tôi trích xuất độ ẩm và nhiệt độ và hiển thị chúng trên màn hình LCD.
Ở đây biểu tượng độ được tạo bằng cách sử dụng phương pháp ký tự tùy chỉnh.