1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo đồ án thiết kế hệ thống nhúng: Đo độ ẩm, nhiệt đô trong phòng hiển thị qua LCD

12 627 3

Đ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 12
Dung lượng 1,03 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nó là một giao thức giao tiếp được phát triển bởi Philips Semiconductors để truyền dữ liệu giữa một bộ xử lý trung tâm với nhiều IC trên cùng một board mạch chỉ sử dụng hai đường truyền

Trang 1

Học viện Công nghệ Bưu chính Viễn thông

Đề tài: Đo độ ẩm, nhiệt độ trong phòng

hiển thị qua LCD

Sinh viên thực hiện: Nguyễn Quang Quân

Trần Minh Tú Phạm Hồng Sơn Phạm Xuân Trường

B17DCDT146 B17DCDT198 B17DCDT162 B17DCDT194

Hà Nội, 2021

Trang 2

Mục lục

I Giới thiệu 3

II Nội dung chính 3

III Phần cứng cần thiết 3

IV Thông số chi tiết các linh kiện 3

1 Giới thiệu LCD 16×2 3

2 Module I2C Arduino 4

3 Giới thiệu giao thức I2C 6

4 Arduino UNO R3 6

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

V Sơ đồ mạch 10

VI Code 10

VII Kết quả demo 11

Trang 3

I Giới thiệu

Sự bùng nổ của công nghệ ngành điện tử ngày càng phát triển một cách mạnh mẽ Những ứng dụng của nó giúp con người ngày càng có cuộc sống nâng cao Sự khảo sát về nhiệt độ ,độ ẩm môi trường với con người trước kia luôn gặp khó khăn do phải đo đạc và tính toán một cách khá phức tạp Do đó chúng em đã lựa chọn đề tài đo nhiệt độ độ ẩm môi trường để ứng dụng vào nhiều công việc khác nhau

Đề tài giúp học được cách đo nhiệt độ - độ ẩm từ cảm biến và xuất ra màn hình LCD Hiểu được Arduino tạo cho người dùng một sự đơn giản và tiện lợi đến mức nào

II Nội dung chính

Đọc dữ liệu từ cảm biến nhiệt độ - độ ẩm DHT11

Sử dụng màn hình LCD để xuất thông tin

III Phần cứng cần thiết

• Màn hình LCD 16 x 2

• Mạch điều khiển màn hình LCD sử dụng giao tiếp I2C

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

• Arduino UNO R3

IV Thông số chi tiết các linh kiện

1 Giới thiệu LCD 16×2

Trang 4

Thông số kỹ thuật LCD 16×2:

- LCD 16×2 được sử dụng để hiển thị trạng thái hoặc các thông số.

 LCD 16×2 có 16 chân trong đó 8 chân dữ liệu (D0 – D7) và 3 chân điều khiển (RS, RW, EN)

 5 chân còn lại dùng để cấp nguồn và đèn nền cho LCD 16×2

 Các chân điều khiển giúp ta dễ dàng cấu hình LCD ở chế độ lệnh hoặc chế độ dữ liệu

 Chúng còn giúp ta cấu hình ở chế độ đọc hoặc ghi

- LCD 16×2 có thể sử dụng ở chế độ 4 bit hoặc 8 bit tùy theo ứng dụng ta đang làm

2 Module I2C Arduino

- LCD có quá nhiều nhiều chân gây khó khăn trong quá trình đấu nối và chiếm dụng nhiều chân trên vi điều khiển

- Module I2C LCD ra đời và giải quyết vấn để này

Thay vì phải mất 6 chân vi điều khiển để kết nối với LCD 16×2 (RS, EN, D7, D6, D5

và D4) thì module IC2 bạn chỉ cần tốn 2 chân (SCL, SDA) để kết nối

Module I2C hỗ trợ các loại LCD sử dụng driver HD44780(LCD 16×2, LCD 20×4,

…) và tương thích với hầu hết các vi điều khiển hiện nay

Ưu điểm

 Tiết kiệm chân cho vi điều khiển

 Dễ dàng kết nối với LCD

Thông số kĩ thuật

 Điện áp hoạt động: 2.5-6V DC

Trang 5

 Hỗ trợ màn hình: LCD1602,1604,2004 (driver HD44780).

 Giao tiếp: I2C

 Địa chỉ mặc định: 0X27 (có thể điều chỉnh bằng ngắn mạch chân A0/A1/A2)

 Tích hợp Jump chốt để cung cấp đèn cho LCD hoặc ngắt

 Tích hợp biến trở xoay điều chỉnh độ tương phản cho LCD

Các lỗi thường gặp khi sử dụng I2C LCD

- Hiển thị một dãy ô vuông

- Màn hình chỉ in ra một ký tự đầu

- Màn hình nhấp nháy

Module I2C LCD 16×2 Arduino UNO

Sơ đồ đấu nối

3 Giới thiệu giao thức I2C

Trang 6

I2C là tên viết tắt của cụm từ tiếng anh “Inter-Integrated Circuit” Nó là một giao thức giao tiếp được phát triển bởi Philips Semiconductors để truyền dữ liệu giữa một bộ

xử lý trung tâm với nhiều IC trên cùng một board mạch chỉ sử dụng hai đường truyền tín hiệu

Do tính đơn giản của nó nên loại giao thức này được sử dụng rộng rãi cho giao tiếp giữa

vi điều khiển và mảng cảm biến, các thiết bị hiển thị, thiết bị IoT, EEPROMs, v.v …

Đây là một loại giao thức giao tiếp nối tiếp đồng bộ Nó có nghĩa là các bit dữ liệu được truyền từng bit một theo các khoảng thời gian đều đặn được thiết lập bởi một tín hiệu đồng hồ tham chiếu

 Đặc điểm

- Sau đây là một số đặc điểm quan trọng của giao thức giao tiếp I2C:

 Chỉ cần có hai đường bus (dây) chung để điều khiển bất kỳ thiết bị / IC nào trên mạng I2C

 Không cần thỏa thuận trước về tốc độ truyền dữ liệu như trong giao tiếp

UART Vì vậy, tốc độ truyền dữ liệu có thể được điều chỉnh bất cứ khi nào cần thiết

 Cơ chế đơn giản để xác thực dữ liệu được truyền

 Sử dụng hệ thống địa chỉ 7 bit để xác định một thiết bị / IC cụ thể trên bus I2C

 Các mạng I2C dễ dàng mở rộng Các thiết bị mới có thể được kết nối đơn giản với hai đường bus chung I2C

4 Arduino UNO R3

Vi điều khiển ATmega328 họ 8bit

Điện áp hoạt động 5V DC (chỉ được cấp qua cổng USB)

Tần số hoạt động 16 MHz

Dòng tiêu thụ khoảng 30mA

Điện áp vào khuyên dùng 7-12V DC

Điện áp vào giới hạn 6-20V DC

Số chân Digital I/O 14 (6 chân hardware PWM)

Số chân Analog 6 (độ phân giải 10bit)

Trang 7

Dòng tối đa trên mỗi chân I/O 30 mA

Dòng ra tối đa (5V) 500 mA

Dòng ra tối đa (3.3V) 50 mA

Bộ nhớ flash 32 KB (ATmega328) với 0.5KB dùng bởi bootloader

Các chân năng lượng

GND (Ground): cực âm của nguồn điện cấp cho Arduino UNO Khi bạn dùng các

thiết bị sử dụng những nguồn điện riêng biệt thì những chân này phải được nối với nhau

5V: cấp điện áp 5V đầu ra Dòng tối đa cho phép ở chân này là 500mA.

3.3V: cấp điện áp 3.3V đầu ra Dòng tối đa cho phép ở chân này là 50mA.

Vin (Voltage Input): để cấp nguồn ngoài cho Arduino UNO, bạn nối cực dương của

nguồn với chân này và cực âm của nguồn với chân GND

IOREF: điện áp hoạt động của vi điều khiển trên Arduino UNO có thể được đo ở

chân này Và dĩ nhiên nó luôn là 5V Mặc dù vậy bạn không được lấy nguồn 5V từ chân này để sử dụng bởi chức năng của nó không phải là cấp nguồn

RESET: việc nhấn nút Reset trên board để reset vi điều khiển tương đương với việc

chân RESET được nối với GND qua 1 điện trở 10KΩ

Các cổng vào/ra

Trang 8

- Arduino UNO có 14 chân digital dùng để đọc hoặc xuất tín hiệu Một số chân digital có các chức năng đặc biệt như sau:

2 chân Serial: 0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và nhận (receive –

RX) dữ liệu TTL Serial Arduino Uno có thể giao tiếp với thiết bị khác thông qua

2 chân này

Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép bạn xuất ra xung PWM với độ

phân giải 8bit (giá trị từ 0 → 28-1 tương ứng với 0V → 5V) bằng hàm analogWrite()

Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK 4 chân này còn

dùng để truyền phát dữ liệu bằng giao thức SPI với các thiết bị khác

LED 13: trên Arduino UNO có 1 đèn led màu cam (kí hiệu chữ L) Khi bấm nút

Reset, bạn sẽ thấy đèn này nhấp nháy để báo hiệu Nó được nối với chân số 13 Khi chân này được người dùng sử dụng, LED sẽ sáng

- Arduino UNO có 6 chân analog (A0 → A5) cung cấp độ phân giải tín hiệu 10bit (0 → 210-1) để đọc giá trị điện áp trong khoảng 0V → 5V Với chân AREF trên

board, bạn có thể để đưa vào điện áp tham chiếu khi sử dụng các chân analog

- Đặc biệt, Arduino UNO có 2 chân A4 (SDA) và A5 (SCL) hỗ trợ giao tiếp I2C/TWI với các thiết bị khác

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

- Cảm biến độ ẩm và nhiệt độ DHT11 là cảm biến rất thông dụng hiện nay vì chi

phí rẻ và rất dễ lấy dữ liệu thông qua chuẩn giao tiếp 1 wire (Chuẩn giao tiếp 1 wire là dùng 1 chân Digital để truyền dữ liệu)

Trang 9

- Bộ tiền xử lý tín hiệu được tích hợp trong cảm biến giúp bạn có thể đọc dữ liệu chính xác mà không phải qua bất kỳ tính toán nào

.

Thông số kỹ thuật của cảm biến:

 Điện áp hoạt động: 3V – 5V (DC)

 Dải độ ẩm hoạt động: 20% – 90% RH, sai số ±5%RH

 Dải nhiệt độ hoạt động: 0°C ~ 50°C, sai số ±2°C

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

Cách nối với Arduno

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

V Sơ đồ mạch

Trang 10

VI Code

#include <DHT.h>

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,16,2);// chú ý LCD có 2 đ a ch ( 0x3F ho c 0x27)ịa chỉ ( 0x3F hoặc 0x27) ỉ ( 0x3F hoặc 0x27) ặc 0x27)

#include <LiquidCrystal.h>

const int DHTPIN = 9; //Đ c d li u t DHT11 chân 2 trên m ch ọc dữ liệu từ DHT11 ở chân 2 trên mạch ữ liệu từ DHT11 ở chân 2 trên mạch ệu từ DHT11 ở chân 2 trên mạch ừ DHT11 ở chân 2 trên mạch ở chân 2 trên mạch ạch

Arduino

const int DHTTYPE = DHT11; //Khai báo lo i c m bi n, có 2 lo i là DHT11/ạch ảm biến, có 2 loại là DHT11/ ến, có 2 loại là DHT11/ ạch DHT22 /DHT21 -thay vao

DHT dht(DHTPIN, DHTTYPE);

void setup()

{

dht.begin();

lcd.init();

Arduino R3

Trang 11

lcd.backlight();

Serial.begin(9600); // giao ti p Serial v i baudrate 9600ến, có 2 loại là DHT11/ ới baudrate 9600

lcd.print(" WELCOME");

// put your setup code here, to run once:

delay(1500);

lcd.setCursor(0,0);

lcd.println(" ");

}

void loop()

{

// put your main code here, to run repeatedly:

int h = dht.readHumidity();

int t = dht.readTemperature();

lcd.setCursor(0,0);

lcd.print(" NHIET DO:");

lcd.print(t);

lcd.write(0xdf);

lcd.print("C");

lcd.setCursor(0,1);

lcd.print(" DO AM :");

lcd.print(h);

lcd.print("%");

Serial.print("Nhhiet do : ");Serial.println(t);

Serial.print("Do am : ");Serial.println(h);

}

Trang 12

VII Kết quả demo

Ngày đăng: 16/02/2022, 15:38

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w