1. Trang chủ
  2. » Luận Văn - Báo Cáo

báo cáo bài tập lớn hệ thống đo nhiệt độ độ ẩm và ánh sáng

19 1 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Hệ thống đo nhiệt độ, độ ẩm và ánh sáng
Tác giả Hà Minh Huy, Lê Đình Hiệp, Dương Minh Huy, Vũ Mạnh Trung
Người hướng dẫn TS. Nguyễn Cảnh Quang
Trường học ĐẠI HỌC BÁCH KHOA HÀ NỘI
Chuyên ngành Thiết kế hệ thống nhúng
Thể loại Báo cáo bài tập lớn
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 19
Dung lượng 4,84 MB

Nội dung

1.1Yêu cầu bài tập lớnTrong khuôn khổ bài tập lớn môn học Thiết kế hệ thống nhúng, nhóm chúng em quyết địnhchọn đề tài: “Hệ thống giám sát nhiệt độ và độ ẩm theo thời gian thực.” Đề tài

Trang 1

ĐẠI HỌC BÁCH KHOA HÀ NỘI TRƯỜNG ĐIỆN – ĐIỆN TỬ

-

BÁO CÁO BÀI TẬP LỚN

Đề tài : Hệ thống đo nhiệt độ, độ ẩm và ánh sáng

Giảng viên hướng dẫn TS Nguyễn Cảnh Quang

Lê Đình Hiệp Dương Minh Huy

Vũ Mạnh Trung

Hà Nội, 02/2022

20191827 20191891 20192127

Trang 2

MC LC

CHƯƠNG 1 TỔNG QUAN ĐỀ TÀI 2

1.1 YÊU CẦU BÀI TẬP LỚN 2

1.2 MỤC TIÊU THIẾT KẾ 3

CHƯƠNG 2 GIỚI THIỆU PHẦN CỨNG 4

2.1 NGUYÊN LÝ CÁC MODULE PHẦN CỨNG 4

2.1.1 Kit ESP32 DOIT DEVKIT V1 4

2.1.2 Module cảm biến nhiệt độ, độ ẩm DHT11 5

2.1.3 Màn hình LCD 7

CHƯƠNG 3 SƠ ĐỒ KHỐI 7

3.1 SƠ ĐỒ KHỐI, LƯU ĐỒ THUẬT TOÁN GIAO TIẾP GIỮA VI ĐIỀU KHIỂN ESP32 VÀ MODULE PHẦN CỨNG 8

3.2 LẬP TRÌNH SUPER LOOP CHẠY TỪNG TASK MỘT TỪ TRÊN XUỐNG DƯỚI 9

CHƯƠNG 4 SƠ ĐỒ NGUYÊN LÍ 9

4.1 CÁC NGOẠI ESP32 VI CẦN SỬ DỤNG 9

4.2 SƠ ĐỒ GHÉP NỐI VI ĐIỀU KHIỂN VÀ MODULE PHẦN CỨNG 10

CHƯƠNG 5 MÔ PHỎNG VÀ CHẠY THỬ 12

5.1 MÔ PHỎNG 12

5.2 KẾT QUẢ CHẠY THỬ TRÊN MÔ PHỎNG 12

CHƯƠNG 6 KẾT QUẢ VÀ ĐÁNH GIÁ 12

6.1 CÁC KẾT QUẢ ĐẠT ĐƯỢC 12

6.2 PHÂN TÍCH VÀ ĐÁNH GIÁ KẾT QUẢ 12

TÀI LIỆU THAM KHẢO 13

Trang 3

1.1 Yêu cầu bài tập lớn

Trong khuôn khổ bài tập lớn môn học Thiết kế hệ thống nhúng, nhóm chúng em quyết định chọn đề tài: “Hệ thống giám sát nhiệt độ và độ ẩm theo thời gian thực.” Đề tài chúng em được trình bày gồm 5 chương:

Chương 1: Tổng quan đề tài

Chương 2: Giới thiệu phần cứng

Chương 3: Sơ đồ khối

Chương 4: Sơ đồ nguyên lí

Chương 5: Mô phỏng và chạy thử

Chương 5: Kết quả và đánh giá

Chúng em xin cảm ơn thầy Nguyễn Cảnh Quang đã luôn tận tình hướng dẫn chúng em trong suốt quá trình học trên lớp và thực hiện đề tài, do kiến thức chúng em còn rất nhiều hạn chế nên đề tài còn rất nhiều sai sót, mong thầy góp ý và chỉnh sửa để chúng em tiến bộ hơn Em xin chân thành cảm ơn!

1.2 Mục tiêu thiết kế

Triển khai ứng dụng thời gian thực trên vi điều khiển ESP32 với các yêu cầu:

Lập trình vi điều khiển ESP32 giao tiếp với cảm biến DHT11 và cảm biến quang cds hiển thị thông số lên LCD, truyền thông số lên web server Cài đặt thời gian và thông số bộ lập lịch từ máy tính

Gửi dữ liệu đo được lên web server

Trang 4

CHƯƠNG 2 GIỚI THIỆU PHẦN CỨNG 2.1.1 Nguyên lý các module phần cứng

2.1.2 Vi điều khiển STM32F103C8T6

STM32F103C8T6 là vi điều khiển 32bit, thuộc họ F1 của dòng chip STM32 hãng ST

- Lõi ARM COTEX M3

- Tốc độ tối đa 72Mhz

- Bộ nhớ :

64 kbytes bộ nhớ Flash

20 kbytes SRAM

- Clock, reset và quản lý nguồn

Điện áp hoạt động từ 2.0 → 3.6V

Sử dụng thạch anh ngoài từ 4Mhz → 20Mhz

Thạch anh nội dùng dao động RC ở mode 8Mhz hoặc 40Khz

Trang 5

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

2.1.3 Kit ESP32 DOIT DEVKIT V1

Hình 1 Kit ESP32 DOIT DEVKIT V1 1

ESP32 là một hệ thống vi điều khiển trên chip (SoC) giá rẻ của Espressif Systems, nhà phát triển của ESP8266 SoC Nó là sự kế thừa của SoC ESP8266 và có cả hai biến thể lõi đơn và lõi kép của bộ vi xử lý 32-bit Xtensa LX6 của Tensilica với Wi-Fi và Bluetooth tích hợp Dưới đây là một số thông số kỹ thuật của kit:

Trang 6

Điện áp hoạt động: 2.2 V 3.6 V

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

Tích hợp cổng USB để nạp Bootloader hoặc sử dụng ngoại vi USB

Hỗ trợ kết nối Wi-Fi 802.11 b / g / n với tốc độ lên đến 150 Mbps

Kết nối nối tiếp bao gồm 4 x SPI, 2 x I2C, 2 x I2S, 3 x UART

2.1.4 Module cảm biến nhiệt độ, độ ẩm DHT11

Hình 2 Module DHT11 2

DHT11 là cảm biến nhiệt độ, độ ẩm rất thông dụng hiện nay vì chi phí giá rẻ và rất dễ lấy dữ liệu thông qua giao tiếp 1-wire 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 thông qua mạch xử lý tín hiệu nào Dưới đây là một số thông số kỹ thuật:

Điện áp hoạt động: 35 VDC

Dải đo độ ẩm: 20%90% RH, sai số 5% RH

Dải đo nhiệt độ: 0 50 , sai số 2 ℃ ℃ ℃

Tần số lấy mẫu tối đa: 1 Hz

Khoảng cách truyền tối đa: 20 m

Sơ đồ chân module DHT11 gồm 2 chân cấp nguồn và 1 chân tín hiệu Hiện nay trên thị trường có hai loại thông dụng được đóng gói với 3 chân hoặc 4 chân

Nguyên lý hoạt động :

Trang 7

Hình 3 Kết nối module DHT11 với vi điều khiển

Vi điều khiển giao tiếp với DHT11 theo chuẩn 1 wire với 2 bước:

Gửi yêu cầu đo tới DHT11, sau đó đợi DHT11 phản hồi

Khi DHT11 sẵn sàng giao tiếp, nó sẽ gửi lại 5 byte dữ liệu chứa giá trị nhiệt độ và độ ẩm

do được

Dưới đây là chi tiết các bước thực hiện:

Bước 1:

1 Đầu tiên vi điều khiển gửi tín hiệu Start: cấu hình chân DATA ở chế độ OUTPUT, kéo chân DATA xuống mức logic 0 trong khoảng thời gian tối thiểu 18 ms

2 Vi điều khiển kéo chân DATA lên mức logic 1, sau đó cấu hình lại chế độ INPUT

3 Sau khoảng thời gian 2040 s, DHT11 sẽ kéo chân DATA xuống mức logic 0 Trong trường hợp quá 40 s mà chân DATA vẫn chưa được kéo xuống mức logic 0 nghĩa là giao tiếp với DHT11 thất bại

4 Chân DATA sẽ được giữ ở mức logic 0 thời gian 80 s sau đó nó được kéo lên mức logic 1 trong 80 s Vi điểu khiển xác định việc giao tiếp thành công hay không với DHT11 qua chân DATA

Bước 2 :

1 Giá trị nhiệt độ và độ ẩm đo được sẽ được DHT11 gửi về vi điều khiển dưới dạng 5 byte:

a Byte 1: giá trị phần nguyên của độ ẩm

b Byte 2: giá trị phần thập phân của độ ẩm

c Byte 3: giá trị phần nguyên của nhiệt độ

d Byte 4: giá trị phần thập phân của nhiệt độ

e Byte 5: byte checksum (nếu byte 5 bằng tổng giá trị 4 byte trên thì dữ liệu thu được là chính xác)

2 Sau khi xác nhận thành công yêu cầu giao tiếp với DHT11, nó sẽ gửi liên tiếp 40 bit về vi điều khiển:

Với mỗi bit dữ liệu gửi về vi điều khiển, DHT11 sẽ kéo chân DATA xuống mức logic 0 trong 50 s, sau đó:

Nó sẽ kéo chân DATA lên mức logic 1 và giữ trong 2628 s nếu dữ liệu truyền về vi điều khiển là bit 0

Trang 8

Hình 4 Biểu diễn mức logic 0

Nó sẽ kéo chân DATA lên mức logic 1 và giữ trong 70 µs nếu dữ liệu truyền về vi điều khiển là bit 1

Hình 5 Biểu diễn mức logic 1 5

2.1.5 Cảm biến nhiệt độ LM35

Thông số kĩ thuật:

Điện áp hoạt động: 4-20 VDC

Dòng điện tiêu thụ: khoảng 60uA

Khoảng đo: -55°C đến 150°C

Điện áp tuyến tính theo nhiệt độ: 10mV/°C

Sai số: 0.25°C

Trang 9

2.1.6 Cảm biến nhiệt độ DS18B20

Thông số kĩ thuật:

Nguồn: 3 – 5.5V

Dải đo nhiệt độ: -55 đến 125 độ

Sai số: +- 0.5 độ C khi đo ở dải -10 – 85 độ C

2.1.7 Màn hình LCD

Hình 6 Màn hình LCD 1602 6

Màn hình LCD 1602 (Liquid Crystal Display) được sử dụng trong rất nhiều ứng dụng của vi điều khiển LCD 1602 có rất nhiều ưu điểm so với các dạng hiển thị khác như: khả năng hiển thị

ký tự đa dạng (chữ, số, ký tự đồ họa); dễ dàng đưa vào mạch ứng dụng theo nhiều giao thức giao tiếp khác nhau Dưới đây là một số thông số kỹ thuật quan trọng:

Dải điện áp hoạt động: 2.75.5 VDC

Điện áp ra mức cao: > 2.4 VDC

Trang 10

Điện áp ra mức thấp: < 0.4 VDC.

Dòng điện cấp nguồn: 350µA600µA

Nhiệt độ hoạt động: -3075 ℃

Tụ C và C có tác dụng lọc điện áp cấp cho tải tiêu thụ lấy từ đầu ra của IC LM1117, tụ 4 5

C4 giúp ổn định điện áp đầu ra cung cấp cho tải, tụ C có trở kháng lớn, có tác dụng lọc nhiễu 5

điện áp đầu ra (nhiễu là điện áp không mong muốn làm cho dạng điện áp ra hình răng cưa)

3.1 Sơ đồ khối, Lưu đồ thuật toán giao tiếp giữa vi điều khiển ESP32 và module phần cứng

Hình 13 Sơ đồ khối hệ thống

Trang 11

Hình 14 Lưu đồ thuật toán chương trình

4.1 Mô phỏng

Nhóm em chọn mô phỏng trên web https://wokwi.com Nó là một trình mô phỏng trực tuyến cho các nền tảng Arduino và các phát triển Điện tử

4.2 Kết quả chạy thử trên mô phỏng

Trang 12

Hình 19 Kết quả mô phỏng

5.1 Các kết quả đạt được

Trang 13

Hình 20 Thử nghiệm mạch trên breadboard

Hình 21 Kết quả vi điều khiển gửi về web server

CODE:

Trang 14

#include <DHT.h>

#include <LiquidCrystal_I2C.h>

#include <PubSubClient.h>

#include <WiFi.h>

const char* mqtt_server = "172.20.10.2";

const char* mqtt_user = "haison-nguyenphuc";

const char* mqtt_password = "soncua2001";

uint16_t mqtt_port = 1883;

const char* mqtt_clientId = "ClientEsp32";

#define SSID "Minh Huy"

#define PASSWORD "Minhhuy1010"

#define MSG_BUFFER_SIZE 50

#define LED 2

WiFiClient wifiClient;

PubSubClient client(wifiClient);

#define DHT_SENSOR_PIN 25 // ESP32 pin GIOP23 connected to DHT11 sensor

#define DHT_SENSOR_TYPE DHT11

int cambien = 2; //Cảm biến nối chân số 5 Arduino

int giatri;

LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C address 0x3F, 16 column and 2 rows DHT dht_sensor(DHT_SENSOR_PIN, DHT_SENSOR_TYPE);

void setup()

{

Serial.begin(115200);

Serial2.begin(115200, SERIAL_8N1, 16, 17);

setupWiFi();

client.setServer(mqtt_server, 1883);

client.setCallback(callback);

Trang 15

pinMode(LED, OUTPUT);

dht_sensor.begin(); //Khởi động cảm biến

pinMode(cambien, INPUT);

lcd.init(); //Khởi động LCD

lcd.backlight(); //Mở đèn

lcd.setCursor(0,0);

lcd.print("DO AM:");

lcd.setCursor(0,1);

lcd.print("C|F:");

}

void loop()

{

if (!client.connected()) {

reconnect();

}

client.loop();

digitalWrite(LED, HIGH);

float doam = dht_sensor.readHumidity(); //Đọc độ ẩm

float doC = dht_sensor.readTemperature(); //Đọc nhiệt độ C

float doF = dht_sensor.readTemperature(true); //Đọc nhiệt độ F

// Kiểm tra cảm biến có hoạt động hay không

if (isnan(doam) || isnan(doC) || isnan(doF))

{

Serial.println("Không có giá trị trả về từ cảm biến DHT"); return;

Trang 16

}

Serial.print("humidity value: ");

Serial.print(doam);

lcd.setCursor(7,0); //con trỏ vị trí số 7, hiện ô số 8

lcd.print(doam);

lcd.setCursor(12,0); //Con trở ở vị trí 12, hiện ô 13

lcd.print("%");

Serial.print("% Temperature value: ");

Serial.print(doC);

Serial.print("°C | ");

Serial.print(doF);

Serial.println("°F");

giatri = analogRead(cambien); //Đọc giá trị cảm biến và gán vào biến giatri Serial.print("Cuong do anh sang: ");

Serial.println(giatri);

lcd.setCursor(5,1);

lcd.print(doC);

lcd.setCursor(10,1);

lcd.print("|");

lcd.setCursor(11,1);

lcd.print(doF);

client.publish("sensor1", String(doam).c_str());

client.publish("sensor2", String(doC).c_str());

client.publish("sensor3", String(doF).c_str());

delay(2000);

}

Trang 17

//callback function is used to receive value from mqtt broker void callback(char* topic, byte* payload, unsigned int length) { }

void setupWiFi() {

WiFi.begin(SSID, PASSWORD);

Serial.println("Waiting for WiFi");

while (WiFi.status() != WL_CONNECTED) {

delay(500);

Serial.print(".");

}

Serial.println("WiFi Connected.");

Serial.print("IP Address: ");

Serial.println(WiFi.localIP());

}

void reconnect() {

// Loop until we're reconnected

while (!client.connected()) {

Serial.print("Attempting MQTT connection ");

if (client.connect(mqtt_clientId, mqtt_user, mqtt_password)) { Serial.println("connected");

// Once connected, publish an announcement

client.publish("connected", "hello world");

// and resubscribe

client.subscribe("connected");

} else {

Serial.print("failed, rc=");

Serial.print(client.state());

Serial.println(" try again in 5 seconds");

// Wait 5 seconds before retrying

delay(5000);

}

Trang 18

}

}

5.2 Phân tích và đánh giá kết quả

Trong khuôn khổ bài tập lớn môn học Thiết kế hệ thống nhúng, nhóm em đã làm được các công việc:

Lập trình vi điểu khiển giao tiếp với cảm biến DHT11, cảm biến quang trở CDS, LCD và truyền nhận dữ liệu với máy tính

Gửi dữ liệu lên web server và phân tích

Trang 19

TÀI LIỆU THAM KHẢO

[1] https://www.sparkfun.com/datasheets/Components/DS1307.pdf

[2] https://lib.hpu.edu.vn/bitstream/handle/123456789/17890/7_NguyenNgocTrung_DCL30 1.pdf

[3] https://www.mouser.com/datasheet/2/758/DHT11-Technical-Data-Sheet-Translated-Version-1143054.pdf

[4] https://www.windriver.com/solutions/learning/rtos

Ngày đăng: 17/06/2024, 17:25

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w