You are on page 1of 22

BỘ THÔNG TIN VÀ TRUYỀN THÔNG

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

---------------------------------------

BÀI TẬP NHÓM: INTERNET VÀ CÁC GIAO THỨC

Nghiên cứu cảm biến nhiệt độ, độ ẩm DHT11 với


Arduino.

NHÓM 01 LỚP 03
GV HƯỚNG DẪN: ThS. HOÀNG THỊ THU
1. Phạm Vũ Dũng-B19DCVT58
2. Đoàn Quốc Khánh -B19DCVT198
3. Nguyễn Quốc Khánh-B19DCVT200
4. Phạm Tùng Lâm- B19DCVT216
5. Hà Quang Long-B19DCVT228

HÀ NỘI - 2022

ii
Lời nói đầu

Ngày nay cùng với sự phát triển nhanh chóng của khoa học kỹ thuật thì các lĩnh vực
ứng dụng kỹ thuật công nghệ cao ngày càng phát triển và kỹ thuật IOT đã và đang
khẳng định vai trò to lớn của mình.

Lĩnh vực ứng dụng IoT đang ngày càng lớn mạnh và được ưa chuộng vì tính đa dạng,
chính xác và những ưu điểm vượt trội so với kỹ thuật tương tự. Chính vì vậy mà trong
những năm gần đây, trong chương trình giảng dạy tại các trường đại học kỹ thuật các
môn học về IoT luôn được chú trọng chuyên sâu.

Hòa mình cùng sự phát triển mạnh mẽ đó, Học viện Công nghệ Bưu Chính viễn thông
đã luôn nâng cao trang thiết bị học tập, cập nhật chương trình giảng dạy để sinh viên
có thể luôn nắm bắt được những kiến thức tốt nhất đáp ứng cho nhu cầu học tập và xã
hội. Những môn học về IoT đã được ứng dụng rất nhiều. Bên cạnh đó nhà trường còn
tạo mọi điều kiện để sinh viên có thể làm quen với các trang thiết bị qua các mô hình
học tập.

Ngoài ra nhà trường còn hướng dẫn cho các sinh viên làm các đồ án môn học như là
các bài tập lớn nhằm giúp cho sinh viên phát huy khả năng sáng tạo, tự nghiên cứu và
trình bày khoa học. Dưới đây là đề tài nghiên cứu cảm biến nhiệt độ, độ ẩm DHT11
với Arduino.

Em xin chân thành cảm ơn cô Hoàng Thị Thu đã tận tình giúp đỡ và hướng dẫn để
nhóm em hoàn thành đề tài nghiên cứu này. Em cũng xin gửi lời cảm ơn tới các thầy
cô đã giảng dạy và giúp đỡ em rất nhiều trong quá trình học tập.

i
Bảng phân công công việc nhóm

STT STT Họ và tên Nội dung chính Công việc chung Ghi chú
trong trong sinh viên
nhóm lớp
1 32 Phạm Vũ Chương 2: Làm mục lục, danh
Dũng 2.2 Quy trình giao mục thuật ngữ viết
tiếp tắt, danh mục hình
ảnh, danh mục bảng
biểu (ở đầu quyển).
2 12 Đoàn Quốc Chương 1:
Khánh 1.1 Giới thiệu về
DHT11
1.2 Mô hình sơ đồ
DHT11
1.3 Giới thiệu về
Arduino nano
1.4 Kết luận
chương
3 22 Nguyễn Chương 2: Soạn thảo: Sắp xếp
Quốc Khánh 2.2 Quy trình giao và thống nhất hình
tiếp ảnh, bảng biểu
4 2 Phạm Tùng Chương 3: Viết lời nói đầu Nhóm
Lâm 3.1 Mô hình bài Thống nhất mẫu trưởng
toán word và slide. Làm
3.2 Lập trình slide, sản phẩm,
3.3 Kết luận thuyết trình, và sửa
chương lỗi nội dung.

5 42 Hà Quang Chương 2: Sắp xếp tài liệu tham


Long 2.1 Nguồn và khảo (cuối quyển),
chân kết nối phụ trách làm bìa, in
2.3 Các đặc tính quyển.
về nguồn
2.4 Kết luận

ii
chương

iii
MỤC LỤC
Chương I. TỔNG QUAN VỀ DHT11 CẢM BIẾN ĐỘ ẨM, NHIỆT ĐỘ VÀ
ARDUINO NANO.......................................................................................................8
1. Giới thiệu về DHT11........................................................................................8
1.1. Một số Ưu nhược điểm DHT11.....................................................................8
1.2. Tiêu chí............................................................................................................ 9
2. Giới thiệu về Arduino nano.............................................................................9
2.1. Sơ đồ chân của Arduino-nano.......................................................................9
3. Kết luận chương.............................................................................................10
Chương II. Mô hình DHT11.....................................................................................11
1. Nguồn và chân kết nối....................................................................................11
2. Quy trình giao tiếp.........................................................................................13
2.1. Tổng quan về quy trình giao tiếp................................................................13
2.2. MCU gửi tín hiệu bắt đầu cho DHT...........................................................15
2.3. DHT phản hồi về MCU................................................................................15
3. Các đặc tính về nguồn....................................................................................17
4. Kết luận chương.............................................................................................17
Chương III. ỨNG DỤNG DHT11............................................................................17
1. Sơ đồ kết nối...................................................................................................17
2. Lập trình cho arduino....................................................................................18
2.1. Arduino IDE.................................................................................................18
2.2. Viết chương trình cho Arduino và DHT.....................................................20
3. Kết quả mô phỏng..........................................................................................21
4. Kết luận chương 3............................................................................................22

iv
THUẬT NGỮ VIẾT TẮT

Từ viết tắt Tiếng Anh Tiếng Việt

Negative Temperature
NTC Điện trở nhiệt
Coefficient

OTP One time password Mật khẩu một lần

GND Ground Chân tiếp đất

RST Reset Đặt lại

TX/RX Transmiter/Receiver Chân điều khiển/nhận tín hiệu

TTL Transistor-transistor logic Cổng logic

PWM Pulse Width Modulation Xung điều chế tín hiệu

SPI Serial Peripheral Interface Giao diện ngoại vi nối tiếp

LED  Light-Emitting-Diode Đi-ốt phát quang

NC No connection Không có kết nối

MCU Multipoint Control Unit  Thiết bị điều khiển đa điểm

Integrated Development
IDE Môi trường thiết kế hợp nhất
Environment

Nhóm 1 5
DANH MỤC HÌNH VẼ
1.1 Sơ đồ chân của Arduino-nano
2.1 Mô hình DHT
2.2 Hình module và sensor
2.3 Sơ đồ quy giao tiếp giữa DHT và MCU
2.4 Sơ đồ tổng quan việc giao tiếp gữa DHT vào CU
2.5 i/o sẽ đổi thành out put ở trạng thái low
2.6 giao tiếp giữ MCU và DHT
2.7 data đơn bus ở trạng thái low
2.8 data đơn bus ở trạng thái high
3.1 Mô hình giao tiếp
3.2 Mô hình tương thích
3.3 Arduino IDE
3.4 Arduino Library Manager
3.5 Code cho bìa toán giao tiếp giữa hai thiết bị
3.6
3.7
3.8 Arduino IDE tools options
3.9 Arduino verifi option
3.10 IDE trả về kết quả
3.11 Arduino IDE tools options
3.12 Cửa sổ kết quả

DANH MỤC BẢNG BIỂU


2.1 Đặc điểm các pin
2.2 Đặc tính nguồn
2.9

TỔNG QUAN VỀ DHT11 CẢM BIẾN ĐỘ ẨM, NHIỆT ĐỘ VÀ ARDUINO NANO


DHT11 là một 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.

1. Giới thiệu về DHT11


Nhóm 1 6
Cảm biến nhiệt độ & độ ẩm DHT11 có tính năng cảm biến nhiệt độ và độ ẩm
với đầu ra tín hiệu kỹ thuật số đã hiệu chỉnh. Bằng cách sử dụng thu nhận tín hiệu kỹ
thuật số và công nghệ cảm biến nhiệt độ và độ ẩm, nó đảm bảo độ tin cậy cao và ổn
định. Cảm biến này bao gồm một phép đo độ ẩm kiểu điện trở pull up và một thành
phần đo nhiệt độ NTC, và kết nối với vi điều khiển 8-bit, cung cấp chất lượng tuyệt
vời, phản hồi nhanh, khả năng chống nhiễu và chi phí hiệu quả.Mỗi phần tử DHT11
được hiệu chuẩn nghiêm ngặt trong phòng thí nghiệm, hiệu chuẩn độ ẩm chính xác. Hệ
số hiệu chuẩn được lưu trữ dưới dạng chương trình trong bộ nhớ OTP,được sử dụng
bởi quy trình phát hiện tín hiệu bên trong của cảm biến. Giao diện nối tiếp giúp tích
hợp hệ thống nhanh chóng và dễ dàng. Kích thước nhỏ, tiêu thụ điện năng thấp làm
cho nó trở thành sự lựa chọn tốt nhất cho các ứng dụng khác nhau, bao gồm cả
nhữngnhững yêu cầu khắt khe nhất. Thành phần là pin 4 chân. Nó là thuận tiện để kết
nối và có thể được cung cấp theo yêu cầu của người dùng.

1.1. Một số Ưu nhược điểm DHT11


Ưu điểm:
Cảm biến có thể đo nhiệt độ từ 0 ° C đến 50 ° C và độ ẩm từ 20% đến 90% với
độ chính xác ± 1 ° C và ± 1%
Có thể dùng trong nhiều lĩnh vực như: Đo nhiệt độ và độ ẩm, đài thời tiết địa
phương, kiểm soát khí hậu tự động, giám sát môi trường.

Nhược điểm :
Phải sử dụng tụ điện lọc và điện trở bên ngoài

1.2. Tiêu chí


1. DHT11 là một cảm biến nhiệt độ và độ ẩm thường được sử dụng. Cảm biến đi kèm
với một NTC chuyên dụng để đo nhiệt độ và một bộ vi điều khiển 8 bit để xuất ra
các giá trị nhiệt độ và độ ẩm dưới dạng dữ liệu nối tiếp. Cảm biến cũng được hiệu
chuẩn tại nhà máy và do đó dễ dàng giao tiếp với các bộ vi điều khiển khác.
2.  

Nhóm 1 7
3. Cảm biến có thể đo nhiệt độ từ 0 ° C đến 50 ° C và độ ẩm từ 20% đến 90% với độ
chính xác ± 1 ° C và ± 1%. Vì vậy, nếu bạn đang muốn đo trong phạm vi này thì
cảm biến này có thể là lựa chọn phù hợp cho bạn.

2. Giới thiệu về Arduino nano


Arduino Nano được nhắc đến có kích thước rất bé phù hợp để thiết kế các sản phẩm
điện tự yêu cầu tính thẩm mỹ và tối giản. Được phát triển trên cơ sở ATmega328P vào
năm 2008 Arduino Nano khá thân thiện với Breadboard. So với dòng Arduino Uno
bảng điện tử Nano có thông số kỹ thuật và kết nối tương đương, nhưng có ngoại hình
nhỏ hơn rất nhiều.

2.1. Sơ đồ chân của Arduino-nano

Hình 1.1

Pin nguồn (Vin, 3.3V, 5V, GND): Các chân này là chân nguồn

Vin là điện áp đầu vào của bo mạch, và nó được sử dụng khi nguồn năng lượng được
sử dụng từ 7V đến 12V.

Nhóm 1 8
5V là cung cấp điện quy định điện áp của bo mạch nano và nó được sử dụng để cung
cấp cho bo mạch cũng như các thành phần.
3,3V là điện áp tối thiểu được tạo ra từ Bộ điều chỉnh điện áp .
GND là chân nối đất
RST Pin (Đặt lại): Chân này được sử dụng để đặt lại vi điều khiển
Chân (A0-A7): Các chân này được sử dụng để tính toán điện áp của bảng trong phạm
vi từ 0V đến 5V
Các chân I / O (Chân kỹ thuật số từ D0 - D13): Các chân này được sử dụng như một i /
p hoặc các chân o / p. 0V & 5V
Ghim (Tx, Rx): Các chân này được sử dụng để truyền và nhận dữ liệu TTL.
Ngắt ngoài (2, 3): Các chân này được sử dụng để kích hoạt ngắt.
PWM (3, 5, 6, 9, 11): Các chân này được sử dụng để cung cấp 8-bit đầu ra PWM.
SPI (10, 11, 12 và 13): Các chân này được sử dụng để hỗ trợ giao tiếp SPI .
Đèn LED sẵn có (13): Chân này được sử dụng để kích hoạt đèn LED.
IIC (A4, A5): Các chân này được sử dụng để hỗ trợ giao tiếp TWI.
3. Kết luận chương
Trong chương 1 đã giới thiệu Cảm biến nhiệt độ & độ ẩm DHT11,
Nêu ra sơ đồ và các ưu nhược điểm của DHT11. Đồng thời cũng giới thiệu Arduino
nano và sơ đồ của Arduino nano

Chương II. Mô hình DHT11


1. Nguồn và chân kết nối
Overall: gồm 4 pin
1. VDD supply 3.3 ~ 5.5V DC
2. DATA serial data, single-bus
3. NC NC ///////
4. GND nối đất

Nhóm 1 9
Dht11 sensor

Hình 2. 1

number pin Description


1 Vcc Cấp nguồn cho điện áp từ 3.5 tới 5.5 (V)
2 Data Đầu ra cung cấp dữ liệu về nhiệt độ và độ ẩm
qua
3 Nc NC là no connection ko sử dụng
4 Ground Pin nối đất
Bảng 2. 1
Hình bên dưới có module(trai) sensor(phai)

Nhóm 1 10
Hình 2. 2

2. Quy trình giao tiếp


2.1. Tổng quan về quy trình giao tiếp

Hình 2. 3
Sơ đồ mạch giữa dht11 và MCU
Nhóm 1 11
-DHT11 sử dụng tín hiệu đơn bus sử dụng 1 dòng data để giao tiếp nếu có có sự gián
đoạn trong data line đó tín hiệu sẽ ko đc tiếp nhận.
-data sử dụng để giao tiếp là tín hiệu đồng bộ đơn bus 40-bit
40 bit gồm 8 bit cho: - độ ẩm cao
- độ ẩm thấp
-nhiệt độ cao
-nhiệt độ thấp
VD

Độ ẩm cao 00110101 8
Độ ẩm thấp 00000000 8
Nhiệt độ 00001100 8
cao
Nhiệt độ 00000000 8
thấp
Bit kiểm tra 01001101 8

+
Khi MCU gửi tín hiệu start thì DHT11 chuyển trạng thái từ low sang running
mid(high-speed mode), DHT 11 sẽ ở trạng thái standby đợi cho mcu hoàn thành bản
tin start, khi hoàn thành DHT11 sẽ gửi tín hiệu phản hồi (40 bit data) bao gồm các
thông tin đã liệt kê ở trên, khi ko có tín hiệu start thì DHT11 sẽ ở lại ở trạng thái low
power đợi đến khi có tín hiệu từ MCU

Hình 2. 4
Để hoàn thành việc truyền tin hiệu từ MCU đến DHT ta có 4 bước

Nhóm 1 12
1- DHT sau khi đc cấp nguồn DHT 11 thu nhập thông tin từ môi trường độ ẩm và
nhiệt độ đồng thời khi đó đường data đơn bit sẽ đc kéo lên trạng thái cao và chân data
sẽ ở trong chế độ input đợi tín hiệu từ bên ngoài
2-
i/o sẽ đổi thành out put ở trạng thái low thời gian ở trạng thái này ko thể ít hơn 18ms
sau đó i/0

Hình 2. 5
2.2. MCU gửi tín hiệu bắt đầu cho DHT
Khi giao tiếp giữ MCU và DHT bắt đầu MCU sẽ đặt data đơn bus về trạng thái
low(ban đầu sẽ ở trạng thái high) quá trình này sẽ cần ít nhất 18ms để chắc chắn DHT
sẽ xác nhận đc tín hiệu của MCU sau đó MCU sẽ kéo nguồn VCC lên và đợi từ 20-
40us cho DHT phản hồi

Hình 2. 6
2.3. DHT phản hồi về MCU
Khi DHT nhận đc tín hiệu start DHT sẽ gửi ra một tín hiệu có trạng thái là low tồn tại
trong khoảng 80us sau đó DHT sẽ đặt giá trị của dòng data đơn bus từ thấp sang cao
và giữ nó trong 80us để chuẩn bị gửi dữ liệu tới MCU

Nhóm 1 13
-khi dòng data đơn bus ở trạng thái low nghĩa là DHT đang gửi tín hiệu phản hồi khi
DHT gửi tín hiệu đó đi nó sẽ kéo dòng vcc lên và giữ ở trạng thái đó trong 80us và cb
cho gửi data
-khi DHT gửi data cho MCU mỗi bit data sẽ bắt đầu bằng 50us ở trạng thái low và độ
dài của dòng tín hiệu ở trạng thái cao sau đó sẽ quết định bit data đó là 0 hay là 1

Hình 2. 7

Hình 2. 8
Nếu mà dòng tín hiệu từ DHT luôn ở trạng thái cao điều này chứng tỏ ràng DHT đang
ko phản hồi đúng nên kiển tra lại kết nối

Nhóm 1 14
3. Các đặc tính về nguồn
Khi DHT 11 đc cấp nguồn không nên gửi tín hiệu điều khuyển tới DHT11 vì có khả
năng điều đó sẽ gây ra trạng thái ko ổn định
Trạng thái Tối thiểu Trung bình Tối đa
Cấp nguồn DC 3v 5v 5.5v
Cấp dòng measure 0.5mA 2.5mA
Avrage 0.2mA 1mA
Standby 100uA 150uA
Lấy mẫu second 1
Bảng 2. 2
4. Kết luận chương

Cho chúng ta thông tin về các đặc tính về nguồn và các chân của DHT11 cũng như các
phương pháp giao tiếp giữa DHT 11 và MCU cùng với đó là tín hiệu sử dụng cộng
thêm nguyên lý xử lý và tiếp nhận tín hiệu giữa hai thiết bị
Chương III. ỨNG DỤNG DHT11
1. Sơ đồ kết nối

Hình 3.1
Ở bài này chúng ta sẽ cần kết nối 3 chân VDD, DATA, GND của DHT đến Arduino,
chân NC không cần kết nối. Để đảm bảo mức logic được xác định rõ ở chân trong mọi
điều kiện, giữa 2 chân VDD và DATA sẽ được kết nối với nhau bằng 1 con điện trở
pull up. Khi cáp kết nối ngắn hơn 20 mét, nên sử dụng điện trở pull-up 5k ohm; khi
cáp kết nối dài hơn 20 mét, hãy chọn một điện trở pull-up phù hợp.

Nhóm 1 15
Hình 3.2
Chân thứ nhất là VDD kết nối với nguồn 5v của Arduino nano, chân thứ 2 là chân data
để gửi tín hiệu digital nên sẽ được kết nối đến một trong các chân digital của Arduino
nano, ở đây là đang sử dụng chân digital D2. Chân còn lại là GND sẽ được kết nối đến
chân GND của Arduino.

2. Lập trình cho arduino


2.1. Arduino IDE

Chúng ta có thể lập trình cho Arduino rất dễ dàng với trình biên dịch Arduino IDE. Có
thể tải ở arduino.cc

Hình 3.3
Nhóm 1 16
Để có thể lập trình cho sensor ta cần cài thêm một vài thư viện liên quan đến sensor, ở
đây là thư viện của DHT, chúng ta sẽ sử dụng tổ hợp Ctrl + Shift + I hoặc vào Tools
chọn Library Manager

Hình 3.4
Sau đó cắm Arduino nano với máy tính và vào Tools chọn port COM ứng với Arduino
nano, chọn Board Arduino Nano và chọn Processor phù hợp.

Hình 3.5

Nhóm 1 17
2.2. Viết chương trình cho Arduino và DHT

Tiếp theo sẽ là bước lập trình cho Arduino, đầu tiên chúng ta sẽ cần phải include thư
viện DHT.h; định nghĩa chân tín hiệu và loại DHT sử dụng; tạo các biến cần thiết để
giải mã tín hiệu.

Hình 3.6
Ở bước setup khởi động, vì chúng ta sẽ sử dụng Serial monitor của IDE để xuất tín
hiệu nên cần khởi động Serial monitor và set baud rate, ở đây chúng ta sẽ để là 9600.
Tiếp theo là khởi động sensor và để delay 1 giây cho các thiết bị khởi động xong hết.

Hình 3.7
Ở bước tiếp theo chúng ta sẽ sử dụng vòng lặp để sensor cập nhật dữ liệu liên tục về
trạng thái môi trường. Sử dụng các biến đã tạo và hàm có sẵn trong thư viện DHT.h
như readHumidity và readTemperature để đọc các thông số độ ẩm, nhiệt độ. Cuối cùng
là xuất thông tin qua Serial monitor và để delay 2 giây mỗi lần sensor cập nhật dữ liệu.

Hình 3.8
3. Kết quả mô phỏng
Sau khi đã kết nối cũng như viết chương trình cho Arduino xong, chúng ta sẽ sử dụng
nút verify

Nhóm 1 18
Hình 3.9
Nếu IDE trả về kết quả done compiling có nghĩa là đã biên dịch xong, code không có
lỗi

Hình 3.10
và chỉ cần nạp code bẳng nút upload để nạp code cho Arduino và Arduino sẽ tự động
chạy.

Để xem được kết quả từ Serial monitor chúng ta sẽ click vào nút Serial monitor hoặc
vào Tools chọn Serial monitor

3.11
và màn hình sẽ trả về kết quả

3.12

Nhóm 1 19
4. Kết luận chương 3
*Trong chương 3 đã nêu ra cách kết nối cũng như cách để có thể lập trình và
chạy Arduino với cảm biến DHT11

TÀI LIỆU THAM KHẢO


Tiếng Việt
Tiếng Anh

Nhóm 1 20

You might also like