Đo Nhiệt độ Và độ ẩm Dùng Cảm Biến DHT11 Và Arduino - Điện Tử Việt

Facebook Twitter Youtube Đăng nhập Tham gia Đăng nhập Hoan nghênh!đăng nhập vào tài khoản của bạn Tài khoản mật khẩu của bạn Quên mật khẩu? Tạo một tài khoản Đăng kí Hoan nghênh!Đăng ký email của bạn Tài khoản Mật khẩu đã được gửi vào email của bạn. Khôi phục mật khẩu Khởi tạo mật khẩu email của bạn TÌM KIẾM Thứ hai, 23 Tháng mười hai, 2024
  • Đăng nhập/Đăng ký
Facebook Twitter Youtube Đăng nhập Đăng nhập tài khoản Tài khoản mật khẩu của bạn Forgot your password? Get help Tạo một tài khoản Tạo một tài khoản Chào mừng bạn Đăng ký tài khoản email của bạn Tài khoản Mật khẩu đã được gửi vào email của bạn. Khôi phục mật khẩu Khởi tạo mật khẩu email của bạn Mật khẩu đã được gửi vào email của bạn. Điện Tử Việt Trang chủ Ứng dụng Arduino Đo nhiệt độ và độ ẩm dùng cảm biến DHT11 và Arduino
  • Ứng dụng
  • Arduino
  • Kiến thức
  • Cảm biến
FacebookTwitterPinterestWhatsApp Đo nhiệt độ và độ ẩm dùng DHT11 và Arduino

DHT11 là một cảm biến nhiệt độ và độ ẩm, nó xuất tín hiệu số được hiệu chuẩn ở ngõ ra. DHT11 có thể được giao tiếp với bất kỳ vi điều khiển như Arduino, Raspberry Pi, v.v.. và có được kết quả tức thời. DHT11 là cảm biến nhiệt độ và độ ẩm giá rẻ, mang lại độ tin cậy cao và ổn định lâu dài.

Trong dự án này, chúng ta sẽ xây dựng một mạch nhỏ để giao tiếp Arduino với cảm biến nhiệt độ và độ ẩm DHT11. Một trong những ứng dụng chính của kết nối cảm biến DTH11 với Arduino là theo dõi thời tiết.

Chuẩn bị

Phần cứng

Linh kiện Số lượng
Arduino 1
Cảm biến DHT11 1
Màn hình LCD 16×2 1
Biến trở 10kΩ 1
Điện trở 5kΩ 1
Breadboard 1
Dây cắm breadboard

Phần mềm: Arduino IDE

Cảm biến nhiệt độ và độ ẩm DHT11

DHT11 là cảm biến nhiệt độ, độ ẩm rất thông dụng hiện nay vì chi phí rẻ và rất dễ lấy dữ liệu thông qua giao tiếp 1-wire ( sử dụng 1 dây data để truyền dữ liệu). Cảm biến được tích hợp bộ tiền xử lý tín hiệu giúp dữ liệu nhận về được chính xác mà không cần phải qua bất kỳ tính toán nào.

Cảm biến nhiệt độ và độ ẩm DHT11 bao gồm 3 thành phần chính. Một cảm biến độ ẩm loại điện trở, một điện trở nhiệt NTC (Negative Temperature Coefficient – hệ số nhiệt âm) để đo nhiệt độ và một vi điều khiển 8 bit có nhiệm vụ chuyển đổi tín hiệu tương tự từ cảm biến và gửi ra tín hiệu số duy nhất.

Tín hiệu số này có thể được đọc bởi bất kỳ vi điều khiển hoặc bộ vi xử lý nào để phân tích.

Sơ đồ chân

Cảm biến DHT11 gồm 2 chân cấp nguồn (VCC và GND), và 1 chân tín hiệu (DATA). Hiện nay, thông dụng ngoài thị trường có hai loại đóng gói cho DHT11: 3 chân và 4 chân như hình bên dưới

Thông số kĩ thuật

  • Điện áp hoạt động: 3-5VDC.
  • Dải nhiệt độ đo: 0-50°C. Sai số ±2°C.
  • Dải độ ẩm đo: 20-80%. Sai số ±5%.
  • Tần số lấy mẫu: 1Hz(mỗi giây một lần).
  • Để dữ liệu chính xác thì khoảng cách dây từ vi điều khiển đến cảm biến không quá 20m.

Hình ảnh sau đây cho thấy một mạch ứng dụng điển hình cho cảm biến độ ẩm và nhiệt độ DHT11. Cảm biến DHT11 có thể đo giá trị độ ẩm trong khoảng 20 – 90% Độ ẩm tương đối (RH) và nhiệt độ trong khoảng 0 – 500C. Khoảng thời gian lấy mẫu của cảm biến là 1 giây.

Tất cả các cảm biến DHT11 được hiệu chuẩn chính xác trong phòng thí nghiệm và kết quả được lưu trữ trong bộ nhớ.

DHT11 gửi và nhận dữ liệu với một dây tín hiệu DATA, với chuẩn dữ liệu truyền 1 dây này, chúng ta phải đảm bảo sao cho ở chế độ chờ (idle) dây DATA có giá trị ở mức cao, nên trong mạch sử dụng DHT11, dây DATA phải được mắc với một điện trở kéo bên ngoài (thông thường giá trị là 4.7kΩ).

Ngoài ra, chiều dài của cáp có thể dài tới 20 mét. Dữ liệu từ cảm biến bao gồm các bộ phận tích phân và thập phân cho cả độ ẩm tương đối (RH) và nhiệt độ.

Dữ liệu truyền về từ cảm biến DHT11 bao gồm 40 bit và định dạng như sau:

8 bit biểu thị phần nguyên của độ ẩm + 8 bit biểu thị phần thập phân của độ ẩm + 8 bit biểu thị phần nguyên của nhiệt độ + 8 bit biểu thị phần thập phân của nhiệt độ + 8 bit checksum.

Ví dụ:

Xem xét dữ liệu nhận được từ cảm biến DHT11 là

00100101 00000000 00011001 00000000 00111110.

Dữ liệu này có thể được phân tách dựa trên cấu trúc nêu trên như sau

Để kiểm tra xem liệu dữ liệu nhận được có chính xác hay không, chúng ta cần thực hiện một phép tính nhỏ. Cộng tất cả các giá trị nguyên và thập phân của độ ẩm và nhiệt độ và kiểm tra xem tổng có bằng giá trị checksum hay không, tức là dữ liệu 8 bit cuối cùng.

00100101 + 00000000 + 00011001 + 00000000 = 00111110

Giá trị này giống như 8 bit checksum và do đó dữ liệu nhận được là hợp lệ. Bây giờ để có được giá trị độ ẩm và nhiệt độ, chỉ cần chuyển đổi dữ liệu nhị phân thành dữ liệu thập phân.

Độ ẩm = Giá trị thập phân của 00100101 = 37%

Nhiệt độ = Giá trị thập phân của 00011001 = 250C

Sơ đồ mạch

Sơ đồ mạch sau đây cho thấy tất cả các kết nối cần thiết cần thiết để thực hiện dự án này.

Chương trình

#include <DHT.h> #include <LiquidCrystal.h> #define DHTPIN 8 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); LiquidCrystal lcd(7, 6, 5, 4, 3, 2);

byte degree[8] = { 0b00011, 0b00011, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000 };

void setup() { Serial.begin(9600); Serial.println(“Cam bien nhiet do va do am DHT11”); lcd.begin(16, 2); lcd.createChar(1, degree); lcd.clear(); lcd.setCursor(0,0); lcd.print(“Do nhiet do va”); lcd.setCursor(0,1); lcd.print(“do am dung DHT11”); delay(1000); lcd.clear(); lcd.print(“dientuadenz.com”); delay(1000); dht.begin(); }

void loop() { // Chờ một vài giây giữa các lần đo. delay(2000);

// Đọc nhiệt độ và độ ẩm float h = dht.readHumidity(); // Đọc nhiệt độ bằng độ C float t = dht.readTemperature(); // Đọc nhiệt độ theo độ F float f = dht.readTemperature(true);

// Kiểm tra xem có bất kỳ lần đọc nào không thành công và thoát sớm (để thử lại). if (isnan(h) || isnan(t) || isnan(f)) { Serial.println(“Khong doc duoc tu cam bien DHT!”); return; }

float hi = dht.computeHeatIndex(f, h);

lcd.setCursor(0,0); lcd.print(“Nhiet do: “); lcd.print(t); lcd.print(“C”); lcd.setCursor(0,2); lcd.print(“Do am: “); lcd.print(h); lcd.print(” %\t”);

/* In kết quả ra Serial Monitor */

Serial.print(“Nhiet do:”); Serial.print(t); Serial.print(“*C\n”); Serial.print(“Do am:”); Serial.print(h); Serial.print(“%\n”); Serial.println(); delay(1000); }

BÀI VIẾT LIÊN QUANXEM THÊM

Cảm biến cường độ ánh sáng BH1750

Giao tiếp cảm biến cường độ ánh sáng BH1750 với Arduino

Cảm biến ánh sáng

Cảm biến ánh sáng – Hoạt động và ứng dụng

Cân điện tử dùng Arduino và module HX711

Cân điện tử dùng Arduino và module HX711

BÌNH LUẬN Hủy trả lời

Vui lòng nhập bình luận của bạn Vui lòng nhập tên của bạn ở đây Bạn đã nhập một địa chỉ email không chính xác! Vui lòng nhập địa chỉ email của bạn ở đây

Lưu tên, email và trang web của tôi trong trình duyệt này cho lần tiếp theo tôi nhận xét.

Δ

VPS TỐT NHẤT

Chào các bạn! Website này được tạo ra nhằm mục đích chia sẽ miễn phí những kiến thức liên quan đến lĩnh vực điện tử và IoT. Tôi rất mong nhận được những ý kiến đóng góp của bạn đọc để website ngày càng phát triển và được nhiều người biết đến. Cảm ơn sự quan tâm của các bạn.Liên hệ chúng tôi: [email protected] Facebook Twitter Youtube

BÀI VIẾT GẦN ĐÂY

  • Mạch nguồn sử dụng IC LM2596
  • Giao tiếp module điều khiển động cơ bước TMC2208 với Arduino
  • Giới thiệu IC 74LS192 – Hoạt động và ứng dụng
  • Giới thiệu IC 74LS76 – Ứng dụng và hoạt động
  • Top 5 xu hướng công nghệ hàng đầu năm 2023

KÊNH ĐIỆN TỬ VIỆT

© Bản quyền thuộc về Điện Tử Việt

Từ khóa » Cấu Tạo Cảm Biến Nhiệt độ độ ẩm Dht11