Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 12 trang
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
Nội dung
Học viện Cơng nghệ Bưu Viễn thơng Báo cáo môn Đồ án thiết kế hệ thống nhúng Đề tài: Đo độ ẩm, nhiệt độ phòng hiển thị qua LCD Giảng viên: N.N.Minh Nhóm: 08 Sinh viên thực hiện: Nguyễn Quang Quân B17DCDT146 Trần Minh Tú B17DCDT198 Phạm Hồng Sơn B17DCDT162 Phạm Xuân Trường B17DCDT194 Hà Nội, 2021 Mục lục I Giới thiệu II Nội dung III Phần cứng cần thiết IV Thông số chi tiết linh kiện Giới thiệu LCD 16×2 Module I2C Arduino Giới thiệu giao thức I2C Arduino UNO R3 Cảm biến nhiệt độ, độ ẩm DHT11 V Sơ đồ mạch 10 VI Code .10 VII Kết demo 11 I Giới thiệu Sự bùng nổ công nghệ ngành điện tử ngày phát triển cách mạnh mẽ Những ứng dụng giúp người ngày có sống nâng cao Sự khảo sát nhiệt độ ,độ ẩm môi trường với người trước gặp khó khăn phải đo đạc tính tốn cách 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 Đề tài giúp học cách đo nhiệt độ - độ ẩm từ cảm biến xuất hình LCD Hiểu Arduino tạo cho người dùng đơn giản tiện lợi đến mức II Nội dung Đọc liệu từ cảm biến nhiệt độ - độ ẩm DHT11 Sử dụng hình LCD để xuất thơng tin III Phần cứng cần thiết • Màn hình LCD 16 x • Mạch điều khiể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 linh kiện Giới thiệu LCD 16×2 Thơng số kỹ thuật LCD 16×2: - LCD 16×2 sử dụng để hiển thị trạng thái thơng số LCD 16×2 có 16 chân chân liệu (D0 – D7) chân điều khiển (RS, RW, EN) chân lại dùng để cấp nguồ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 chế độ liệu Chúng giúp ta cấu hình chế độ đọc ghi - LCD 16×2 sử dụng chế độ bit bit tùy theo ứng dụng ta làm Module I2C Arduino - LCD có nhiều nhiều chân gây khó khăn q trình đấu nối chiếm dụng nhiều chân vi điều khiển - Module I2C LCD đời giải vấn để Thay phải chân vi điều khiển để kết nối với LCD 16×2 (RS, EN, D7, D6, D5 D4) module IC2 bạn cần tốn chân (SCL, SDA) để kết nối Module I2C hỗ trợ loại LCD sử dụng driver HD44780(LCD 16×2, LCD 20×4, …) tương thích với hầu hết vi điều khiển Ư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 Hỗ trợ hình: LCD1602,1604,2004 (driver HD44780) Giao tiếp: I2C Địa mặc định: 0X27 (có thể điều chỉnh ngắn mạch chân A0/A1/A2) Tích hợp Jump chốt để cung cấp đèn cho LCD 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 sử dụng I2C LCD - Hiển thị dãy vng Màn hình in ký tự đầu Màn hình nhấp nháy Module I2C LCD 16×2 Arduino UNO GND GND VCC 5V SDA A4/SDA SCL A5/SCL Sơ đồ đấu nối Giới thiệu giao thức I2C I2C tên viết tắt cụm từ tiếng anh “Inter-Integrated Circuit” Nó giao thức giao tiếp phát triển Philips Semiconductors để truyền liệu xử lý trung tâm với nhiều IC board mạch sử dụng hai đường truyền tín hiệu Do tính đơn giản nên loại giao thức sử dụng rộng rãi cho giao tiếp vi điều khiển mảng cảm biến, thiết bị hiển thị, thiết bị IoT, EEPROMs, v.v … Đây loại giao thức giao tiếp nối tiếp đồng Nó có nghĩa bit liệu truyền bit theo khoảng thời gian đặn thiết lập tín hiệu đồng hồ tham chiếu Đặc điểm - Sau số đặc điểm quan trọng giao thức giao tiếp I2C: Chỉ cần có hai đường bus (dây) chung để điều khiển thiết bị / IC mạng I2C Không cần thỏa thuận trước tốc độ truyền liệu giao tiếp UART Vì vậy, tốc độ truyền liệu điều chỉnh cần thiết Cơ chế đơn giản để xác thực liệu truyền Sử dụng hệ thống địa bit để xác định thiết bị / IC cụ thể bus I2C Các mạng I2C dễ dàng mở rộng Các thiết bị kết nối đơn giản với hai đường bus chung I2C Arduino UNO R3 Vi điều khiển ATmega328 họ 8bit Điện áp hoạt động 5V DC (chỉ 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 (độ phân giải 10bit) Dòng tối đa chân I/O 30 mA Dòng tối đa (5V) 500 mA Dòng tối đa (3.3V) 50 mA Bộ nhớ flash 32 KB (ATmega328) với 0.5KB dùng bootloader SRAM KB (ATmega328) EEPROM KB (ATmega328) Các chân lượng GND (Ground): cực âm nguồn điện cấp cho Arduino UNO Khi bạn dùng thiết bị sử dụng nguồn điện riêng biệt chân phải nối với 5V: cấp điện áp 5V đầu Dòng tối đa cho phép chân 500mA 3.3V: cấp điện áp 3.3V đầu Dòng tối đa cho phép chân 50mA Vin (Voltage Input): để cấp nguồn cho Arduino UNO, bạn nối cực dương nguồn với chân cực âm nguồn với chân GND IOREF: điện áp hoạt động vi điều khiển Arduino UNO đo chân Và dĩ nhiên 5V Mặc dù bạn không lấy nguồn 5V từ chân để sử dụng chức khơng phải cấp nguồn RESET: việc nhấn nút Reset board để reset vi điều khiển tương đương với việc chân RESET nối với GND qua điện trở 10KΩ Các cổng vào/ra - Arduino UNO có 14 chân digital dùng để đọc xuất tín hiệu Một số chân digital có chức đặc biệt sau: chân Serial: (RX) (TX): dùng để gửi (transmit – TX) nhận (receive – RX) liệu TTL Serial Arduino Uno giao tiếp với thiết bị khác thơng qua chân Chân PWM (~): 3, 5, 6, 9, 10, 11: cho phép bạn xuất xung PWM với độ phân giải 8bit (giá trị từ → 8-1 tương ứng với 0V → 5V) hàm analogWrite() Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK chân dùng để truyền phát liệu giao thức SPI với thiết bị khác LED 13: Arduino UNO có đèn led màu cam (kí hiệu chữ L) Khi bấm nút Reset, bạn thấy đèn nhấp nháy để báo hiệu Nó nối với chân số 13 Khi chân người dùng sử dụng, LED sáng - Arduino UNO có 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 khoảng 0V → 5V Với chân AREF board, bạn để đưa vào điện áp tham chiếu sử dụng chân analog - Đặc biệt, Arduino UNO có chân A4 (SDA) A5 (SCL) hỗ trợ giao tiếp I2C/TWI với thiết bị khác Cảm biến nhiệt độ, độ ẩm DHT11 - Cảm biến độ ẩm nhiệt độ DHT11 cảm biến thông dụng chi phí rẻ dễ lấy liệu thông qua chuẩn giao tiếp wire (Chuẩn giao tiếp wire dùng chân Digital để truyền liệu) - Bộ tiền xử lý tín hiệu tích hợp cảm biến giúp bạn đọc liệu xác mà khơng phải qua tính tốn Thơng số kỹ thuật 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 5V VCC GND GND D4 DATA V Sơ đồ mạch I2C DHT11 Arduino R3 LCD VI Code #include #include LiquidCrystal_I2C lcd(0x27,16,2);// ý LCD có địa ( 0x3F 0x27) #include 10 const int DHTPIN = 9; //Đọc liệu từ DHT11 chân mạch Arduino const int DHTTYPE = DHT11; //Khai báo loại cảm biến, có loại DHT11/DHT22 /DHT21 -thay vao DHT dht(DHTPIN, DHTTYPE); void setup() { dht.begin(); lcd.init(); lcd.backlight(); Serial.begin(9600); // giao tiếp Serial vớ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 : ");Serial.println(t); Serial.print("Do am : ");Serial.println(h); } 11 VII Kết demo 12 ... học cách đo nhiệt độ - độ ẩm từ cảm biến xuất hình LCD Hiểu Arduino tạo cho người dùng đơn giản tiện lợi đến mức II Nội dung Đọc liệu từ cảm biến nhiệt độ - độ ẩm DHT11 Sử dụng hình LCD để xuấ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... Phần cứng cần thiết • Màn hình LCD 16 x • Mạch điều khiể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 linh kiện Giới thiệu LCD 16×2 Thơng