1. Trang chủ
  2. » Công Nghệ Thông Tin

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

14 1,9K 33

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 14
Dung lượng 1,1 MB

Nội dung

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ế.. Hầu hết các thiết bị được ứng dụng

Trang 1

M c l c ục lục ục lục

Đặt Vấn Đề 2

1 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

2 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

3 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

Trang 2

Đặ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

Trang 3

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 điều khiển bằng vi điều khiển

1.2 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”

1.3 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à

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

1.4 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

Trang 4

- Dây nối

- 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

Trang 5

b Chức năng

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

- 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

Trang 6

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

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

Trang 7

- 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

Trang 8

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

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

Trang 9

 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

Trang 10

- 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

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

Trang 11

2.5 Phần mền Blynk

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

Trang 12

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

Trang 13

/* 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);

Trang 14

pinMode(chip, OUTPUT);

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…

Ngày đăng: 18/04/2018, 14:29

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w