Còn đối với nhiệt độ không khí nói riêng thì nó là hiện tượng khi các tia bức xạ của mặt trời đi qua khí quyển, mặt đất hấp thụ năng lượng nhiệt của mặt trời.. Vì vậy, nhóm chúng em đã l
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ - VIỄN THÔNG
BÁO CÁO BÀI TẬP LỚN
ĐO LƯỜNG ĐIỆN TỬ
Đề tài:
Đo nhiệt độ không khí sử dụng cảm biến DHT11
& Xử lý sai số
Nhóm sinh viên thực hiện:
Nguyễn Quang Lê Kiên 20193300
Giảng viên hướng dẫn: PGS TS Nguyễn Thúy Anh
Hà Nội, 2 - 2022
Trang 2LỜI NÓI ĐẦU
Nhiệt độ là tính chất vật lý của vật chất hiểu nôm na là thang đo độ "nóng" và
"lạnh" Nó là biểu hiện của nhiệt năng, có trong mọi vật chất, là nguồn gốc của sự xuất hiện nhiệt, một dòng năng lượng, khi một vật thể tiếp xúc với vật khác lạnh hơn Còn đối với nhiệt độ không khí nói riêng thì nó là hiện tượng khi các tia bức xạ của mặt trời đi qua khí quyển, mặt đất hấp thụ năng lượng nhiệt của mặt trời Sau đó bức xạ lại vào không khí, khiến cho không khí nóng lên
Nhiệt độ là yếu tố quan trọng trong tất cả các lĩnh vực khoa học tự nhiên, bao gồm vật lý, hóa học, khoa học Trái Đất, thiên văn học, y học, sinh học, sinh thái và địa
lý cũng như hầu hết các khía cạnh của cuộc sống hàng ngày
Ngoài việc trau dồi các kiến thức về môn học Đo lường Điện tử qua lý thuyết và bài tập trên lớp, chúng em cũng mong muốn được áp dụng các kiến thức này vào các vấn đề thiết thực và gần gũi trong thực tế Vì vậy, nhóm chúng em đã lựa chọn đề tài:
Đo nhiệt độ không khí sử dụng cảm biến DHT11 và Xử lý sai số làm chủ đề cho bài tập lớn của môn học này
Chúng em xin chân thành cảm ơn cô Nguyễn Thúy Anh đã tận tình giảng dạy và củng cố các kiến thức của môn học để chúng em có thể hoàn thành bài tập lớn này
Trang 3MỤC LỤC
DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT i
DANH MỤC HÌNH VẼ ii
DANH MỤC BẢNG BIỂU iii
TÓM TẮT BÁO CÁO iv
CHƯƠNG 1 TỔNG QUAN VỀ ĐỀ TÀI 1
1.1 Đặt vấn đề 1
1.2 Các cảm biến nhiệt độ có trên thị trường 1
1.2.1 So sánh DHT11 với DHT22 (AM2302) 2
1.3 Phân công công việc trong nhóm 3
1.4 Kết luận chương I 3
CHƯƠNG 2 THIẾT KẾ MẠCH ĐO NHIỆT ĐỘ KHÔNG KHÍ 4
2.1 Chỉ tiêu thiết kế 4
2.2 Sơ đồ chức năng 4
2.3 Tính toán và lựa chọn thiết bị phần cứng 4
2.3.1 Tính toán và lựa chọn khối xử lý trung tâm 4
2.3.2 Tính toán và lựa chọn khối cảm biến 6
2.4 THIẾT KẾ MẠCH ĐIỀU KHIỂN PHẦN CỨNG 11
2.4.1 Tổng kết linh kiện 11
2.4.2 Sơ đồ mắc mạch 11
2.5 THIẾT KẾ CHƯƠNG TRÌNH ĐIỀU KHIỂN THIẾT BỊ 12
2.6 Kết luận chương II 13
CHƯƠNG 3 KẾT QUẢ ĐO VÀ XỬ LÝ SAI SỐ 14
3.1 Kết quả đo 14
3.2 Xử lý sai số đo theo tính toán 14
3.3 Nguyên nhân sai số 15
Trang 43.3.1 Sai số hệ thống 15
3.3.2 Sai số ngẫu nhiên 15
3.4 Khắc phục sai số 16
CHƯƠNG 4 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 17
4.1 Kết quả đạt được 17
4.2 Tự đánh giá 17
4.3 Kết luận 18
4.4 Hướng phát triển trong tương lai 18
TÀI LIỆU THAM KHẢO 19
Trang 5DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT
NTC Negative Temperature Coefficient Hệ số nhiệt độ âm
Trang 6DANH MỤC HÌNH VẼ
Hình 1.1 Nhiệt độ là một đại lượng vật lý biểu lộ nóng và lạnh 1
Hình 1.2 Bảng so sánh tổng hợp các loại cảm biến nhiệt độ phổ biến trên thị trường 2
Hình 2.1 Sơ đồ khối chức năng của mạch 4
Hình 2.2 Hình ảnh và sơ đồ chân của VĐK 5
Hình 2.3 Cảm biến DHT11 6
Hình 2.4 Cấu tạo chân cảm biến DHT11 6
Hình 2.5 Đồ thị thể hiện sự phụ thuộc trở kháng với nhiệt độ 8
Hình 2.6 Sơ đồ kết nối giữa vi xử lý và cảm biến DHT11 9
Hình 2.7 MCU gửi tín hiệu Start và DHT phản hồi 9
Hình 2.8 Data "0" Indication 10
Hình 2.9 Data "1" Indication 11
Hình 2.10 Sơ đồ kết nối giữa ESP32 và Module cảm biến DHT11 12
Hình 2.11 Lưu đồ thuật toán của chương trình 12
Hình 4.1 Ảnh mạch thật của nhóm 17
Hình 4.2 Kết quả hiển thị 17
Trang 7DANH MỤC BẢNG BIỂU
Bảng 1.1 Bảng phân công công việc 3Bảng 2.1 Bảng mô tả các chân của cảm biến DHT11 7Bảng 2.2 Tổng kết linh kiện 11Bảng 2.3 Các file, hàm được sử dụng trong chương trình chính và chức năng của chúng 13Bảng 3.1 Bảng kết quả đo 14Bảng 3.2 Bảng tính toán sai số dư 14
Trang 8TÓM TẮT BÁO CÁO
Báo cáo thể hiện quá trình nghiên cứu và thiết kế mạch đo nhiệt độ không khí sử dụng cảm biến DHT11 cũng như xử lý số liệu đo được của nhóm, bao gồm 4 phần:
− Phần I: Tổng quan về đề tài
− Phần II: Thiết kế mạch đo nhiệt độ không khí
− Phần III: Kết quả đo và xử lý sai số
− Phần IV: Kết luận và hướng phát triển
Trang 9CHƯƠNG 1 TỔNG QUAN VỀ ĐỀ TÀI
1.1 Đặt vấn đề
Nhiệt độ là một đại lượng vật lý biểu lộ nóng và lạnh Nó là một phép đo tỷ lệ của động năng trung bình của những vận động bất kể của những hạt cấu thành của vật chất (như nguyên tử và phân tử) trong một hệ
Hình 1.1 Nhiệt độ là một đại lượng vật lý biểu lộ nóng và lạnh
Nhiệt độ là yếu tố quan trọng trong tất cả các lĩnh vực khoa học tự nhiên, bao gồm vật
lý, hóa học, khoa học Trái Đất, thiên văn học, y học, sinh học, sinh thái và địa lý cũng như hầu hết các khía cạnh của cuộc sống hàng ngày Chính vì tầm quan trọng của nó
và cũng để đáp ứng yêu cầu của bài tập lớn là tiến hành đo một đại lượng vật lý nên nhóm em quyết định chọn đề tài: “Đo nhiệt độ không khí sử dụng cảm biến DHT11 và
Xử lý sai số” trong bài tập lớn
1.2 Các cảm biến nhiệt độ có trên thị trường
Có nhiều loại cảm biến nhiệt độ tương thích với Arduino, ESP32, ESP8266 Vì vậy, có thể khó để chọn cảm biến phù hợp nhất cho bài tập lớn này Dưới đây, nhóm em sẽ so sánh 6 cảm biến nhiệt độ được sử dụng rộng rãi: DHT11, DHT22, LM35, DS18B20, BME280 và BMP180
Trang 10Chúng ta sẽ so sánh các cảm biến về giao thức truyền thông, phạm vi nhiệt độ, độ chính xác, tính dễ sử dụng và nhiều thứ khác nữa.
Để so sánh nhanh các cảm biến, các bạn có thể tham khảo hình Hình 1.2 là bảng so sánh tổng hợp bên dưới với các thông tin quan trọng nhất khi chọn cảm biến nhiệt độ,
đó là: giao thức truyền thông, điện áp nguồn, phạm vi nhiệt độ và độ chính xác
Hình 1.2 Bảng so sánh tổng hợp các loại cảm biến nhiệt độ phổ biến trên thị trường1.2.1 So sánh DHT11 với DHT22 (AM2302)
DHT11 và DHT22 (AM2302) là cảm biến nhiệt độ kỹ thuật số đo nhiệt độ và độ ẩm Chúng trông rất giống nhau và hoạt động theo cùng một cách, nhưng có thông số kỹ thuật khác nhau
Cảm biến DHT22 có độ phân giải tốt hơn và phạm vi đo nhiệt độ và độ ẩm rộng hơn Tuy nhiên, nó đắt hơn một chút và bạn chỉ có thể yêu cầu đọc với khoảng thời gian 2 giây
DHT11 rẻ hơn một chút, có phạm vi nhỏ hơn và kém chính xác hơn Nhưng bạn có thể nhận được các chỉ số cảm biến mỗi giây
Mặc dù có sự khác biệt nhưng cả hai hoạt động theo cách tương tự và bạn có thể sử dụng cùng một code để đọc nhiệt độ và độ ẩm
Trang 111.3 Phân công công việc trong nhóm
Bảng 1.1 dưới đây phân công công việc cho từng thành viên trong nhóm để triển khai bài tập lớn một cách hiệu quả
Bảng 1.1 Bảng phân công công việc
Nguyễn Quang Lê Kiên 20193300 Lý thuyết, phân công công việc,
viết báo cáo, chỉnh sửa slide Mai Trần Thuyết 20193319 Lý thuyết, tính toán sai số, lắp
mạch, làm slide Trần Hoàng Kiên 20193302 Lý thuyết, tính toán sai số, lắp
mạch, chỉnh sửa slide
1.4 Kết luận chương I
Trên đây chúng em đã giới thiệu sơ bộ về mục đích của mạch cảm biến nhiệt độ không khí, các loại cảm biến nhiệt độ phổ biến trên thị trường cũng như là phân công công việc trong nhóm để triển khai công việc Hi vọng chương đầu tiên này đã đem lại cho độc giả những cái nhìn tống quan và những hiểu biết cơ bản về mạch mà nhóm em muốn xây dựng Tiếp theo chương I, sau đây nhóm em sẽ trình bày chi tiết về những yêu cầu đặt ra và phương pháp thiết kế chi tiết cho mạch của mình
Trang 12CHƯƠNG 2 THIẾT KẾ MẠCH ĐO NHIỆT ĐỘ KHÔNG KHÍ
2.1 Chỉ tiêu thiết kế
Nhóm em hy vọng sẽ thiết kế mạch được thiết bị đạt kết quả sau:
− Hiếu được cơ chế đo nhiệt độ của cảm biến
− Hạn chế được tối đa sai số
− Xử lý tốt kết quả đầu ra với các kiến thức đã được học
2.2 Sơ đồ chức năng
Hình 2.1 Sơ đồ khối chức năng của mạch Chức năng từng khối:
− Khối cảm biến: Đo nhiệt độ không khí
− Khối xử lý trung tâm: Xử lý thông tin, điều khiển toàn bộ hệ thống
− Khối hiển thị: Hiển thị thông tin theo lệnh từ khối xử lý trung tâm
2.3 Tính toán và lựa chọn thiết bị phần cứng
2.3.1 Tính toán và lựa chọn khối xử lý trung tâm
Nhóm chúng em quyết định lựa chọn vi điều khiển ESP32 vì trong môn học vi xử
lý, bọn em đã đang và sẽ được dạy về nó ESP32 là một series các vi điều khiển trên một vi mạch giá rẻ, năng lượng thấp có hỗ trợ WiFi và dual-mode Bluetooth (tạm dịch: Bluetooth chế độ kép) Dòng ESP32 sử dụng bộ vi xử lý Tensilica Xtensa LX6 ở cả
Trang 13hai biến thể lõi kép và lõi đơn, và bao gồm các công tắc antenna tích hợp, RF balun,
bộ khuếch đại công suất, bộ khuếch đại thu nhiễu thấp, bộ lọc và module quản lý năng lượng
2.3.1.1 Thông số kỹ thuật:
− Bộ vi xử lý LX6 32-bit lõi đơn hoặc lõi kép với xung nhịp lên đến 240 MHz
− 520 KB SRAM, 448 KB ROM và 16 KB SRAM RTC
− Hỗ trợ kết nối Wi-Fi 802.11 b / g / n với tốc độ lên đến 150 Mbps
− Hỗ trợ cho cả thông số kỹ thuật Bluetooth v4.2 và BLE cổ điển
− 34 GPIO có thể lập trình
− 18 kênh SAR ADC 12 bit và 2 kênh DAC 8 bit
− Kết nối nối tiếp bao gồm 4 x SPI, 2 x I2C, 2 x I2S, 3 x UART
− Ethernet MAC cho giao tiếp mạng LAN vật lý (yêu cầu PHY bên ngoài)
− 1 bộ điều khiển host cho SD / SDIO / MMC và 1 bộ điều khiển slave cho SDIO / SPI
− Động cơ PWM và 16 kênh LED PWM
− Khởi động an toàn và mã hóa Flash
− Tăng tốc phần cứng mật mã cho AES, Hash (SHA-2), RSA, ECC và RNG
Hình 2.2 Hình ảnh và sơ đồ chân của VĐK
Trang 142.3.2 Tính toán và lựa chọn khối cảm biến
Qua tìm hiểu các sản phẩm có sẵn trên thị trường, chúng em quyết định lựa chọn cảm biến DHT11 như Hình 2.3 vì ưu điểm là cảm biến kỹ thuật số giá rẻ để cảm nhận nhiệt
độ và độ ẩm Cảm biến này có thể dễ dàng giao tiếp với bất kỳ bộ vi điều khiển vi nào như Arduino, Raspberry Pi, để đo độ ẩm và nhiệt độ ngay lập tức
Hình 2.3 Cảm biến DHT11 2.3.2.1 Cấu tạo cảm biến DHT11
a) Sơ đồ chân DHT11
DHT11 có cấu tạo 4 chân như Hình 2.4 dưới đây
Hình 2.4 Cấu tạo chân cảm biến DHT11
Và Bảng 2.1 dưới đây mô tả các chân của cảm biến DHT11
Trang 15Bảng 2.1 Bảng mô tả các chân của cảm biến DHT11
2 Data Đầu ra cả nhiệt độ và độ ẩm thông qua dữ liệu nối tiếp
− Phạm vi cảm biến nhiệt độ: 0°C ~ 50°C, sai số ±2°C
− Tần số lấy mẫu tối đa: 1Hz (1 giây 1 lần)
− Tín hiệu đầu ra kỹ thuật số
− Độ phân giải để đo nhiệt độ là 8-bit, 1ºC
− Độ phân giải là 1% RH, nó không thể nhận các biến thể dưới mức đó
là hệ số nhiệt độ âm, có nghĩa là điện trở giảm khi nhiệt độ tăng
Trang 16Hình 2.5 Đồ thị thể hiện sự phụ thuộc trở kháng với nhiệt độ
Hiểu một cách đơn giản, điện trở nhiệt hoạt động để cản trở dòng điện Nếu vật dẫn điện tốt thì điện trở sẽ nhỏ và ngược lại, vật dẫn điện kém thì điện trở sẽ lớn Đặc biệt, nếu vật cách điện thì điện trở sẽ vô cùng lớn Điện trở nhiệt NTC hay thermistor nói chung sẽ cản trở dòng điện của một vật dẫn điện và sau đó chuyển từ điện năng sang nhiệt năng
Giả sử quan hệ giữa độ lớn của trở kháng và nhiệt độ tuyến tính với nhau, khi đó ta có công thức (2.1):
.
Trong đó:
− ΔR là lượng thay đổi của trở kháng
− Δt là sự thay đổi của nhiệt độ
− k là hệ số nhiệt của điện trở
Với điện trở NTC, điện trở sẽ giảm theo nhiệt độ, do đó hệ số k sẽ có giá trị âm Ta cần lưu ý điều này để phân biệt giữa điện trở nhiệt NTC và PTC PTC cũng là một loại điện trở nhiệt nhưng nó sẽ tăng theo nhiệt độ, do đó hệ số k của PTC có giá trị dương Ngoài ra, ta cũng cần lưu ý, điện trở NTC chỉ tuyến tính trong khoảng nhiệt độ nhất định 50 - 150D
Trang 17Giao tiếp với vi xử lý
Sơ đồ kết nối vi xử lý như Hình 2.6:
Hình 2.6 Sơ đồ kết nối giữa vi xử lý và cảm biến DHT11
Để có thể giao tiếp với DHT11 theo chuẩn 1 chân vi xử lý thực hiện theo 2 bước:
− Gửi tin hiệu muốn đo (Start) tới DHT11, sau đó DHT11 xác nhận lại
− Khi đã giao tiếp được với DHT11, Cảm biến sẽ gửi lại 5 byte dữ liệu và nhiệt
độ đo được
Bước 1: Gửi tín hiệu Start
Hình 2.7 MCU gửi tín hiệu Start và DHT phản hồi
− MCU thiết lập chân DATA là Output, kéo chân DATA xuống 0 trong khoảng thời gian >18ms Khi đó DHT11 sẽ hiểu MCU muốn đo giá trị nhiệt độ và độ
ẩm
− MCU đưa chân DATA lên 1, sau đó thiết lập lại là chân đầu vào
Trang 18− Sau khoảng 20-40us, DHT11 sẽ kéo chân DATA xuống thấp Nếu >40us mà chân DATA ko được kéo xuống thấp nghĩa là ko giao tiếp được với DHT11
− Chân DATA sẽ ở mức thấp 80us sau đó nó được DHT11 kéo nên cao trong 80us Bằng việc giám sát chân DATA, MCU có thể biết được có giao tiếp được với DHT11 ko Nếu tín hiệu đo được DHT11 lên cao, khi đó hoàn thiện quá trình giao tiếp của MCU với DHT
Bước 2: Đọc giá trị trên DHT11
− DHT11 sẽ trả giá trị nhiệt độ và độ ẩm về dưới dạng 5 byte Trong đó: Byte 1: giá trị phần nguyên của độ ẩm (RH%)
Byte 2: giá trị phần thập phân của độ ẩm (RH%)
Byte 3: giá trị phần nguyên của nhiệt độ (TC)
Byte 4 : giá trị phần thập phân của nhiệt độ (TC)
Byte 5 : kiểm tra tổng ( Nếu Byte 5 = (8 bit) (Byte1 +Byte2 +Byte3 + Byte4) thì giá trị độ ẩm và nhiệt độ là chính xác, nếu sai thì kết quả đo không có nghĩa )
Trang 19Hình 2.9 Data "1" Indication Sau khi tín hiệu được đưa về 0, ta đợi chân DATA của MCU được DHT11 kéo lên 1 Nếu chân DATA là 1 trong khoảng 26-28 us thì là 0, còn nếu tồn tại 70us là 1 Do đó trong lập trình ta bắt sườn lên của chân DATA, sau đó delay 50us Nếu giá trị đo được
là 0 thì ta đọc được bit 0, nếu giá trị đo được là 1 thì giá trị đo được là 1 Cứ như thế ta đọc các bit tiếp theo
2.4 THIẾT KẾ MẠCH ĐIỀU KHIỂN PHẦN CỨNG
2.4.1 Tổng kết linh kiện
Các linh kiện được nhóm em thiết kế và sử dụng được thể hiện ở Bảng 2.2 dưới đây
Bảng 2.2 Tổng kết linh kiện
Trang 20Hình 2.10 Sơ đồ kết nối giữa ESP32 và Module cảm biến DHT11 2.5 THIẾT KẾ CHƯƠNG TRÌNH ĐIỀU KHIỂN THIẾT BỊ
Lưu đồ thuật toán nhóm em triển khai như Hình 2.11 dưới đây
Hình 2.11 Lưu đồ thuật toán của chương trình
Chương trình nạp vào vi điều khiển được viết bằng ngôn ngữ C, được biên dịch qua IDF Framework Dựa vào các hàm của hãng đã có sẵn, cũng như tham khảo trên mạng
Trang 21Internet nhóm em đã viết ra được các hàm sử dụng trong chương trình như Bảng 2.3 sau:
Bảng 2.3 Các file, hàm được sử dụng trong chương trình chính và chức năng của chúng
(gpio_num_t)gpio_num,&humidity,
&temperature);
Đọc giá trị thực của nhiệt độ từ cảm biến DHT11
xTaskCreate(&http_get_task,
"http get task", 4096, NULL, 5,
NULL);
Thực hiện hàm http_get_task()
2.6 Kết luận chương II
Chương 2 nhóm em đã trình bày về cách thiết kế mạch đo nhiệt độ không khí sử dụng cảm biến DHT11 từ phần cứng đến phần mềm Hy vọng độc giả có thể hiểu được phương án thiết kế của nhóm em
Trang 22CHƯƠNG 3 KẾT QUẢ ĐO VÀ XỬ LÝ SAI SỐ
3.2 Xử lý sai số đo theo tính toán
Theo bảng kết quả, nhóm em tính ra được nhiệt độ tương đối trung bình với n=20
119.975
n i i
t t
Sai số dư:
Bảng dưới đây thể hiện sai số dư của từng lần đo
Bảng 3.2 Bảng tính toán sai số dư
Trang 23Nhận thấy i 6 d nên không có giá trị nào bị sai trong quá trình đo
Sai số trung bình phương:
2
1
n i i
Cảm biến DHT11 có sai số về nhiệt độ từ : 2 C
3.3.2 Sai số ngẫu nhiên
Công thức dươi đây thể hiện sự phụ thuộc của điện trở kim loại vào nhiệt độ theo hàm bậc nhất