Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 30 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
30
Dung lượng
0,98 MB
Nội dung
BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT Mà ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ BÁO CÁO ĐỒ ÁN ĐỀ TÀI: ĐO NHIỆT ĐỘ, ĐỘ ẨM SỬ DỤNG CẢM BIẾN DHT11 HIỂN THỊ TRÊN LCD Giảng viên hướng dẫn: Đặng Văn Hải Sinh viên thực hiện: Nguyễn Văn Cường Nguyễn Văn Ninh Lê Minh Tuấn Hà Nội, 2021 MỤC LỤC LỜI NÓI ĐẦU Trong thập niên kỉ XX, từ đời công nghệ bán dẫn, kĩ thuật cảm biến có phát triển vượt bậc Các thiết bị điện tử sau tích hợp với mật độ cao cao diện tích nhỏ, nhờ thiết bị điện tử kích thước nhỏ nhiều chức Các thiết bị điện tử thông minh ngày nhiều chức giá thành ngày rẻ hơn, mà cảm biến có mặt khắp nơi Ngày nay, hệ thống đo lường - điều khiển, trình đặc trưng biến trạng thái Các biến trạng thái thường đại lượng không điện nhiệt độ, áp suất, lưu lượng, tốc độ, độ di chuyển v.v… Để thực trình đo lường điều khiển cần phải thu thập thông tin, đo đạc, theo dõi biến thiên biến trạng thái trình thực chức thiết bị cảm biến Hầu hết thiết bị kỹ thuật từ phức tạp đến đơn giản thiết bị điều khiển tự động, thiết bị văn phịng thiết bị gia đình tích hợp cảm biến Các thiết bị cảm biến dần trở thành phần thiếu đời sống đại Giờ khơng có lĩnh vực mà khơng sử dụng cảm biến Chúng có mặt hệ thống tự động phức tạp, người máy, kiểm tra chất lượng sản phẩm, tiết kiệm lượng, chống ô nhiễm môi trường Cảm biến ứng dụng rộng rãi lĩnh vực giao thông vận tải, sản xuất hàng tiêu dùng, bảo quản thực phẩm, sản xuất ô tô, điện thoại… Và cảm biến ứng dụng rộng rãi ngày cảm biến đo nhiệt độ, độ ẩm DHT11 Cảm biến đo nhiệt độ, độ ẩm ứng dụng thực tế phổ biến ứng dụng để theo dõi thời tiết, đo nhiệt độ phịng, nơi cần kiểm sốt độ ẩm… nhiều ứng dụng nhóm sinh viên chúng em tham gia vào thực đề tài “ĐO NHIỆT ĐỘ, ĐỘ ẨM SỬ DỤNG CẢM BIẾN DHT11 HIỂN THỊ TRÊN LCD” Trong trình thực làm chúng em chưa có kinh nghiệm nhiều nên cịn thiếu sót mong thầy (cơ) dạy chúng em thêm lần để chúng em thực đề tài thành công Chúng em xin chân thành cảm ơn!!! NHÓM SINH VIÊN THỰC HIỆN ĐỒ ÁN CHƯƠNG TỔNG QUAN VỀ ĐỀ TÀI 1.1 Giới thiệu đề tài Trong sống có nhiều yếu tố ảnh hưởng đến trình sản xuất người Trong nhiệt độ độ ẩm yếu tố đề cập tới nhiều, mạch đo nhiệt độ độ ẩm đời tất yếu Với phát triển công nghệ việc sản xuất mạch đo nhiệt độ độ ẩm đơn giản mà độ xác cao điều đơn giản Việc áp dụng thực tế phổ biến nhiệt độ độ ẩm đóng vai trị lớn ảnh hưởng đến người, hàng hố, máy móc, độ bền … Vì nhiệt độ sử dụng hầu hết nhà máy sản xuất, kho chứa hàng hố, bảo quản máy móc điều kiện vận hành Trong y tế sử dụng rộng rãi phòng cách ly, phòng điều trị cho bệnh nhân áp dụng hầu hết dây chuyền công nghệ sản xuất tuỳ theo nhu cầu mà tuỳ biến thêm chức đề tài để phù hợp với nhu cầu trình hoạt động ngồi chức hiển thị nhiệt độ độ ẩm khu vực cần khảo sát nhiệt độ độ ẩm Với đề tài mạch “Đo nhiệt độ độ ẩm” ta đo lúc nhiệt độ độ ẩm phát triển hiệu hơn, đề tài phạm vi Đồ án nên tính hiệu thực tế tính xác mạch khơng cao 1.2 Mục đích đề tài 1.3 Nhiệm vụ đề tài 1.4 Phương pháp nghiên cứu CHƯƠNG NỘI DUNG ĐỀ TÀI 2.1 Nội dung đề tài 2.2 Cơ sở lý thuyết 2.3 Sơ đồ đề tài CHƯƠNG TỔNG QUAN VỀ LINH KIỆN 3.1 Tổng quan Arduino Uno R3 3.1.1 Giới thiệu Arduino Arduino thực gây sóng gió trên thị trường người dùng DIY (là người tự chế sản phẩm mình) tồn giới vài năm gần đây, gần giống với Apple làm thị trường thiết bị di động Số lượng người dùng cực lớn đa dạng với trình độ trải rộng từ bậc phổ thơng lên đến đại học làm cho người tạo chúng phải ngạc nhiên mức độ phổ biến Hình 2.1 Những thành viên khởi xướng Arduino Arduino mà khiến sinh viên nhà nghiên cứu trường đại học danh tiếng MIT, Stanford, Carnegie Mellon phải sử dụng; ngay cả Google muốn hỗ trợ cho đời kit Arduino Mega ADK dùng để phát triển ứng dụng Android tương tác với cảm biến thiết bị khác? Arduino thật bo mạch vi xử lý dùng để lập trình tương tác với thiết bị phần cứng cảm biến, động cơ, đèn thiết bị khác Đặc điểm bật Arduino môi trường phát triển ứng dụng dễ sử dụng, với ngôn ngữ lập trình học cách nhanh chóng với người am hiểu điện tử lập trình Và điều làm nên tượng Arduino mức giá thấp tính chất nguồn mở từ phần cứng tới phần mềm Chỉ với khoảng $30, người dùng sở hữu bo Arduino có 20 ngõ I/O tương tác điều khiển chừng thiết bị Arduino đời thị trấn Ivrea thuộc nước Ý đặt theo tên vị vua vào kỷ thứ King Arduin Arduino thức đưa giới thiệu vào năm 2005 công cụ khiêm tốn dành cho sinh viên giáo sư Massimo Banzi, người phát triển Arduino, trường Interaction Design Instistute Ivrea (IDII) Mặc dù không tiếp thị cả, tin tức Arduino lan truyền với tốc độ chóng mặt nhờ lời truyền miệng tốt đẹp người dùng Hiện Arduino tiếng tới nỗi có người tìm đến thị trấn Ivrea để tham quan nơi sản sinh Arduino 3.1.2 Tổng quan Arduino Uno R3 3.1.2.1 Giới thiệu board Arduino Uno R3 Mạch Arduino Uno dòng mạch Arduino phổ biến, bắt đầu làm quen, lập trình với Arduino mạch Arduino thường nói tới dịng Arduino UNO Hiện dịng mạch phát triển tới hệ thứ (Mạch Arduino Uno R3) Arduino Uno R3 dòng bản, linh hoạt, thường sử dụng cho người bắt đầu Bạn sử dụng dịng Arduino khác như: Arduino Mega, Arduino Nano, Arduino Micro… Nhưng với ứng dụng mạch Arduino Uno lựa chọn phù hợp Hình 2.2 Board Arduino Uno R3 Arduino UNO R3 kit Arduino UNO hệ thứ 3, với khả lập trình cho ứng dụng điều khiển phức tạp trang bị cấu hình mạnh cho loại nhớ ROM, RAM Flash, ngõ vào digital I/O có nhiều ngõ có khả xuất tín hiệu PWM, ngõ đọc tín hiệu analog chuẩn giao tiếp đa dạng UART, SPI, TWI (I2C) 3.1.2.2 Cấu tạo Arduino Uno R3 Hình 2.3 Cấu trúc Arduino Uno R3 Nguồn (DC Power Jack) Cổng nguồn nhằm sử dụng nguồn điện bên ngồi pin, bình acquy hay adapter cho bo Arduino hoạt động Bo mạch hoạt động với nguồn điện áp từ – 12 volt Có thể cấp diện áp lớn nhiên chân 5V có mức điện áp lớn 5V Nếu sử dụng nguồn lớn 12 volt có tượng nóng làm hỏng board mạch Nên sử dụng nguồn ổn định từ đến 12 volt Cổng USB (USB Connector) Arduino sử dụng cáp USB để giao tiếp với máy tính Thơng qua cáp USB Upload chương trình cho Arduino hoạt động, ngồi USB cị nguồn cho Arduino Nút Reset (Reset Button) Nút reset sử dụng để reset lại chương trình chạy Đơi chương trình chạy gặp lỗi, người dùng reset lại chương trình ICSP ATmega 16U2 ICSP chữ viết tắt In-Circuit Serial Programming Đây chân giao tiếp SPI chip Atmega 16U2 Các chân thường sử dự án Arduino Các cổng (Digital Outputs) Có tất 14 chân xuất tín hiệu Arduino Uno, chân có dấu ~ chân băm xung (PWM), tức điều khiển tốc độ động độ sáng đèn Hình thể rõ chân để băm xung IC ATmega 328 IC Atmega 328 linh hồn bo mạch Arduino Uno, IC sử dụng việc thu thập liệu từ cảm biến, xử lý liệu, xuất tín hiệu ra, … IC Atmega 16U2 IC lập trình chuyển đổi USB –to-Serial dùng để giao tiếp với máy tính thông qua giao thức Serial (dùng cổng COM) ICSP ATmega 328 Các chân ICSP ATmega 328 sử dụng cho giao tiếp SPI (Serial Peripheral Interface), số ứng dụng Arduino có sử dụng chân này, ví dụ sử dụng module RFID RC522 với Arduino hay Ethernet Shield với Arduino Tín hiệu Analog (Analog Inputs) Các chân lấy tín hiệu Analog (tín hiệu tương tự) từ cảm biến để IC Atmega 328 xử lý Có tất chân lấy tín hiệu Analog, từ A0 đến A5 10 Chân cấp nguồn cho cảm biến Các chân dùng để cấp nguồn cho thiết bị bên role, cảm biến, RC servo, …trên khu vực có sẵn chân GND (chân nối đất, chân âm), chân 5V, chân 3.3V thể hình Nhờ chân mà người sử dụng không cần thiết bị biến đổi điện cấp nguồn cho cảm biến, role, rc servo, …Ngồi khu vực cịn có chân Vin chân reset, chân IOREF Tuy nhiên chân thường sử dụng nên tài liệu xin khơng sâu 12 Các linh kiện khác board Arduino Uno Ngoài linh kiện liệt kê bên trên, Arduino Uno số linh kiện đáng ý khác Trên bo có tất đèn led, bao gồm led nguồn (led ON nhằm cho biết boa cấp nguồn), led Tx Rx, led L Các led Tx Rx nhấp nháy có liệu truyền từ board lên máy tính ngược lại thơng qua cổng USB Led L được kết nối với chân số 13 Led gọi led on board (tức led bo), led giúp người dùng thực hành đơn giản mà không cần dùng thêm led ngồi Các thơng số chi tiết Arduino Uno R3: Nếu > 40 µs mà chân DATA khơng kéo xuống thấp nghĩa không giao tiếp với DHT11 • Chân DATA mức thấp 80 µs sau DHT11 kéo lên cao 80 µs Bằng việc giám sát chân DATA, MCU biết có giao tiếp với DHT11 khơng Nếu tín hiệu đo DHT11 lên cao, hồn thiện q trình giao tiếp MCU với DHT11 Bước 2: Đọc giá trị DHT11 - DHT11 trả giá trị nhiệt độ độ ẩm dạng Byte Trong đó: • Byte 1: giá trị phần nguyên độ ẩm (RH%) • Byte 2: giá trị phần thập phân độ ẩm (RH%) • Byte 3: giá trị phần nguyên nhiệt độ (°C) • Byte 4: giá trị phần thập phân nhiệt độ (°C) • Byte 5: kiểm tra tổng Nếu Byte = (Byte + Byte + Byte + Byte 4) giá trị độ ẩm nhiệt độ xác, sai kết đo khơng có nghĩa Ví dụ ta nhận 40 bit (5 Byte) liệu sau: 0011 0101 0000 0000 0001 1000 0000 0000 0100 1101 Tính tốn: Bit Checksum (Byte 5) = 0011 0101 + 0000 0000 + 0001 1000 + 0000 0000 = 0100 1101 Độ ẩm: 0011 0101 = 35H = 53% RH (ở phần thập phân có giá trị 0000 0000, nên ta bỏ qua khơng tính phần thập phân) Nhiệt độ: 0001 1000 = 18H = 24°C (ở phần thập phân có giá trị 0000 0000, nên ta bỏ qua khơng tính phần thập phân) - Đọc liệu: Sau giao tiếp với DHT11, DHT11 gửi liên tiếp 40 bit MCU, tương ứng chia thành byte kết nhiệt độ độ ẩm • Bit 0: Hình 2.6 Bit • Bit 1: Hình 2.7 Bit - Sau tiến hiệu đưa 0, ta đợi chân DATA DHT11 MCU kéo lên Nếu chân DATA khoảng 26 – 28 µs bit 0, cịn tồn 70 µs bit Do lập trình ta bắt sườn chân DATA, sau delay 50 µs Nếu giá trị đo ta đọc bit 0, giá trị đo ta đọc bit Cứ ta đọc Bit Hình 2.8 Cách truyền bit 3.3 Tổng quan LCD 3.3.1 Giới thiệu LCD Thế kỷ 21 chứng kiến phát triển vượt bậc ngành công nghệ Một số công nghệ phải kể đến cơng nghệ LCD Nhà vật lý người Áo Frinitzen Reinitzer phát tinh thể lỏng vào năm 1888 Màn hình tinh thể lỏng đuợc sản xuất vào năm 70 ký 20 với ứng dụng ban đầu máy tính, đồng hồ quan sát phần tử… Cơng nghệ hình tinh thể lỏng phát triển mạnh mẽ với giá thành ngày thấp, tiêu hao luợng kiểu dáng gọn nhẹ với nhiều ứng dụng thực tế như: tivi, hình máy tính, hình điện thoại… Ngày nay, thiết bị hiển thị LCD (Liquid Crystal Display) sử dụng nhiều ứng dụng VĐK LCD có nhiều ưu điểm so với dạng hiển thị khác: Nó có khả hiển thị kí tự đa dạng, trực quan (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, tốn tài nguyên hệ thống giá thành rẽ … LCD tên viết tắt (Liquid Crystal Display) hay biết đến tên dân dã hình tinh thể lỏng Có nhiều loại hình LCD khác Với ứng dụng nhỏ thường sử dụng loại hình cỡ nhỏ đơn giản loại LCD16x2 Các ký tự hiển thị hình với hàng, hàng hiển thị 16 ký tự Hình 2.1 Màn hình LCD 16x2 Có thể chia module LCD làm loại chính: + Loại hiển thị ký tự (charater LCD) gồm có các kích cỡ 16x1(16 kí tự x1 dịng); 16x2(16 ký tự x2 dòng); 16x4 (16 ký tự x4 dòng); 20x1 (20 ký tự x1 dòng) + Loại hiển thị đồ họa (graphic LCD) đen trắng màu gồm kích cỡ 1,47 inch (128x128 điểm ảnh); 1,8 inch (128x160 điểm ảnh); 2,4 inch (240x320 điểm ảnh) Thông số kỹ thuật: Điện áp hoạt động V Kích thước: 80 x 36 x 12.5 mm Chữ đen, xanh Khoảng cách hai chân kết nối 0.1 inch tiện dụng kết nối với Breadboard Tên chân ghi mặt sau hình LCD hổ trợ việc kết nối, dây điện Có đèn led nền, dùng biến trở PWM điều chình độ sáng để sử dụng điện Có thể điều khiển với dây tín hiệu 3.3.2 Sơ đồ, chức năng, liên kết chân LCD Sơ đồ chân LCD: Hình 2.2 Sơ đồ chân LCD 16x2 Mô tả chân, loại 16 chân Mô tả Châ n Ký hiệu VSS Chân nối đất cho LCD, thiết kế mạch ta nối chân với GND mạch điều khiển VDD Chân cấp nguồn cho LCD, thiết kế mạch ta nối chân với VCC=5V mạch điều khiển VEE Điều chỉnh độ tương phản LCD Chân chọn ghi (Register select) Nối chân RS với logic “0” (GND) logic “1” (VCC) để chọn ghi RS + Logic “0”: Bus DB0-DB7 nối với ghi lệnh IR LCD (ở chế độ “ghi” - write) nối với đếm địa LCD (ở chế độ “đọc” - read) + Logic “1”: Bus DB0-DB7 nối với ghi liệu DR bên LCD Chân chọn chế độ đọc/ghi (Read/Write) Nối chân R/W với logic R/W “0” để LCD hoạt động chế độ ghi, nối với logic “1” để LCD chế độ đọc Chân cho phép (Enable) Sau tín hiệu đặt lên bus DB0-DB7, lệnh chấp nhận có xung cho phép chân E E + Ở chế độ ghi: Dữ liệu bus LCD chuyển vào (chấp nhận) ghi bên phát xung (high-to-low transition) tín hiệu chân E + Ở chế độ đọc: Dữ liệu LCD xuất DB0-DB7 phát cạnh lên (low-to-high transition) chân E LCD giữ bus đến chân E xuống mức thấp 714 D0 - Tám đường bus liệu dùng để trao đổi thơng tin với MPU D7 Có chế độ sử dụng đường bus này: + Chế độ bit: Dữ liệu truyền đường, với bit MSB bit DB7 + Chế độ bit: Dữ liệu truyền đường từ DB4 tới DB7, bit MSB DB7 15 A Nguồn cho LED LCD 16 K Mass cho LED LCD Bảng 2.1 Kí hiệu chức chân LCD Ghi chú: Ở chế độ “đọc”, nghĩa MPU đọc thông tin từ LCD thông qua chân DBx Còn chế độ “ghi”, nghĩa MPU xuất thông tin điều khiển cho LCD thông qua chân DBx CHƯƠNG THỰC HIỆN ĐỒ ÁN 4.1 Mơ trên phần mềm Proteus 4.1.1 guhjuhujh Mơ hình thiết mạch Danh sách thiết bị ST T Tên Arduino Uno R3 LCD1602 Module DHT11 Module I2C Tổng quan hệ thống Chức Bộ điêu khiển LCD hiển thị thông số nhiệt độ, độ ẩm Cảm biến nhiệt độ độ ẩm Chuyển đổi chân cho LCD #include LiquidCrystal lcd(4, 5, 0, 1, 2, 3); byte degree_symbol[8] = { 0b00111, 0b00101, 0b00111, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000 }; int gate=11; volatile unsigned long duration=0; unsigned char i[5]; unsigned int j[40]; unsigned char value=0; unsigned answer=0; int z=0; int b=1; void setup() { lcd.begin(16, 2); lcd.print("Nhiet = "); lcd.setCursor(0,1); lcd.print("Do am = "); lcd.createChar(1, degree_symbol); lcd.setCursor(13,0); lcd.write(1); lcd.print("C"); lcd.setCursor(10,1); lcd.print("%"); } void loop() { delay(1000); while(1) { delay(1000); pinMode(gate,OUTPUT); digitalWrite(gate,LOW); delay(20); digitalWrite(gate,HIGH); pinMode(gate,INPUT_PULLUP);//by default it will become high due to internal pull up // delayMicroseconds(40); duration=pulseIn(gate, LOW); if(duration = 72) { while(1) { duration=pulseIn(gate, HIGH); if(duration = 20){ value=0;} else if(duration = 65){ value=1;} else if(z==40){ break;} i[z/8]|=value