Tải bản đầy đủ (.docx) (14 trang)

Báo Cáo hệ thống đo nhiệt độ độ ẩm sử dụng chip ESP8266 và cảm biến DHT11

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.24 MB, 14 trang )

Hệ thống đo nhiệt độ, độ ẩm

Mục lục
Đặt Vấn Đề...................................................................................................................................................2
1.

2.

3.

Tổng quan về đề tài nghiên cứu......................................................................................................3
1.1.

Mục tiêu......................................................................................................................................3

1.2.

Nội dung.....................................................................................................................................3

1.3.

Các yếu tố...................................................................................................................................3

1.4.

Chuẩn bị.....................................................................................................................................3

Giới thiệu về vi điều khiển và các thiết bị dùng trong đề tài.......................................................4
2.1.

Chip ESP8266............................................................................................................................4



2.2.

Cảm biến DHT11.......................................................................................................................6

2.3.

Cảm biến khí gas MQ2..............................................................................................................9

2.4.

Phần mền Aduino....................................................................................................................10

2.5.

Phần mền Blynk.......................................................................................................................11

Triển khai hệ thống.........................................................................................................................12
3.1.

Sơ đồ mạch...............................................................................................................................12

3.2.

Code aduino..............................................................................................................................12

4.

Tài liệu tham khảo..........................................................................................................................14


5.

Tạm kết............................................................................................................................................14

1


Hệ thống đo nhiệt độ, độ ẩm

Đặt Vấn Đề
Ngày nay với sự phát triển không ngừng của khoa học kĩ thuật, đã làm cho cuộc
sống của chúng ta ngày càng được nâng cao về mọi mặt cả trong sinh hoạt hàng ngày
cũng như trong sản xuất. Với xu hướng tự động hoá và mục tiêu tăng năng suất lao
động nhiều thiết bị máy móc và các mạch điện tử đã được nghiên cứu và ứng dụng
trong thực tế. Với sự ra đời của các mạch điện tử đã làm tăng đáng kể năng suất lao
động và làm giảm sức lao động của con người trong quá trình sản xuất. Vì vậy, những
ứng dụng mang tính tự động ngày càng được sử dụng rộng rãi. Trong đó có sự đóng
gióp không nhỏ của kỹ thuật vi điều khiển. Các bộ vi điều khiển liên tục được cải tiến
và sử dụng ngày càng phổ biến ở mọi mặt của đời sống xã hội. Hầu hết các thiết bị
được ứng dụng hiện nay từ thiết bị tự động cho văn phòng đến gia đình hay nhà xưởng
đều có thể dùng các thiết bị vi xử lí đem lại sự tiện nghi cho con người trong thời đại
công nghiệp hóa, hiện đại hóa.
Đo nhiệt độ, độ ẩm môi trường là vấn đề khá phức tạp ngày nay cũng trở nên đơn
giản và dễ làm. Không cần phải dùng các thiết bị thô sơ như các loại nhiệt kế rồi phải
tự tay kiểm tra như trước nữa, chúng ta có thể áp dụng các kiến thức đã học để tạo ra
một mạch vi điều khiển đơn giản để kiểm soát nhiệt độ độ ẩm ở bất kì môi trường nào.
Đồng thời có thể phát hiện rò rỉ các chất dễ gây cháy như khí gas.
Với suy nghĩ đó, nhóm chúng em đã thực hiện đề tài “Nghiên cứu thiết kế và chế
tạo hệ thống nhúng hiển thị các thông số nhiệt độ và độ ẩm, phát hiện khí gas”. Đây
được coi là một trong những đề tài đang được tìm hiểu và thiết kế khá nhiều trong lĩnh

vực tự động hóa ngày nay. Nó giúp con người có thể tiện theo dõi các chỉ số về nhiệt
độ và độ ẩm của căn phòng, nhà xưởng, nhà lưới…mà không cần mất nhiều thời gian
như trước.

2


Hệ thống đo nhiệt độ, độ ẩm

1. Tổng quan về đề tài nghiên cứu
1.1. Mục tiêu.
Nghiên cứu và xây dựng mô hình điều khiển dựa trên module wifi
ESP8266 V12E.
Làm quen với việc tính toán thiết kế , chế tạo, nguyên lý hoạt động của
mô hình và củng cố phần lý thuyết về mạch điện tử, cảm biến và mạch
1.2.

1.3.

điều khiển bằng vi điều khiển.
Nội dung
Nghiên cứu đề tài ‘‘Nghiên cứu thiết kế và chế tạo hệ thống nhúng
hiển thị các thông số nhiệt độ, độ ẩm và phát hiện rò rỉ khí gas”
Các yếu tố
a. Đầu vào
Có 2 cảm biến
-

Nhiệt độ và độ ẩm môi trường


-

Cảm biến khí gas

b. Đầu ra
Dữ liệu hiển thị
-

Thông tin nhiệt độ, độ ẩm, cảnh báo rò rỉ khí gas nếu có.

Sau khi đã xác định xong thì công việc mình cần làm là

1.4.

-

Hiển thị và lưu trữ thông tin trên blynk

-

Ứng dụng vào thực tế, thay đổi thông số phù hợp.

-

Điều khiển và giám sát qua smartphone.

-

Cải tiến và nâng cấp.


Chuẩn bị
a. Phần cứng
-

Node MCU (ESP 8266 v12e)

-

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

-

Cảm biến khí gas

-

Còi chíp

-

LED

-

Trở 10k

-

Dây nối
3



Hệ thống đo nhiệt độ, độ ẩm

-

Breadboard

b. Phần mềm
-

Arduino IDE

-

Blynk

2. Giới thiệu về vi điều khiển và các thiết bị dùng trong đề tài
2.1. Chip ESP8266
a. Giới thiệu
-

Wifi chuẩn 802.11b/g/n.

-

Tích hợp CPU 32-bit RISC: Tensilica Xtensa LX106 chạy ở
80MHz

-


Tích hợp bộ đọc 1xADC 10 bit

-

16 chân GPIO.

-

Hỗ trợ giao tiếp UART, I2C, SPI

-

I2S giao tiếp với DMA

-

64 KB RAM.

-

4MB bộ nhớ chương trình với ESP8266V12E

Hình 1: chip ESP 8266
b. Chức năng
-

Giám sát các thông số của hệ thống và gửi về server
4



Hệ thống đo nhiệt độ, độ ẩm

-

Module Node MCU tích hợp sẵn chíp CP2102 cao cấp

-

Tất cả chân của ESP8266 được đưa ra ngoài để linh động
trong quá trình thiết kế và chạy thử.

-

Kit ESP 8266 là kít phát triển dựa trên nền chip wifi SOC
ESP8266 với thiết kế dễ dàng sử dụng vì tích hợp sẵn mạch
nạp sử dụng chip 2102 trên board.

-

Bên trong ESP8266 có sẵn một lõi vi xử lí vì thể có thể trực
tiếp lập trình trên nó mà không cần một con vi xử lí gián tiếp
nào khác.

c. Sơ đồ chân

5


Hệ thống đo nhiệt độ, độ ẩm


Hình 2: sơ đồ chân của ESP 8266
2.2.

Cảm biến DHT11
a. Giới thiệu
-

DHT11 là cảm biến nhiệt độ độ ẩm trong không khí

-

Là cảm biến rất thông dụng hiện nay vì giá thành rẻ và rất dễ
lấy dữ liệu thông qua 1 giao tiếp wire(giao tiếp digital 1 dây
truyền dữ liệu duy nhất).

-

So với cảm biến đời mới hơn là DHT22 thì DHT11 cho
khoảng đo và độ chính xác kém hơn rất nhiều.Tuy nhiên, nó ra
đời sau và được sử dụng thay thế cho dòng SHT1x ở những
nơi không cần độ chính xác cao về nhiệt độ và độ ẩm.

b. Thông số kỹ thuật
6


Hệ thống đo nhiệt độ, độ ẩm

-


DHT11 có cấu tạo 4 chân như hình. Nó sử dụng giao tiếp
số theo chuẩn 1 dây.

-

Thông số kỹ thuật:
 Đo độ ẩm: 20%-95%
 Nhiệt độ: 0-50ºC
 Sai số độ ẩm ±5%
 Sai số nhiệt độ: ±2ºC

Hình 3: Cảm biến DHT11
c. Nguyên lý hoạt động
Để 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.

7


Hệ thống đo nhiệt độ, độ ẩm

Hình 4: Nguyên lý hoạt động của DHT11
Bước 1: Gửi tín hiệu Start
-


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.

-

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%)

8



Hệ thống đo nhiệt độ, độ ẩm

 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.
-

Đọc dữ liệu:
Sau khi giao tiếp được với DHT11, DHT11 sẽ gửi liên tiếp 40 bit 0
hoặc 1 về MCU, tương ứng chia thành 5 byte kết quả của Nhiệt độ và
độ ẩm.

2.3.

-

Cảm biến khí gas MQ2

Hình 5: cảm biến khí gas MQ2
MQ2 là cảm biến khí, dùng để phát hiện các khí có thể gây cháy. Nó được cấu
tạo từ chất bán dẫn SnO2. Chất này có độ nhạy cảm thấp với không khí sạch.
Nhưng khi trong môi trường có chất ngây cháy, độ dẫn của nó thay đổi ngay.
Chính nhờ đặc điểm này người ta thêm vào mạch đơn gian để biến đổi từ độ

-


nhạy này sang điện áp.
Khi môi trường sạch điện áp đầu ra của cảm biến thấp, giá trị điện áp đầu ra
càng tăng khi nồng độ khí gây cháy xung quang MQ2 càng cao.

9


Hệ thống đo nhiệt độ, độ ẩm

-

MQ2 hoạt động rất tốt trong môi trường khí hóa lỏng LPG, H2, và các chất khí
gây cháy khác. Nó được sử dụng rộng rãi trong công nghiệp và dân dụng do
mạch đơn giản và chi phí thấp.
2.4. Phần mền Aduino

Hình 6: giao diện chương trình Aduino
Một số lưu ý: Khi lập trình, cần chọn port (cổng kết nối khi gắn board vào) và
board (tên board mà bạn sử dụng). Giả sử, bạn đang dùng mạch nodeMCU, và khi gắn
board này vào máy tính bằng cáp USB nó được nhận là COM4 thì cần chỉnh như thế
này là có thể lập trình đươc.

10


Hệ thống đo nhiệt độ, độ ẩm

2.5.


Phần mền Blynk

Hình 7: giao diện chương trình Blynk
11


Hệ thống đo nhiệt độ, độ ẩm

Blynk thực ra là một cái app trên điện thoại, cho phép người dùng có thể tạo ra giao
diện và điều khiển thiết bị theo ý thích của cá nhân. Mình lựa chọn Blynk vì một số lý
do sau:


Dễ sử dụng: Quá đơn giản, chỉ việc vào store, cài đặt, sau đó đăng ký tài khoản
và mất không quá 5 phút để làm quen.



Đẹp và đầy đủ: Giao diện của Blynk quá tuyệt vời, sử dụng bằng cách kéo thả,
bạn cần nút bấm, kéo thả nút bấm, bạn cần đồ thị, kéo thả đồ thị, bạn cần LCD, kéo
thả LCD, tóm lại là bạn cần gì thì kéo thả cái đó.



Không phải lập trình android hay ios: Nếu như không có kiên thức về làm app
trên điện thoại thì việc điều khiển thiết bị từ chính smartphone của mình quả là điều
vô cùng khó khăn và phức tạp. Nhờ blynk thì chúng ta có thể bỏ qua bước lập trình
tạo app. Có thể thử nhanh chóng và ứng dụng được dự án của mình vào thực tế.




Thử nghiệm nhanh chóng, có thể điều khiển giám sát ở bất kỳ nơi nào có
internet.

Để sử dụng được blynk thì cần phải tải thư viện của nó thông qua Arduino IDE.
3. Triển khai hệ thống
3.1. Sơ đồ mạch

Hình 8: sơ đồ mạch
3.2.

Code aduino
12


Hệ thống đo nhiệt độ, độ ẩm

/* Comment this out to disable prints and save space
*/ #include <DHT.h>
#include <Adafruit_Sensor.h>
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#define BLYNK_PRINT Serial // You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "3d3497012b044b45a9292e3b44e0f454";
char ssid[] = "NganDam";
char pass[] = "03021995";
int led = 5;
int chip = 4;
int h=0;

int t=0;
const int DHTPIN = 2; //Đọc dữ liệu từ DHT11 ở chân 2 trên mạch Arduino
const int DHTTYPE = DHT11; //Khai báo loại cảm biến, có 2 loại là DHT11 và
DHT22
DHT dht(DHTPIN, DHTTYPE);
WidgetLED led1(V0);
//Ham gui du lieu đến Blynk
void sendSensor(){
h = dht.readHumidity(); //Doc gia tri do am
t = dht.readTemperature(); //Doc gia tri nhiet do
delay(10);
Blynk.virtualWrite(V1, t);
Blynk.virtualWrite(V2, h);
}
void setup() {
pinMode(A0, INPUT_PULLUP);
pinMode(led, OUTPUT);
pinMode(chip, OUTPUT);
13


Hệ thống đo nhiệt độ, độ ẩm

Serial.begin(9600);
dht.begin();
Blynk.begin(auth, ssid, pass);
}
void loop(){
if(analogRead(A0) <400){
digitalWrite(led, LOW);

digitalWrite(chip, LOW);
led1.off(); }
else{
digitalWrite(led, HIGH);
digitalWrite(chip, HIGH);
led1.on(); }
sendSensor();
Blynk.run(); }

4. Tài liệu tham khảo
- Internet
5. Tạm kết
Mặc dù có sự cố gắng nhưng trong quá trình nghiên cứu và tìm hiểu, nhóm em
không thể tránh khỏi các sai sót vì thiếu kinh nghiệm cũng như kiến thức còn
nhiều hạn chế. Mong thầy xem xét và đóng góp ý kiến để đề tài của nhóm em
có thể hoàn thiện hơn…

14



×