Báo cáo mini project kỹ thuật đo lường chủ đề thiết kế và lắp mạch cảm biến đo nhiệt độ, độ ẩm

20 1 0
Báo cáo mini project kỹ thuật đo lường chủ đề thiết kế và lắp mạch cảm biến đo nhiệt độ, độ ẩm

Đ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

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA FAST OO   BÁO CÁO MINI PROJECT KỸ THUẬT ĐO LƯỜNG Chủ đề: Thiết kế lắp mạch cảm biến đo nhiệt độ, độ ẩm Sinh viên thực hiện: HUỲNH CÔNG ĐẠT – 20PFIEV2 NGUYỄN THANH PHI – 20PFIEV2 NGUYỄN DUY MINH – 20PFIEV2 NGUYỄN VĂN TIẾN – 20PFIEV1 Giáo viên hướng dẫn: TS LÊ QUỐC HUY Đà nẵng, 2022 MÔ TẢ Ý TƯỞNG:  Thiết kế mạch đo thông số môi trường (nhiệt độ, độ ẩm) bên phòng học Yêu cầu: + Nhiệt độ: 10oC – 40oC + Độ ẩm: 40% – 80%  Thiết kế mạch đo: Nhiệt độ khoảng –50 oC Độ ẩm khoảng 20 – 80% Độ xác:  Sai số dự kiến : Nhiệt độ ± 2oC Độ ẩm ± 5%  Tùy thuộc vào linh kiện, điện trở dây dẫn  Kiến thức:  Hiểu nắm vững khái niệm, cấu tạo nguyên lý hoạt động thiết bị linh kiện điện tử : Arduino, cảm biến nhiệt độ, LCD 16x2, Module giao tiếp I2C I SƠ ĐỒ KHỐI: Cảm biến • Cảm biến nhiệt độ + độ ẩm DHT11 Chuẩn hóa • Tích hợp sẵn cảm biến DHT11 Xử lý tín hiệu • Arduino UNO R3 Thể kết • LCD 16x2 giao tiếp qua chuẩn I2C II GIỚI THIỆU LINH KIỆN: Cảm biến nhiệt độ, độ ẩm DHT11  Cảm biến nhiệt độ, độ ẩm DHT11 loại cảm biến phổ biến giá thành rẻ dễ lấy dữu liệu thông qua chân wire (Giao tiếp Digital dây nhất)  Bộ tiền xử lý tín hiệu tích hợp sẵn nên khơng cần thêm tính tốn Arduino UNO R3: Arduino UNO cấp nguồn 5V thơng qua cổng USB cấp nguồn ngồi với điện áp khuyên dùng 7-12V DC giới hạn 6-20V 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) LCD (Liquid Crystal Display) 16x2 Chức chân: Chân Ký Mô tả 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 RS Chân chọn ghi (Register select) Nối chân RS với logic “0” (GND) logic “1” (VCC) để chọn ghi + 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 R/W Chân chọn chế độ đọc/ghi (Read/Write) Nối chân R/W với logic “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 E đặt lên bus DB0-DB7, lệnh chấp nhận có xung cho phép chân 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 DB0DB7 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 - 14 DB0 Tám đường bus liệu dùng để trao đổi thơng tin với MPU Có chế độ sử dụng đường bus : DB7 + 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 Nguồn dương cho đèn 15 16 - GND cho đèn MODULE I2C Thông thường, để sử dụng hình LCD, ta phải nhiều chân Arduino để điều khiển Do vậy, để đơn giản hóa cơng việc, người ta tạo loại mạch điều khiển hình LCD sử dụng giao tiếp I2C Nói cách đơn giản, ta tốn dây để điều khiển hình, thay dây cách thơng thường Sau ta việc hàn mạch hình bên Bởi giao tiếp I2C thiết kế riêng nhằm giúp LCD giao tiếp với Board xử lý cách dễ dàng, nên dễ kết nối Cách nối chân LCD 16x2 vào Module I2C Nối chân Module I2C vào Ardruino Uno Module hình LCD (16x2) GND Vcc SDA SCL Arduino GND 5V A4 A5 III NGUYÊN LÝ HOẠT ĐỘNG: Khâu cảm biến:  Cảm biến DHT11 thu nhận tín hiệu từ mơi trường, tính tốn, so lệch đưa giá trị digital sau chuẩn hóa tính tốn xác chân tín hiệu SIGNAL  Đưa tín hiệu thu từ cảm biến DHT11 vào chân D2 ARDRUINO UNO DHT11 GND Vcc Signal Arduino UNO R3 GND 5V D2 Khâu chuẩn hóa: Cảm biến DHT11 tích hợp sẵn chuẩn hóa tín hiệu, nên tín hiệu đưa từ cảm biến DHT11 qua chân SIGNAL tín hiệu Digital Rất thuận lợi giảm thiểu sai số phần cứng nhà sản xuất tính tốn kỹ lưỡng Khâu xử lý tín hiệu: Tín hiệu sau đo lường chuẩn hóa đưa vào chân D2 Arduino Uno Arduino nhận tín hiệu vào, nạp code xuất tín hiệu đến khâu hiển thị  Code nạp cho Arduino: // Gọi thư viện DHT11 #include "DHT.h" const int DHTPIN = 2; //Đọ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 DHT dht(DHTPIN, DHTTYPE); void setup() { 10 Serial.begin(9600); 11 dht.begin(); // Khởi động cảm biến 12 } 13 14 15 16 17 18 19 20 21 22 23 24 25 26 void loop() { float h = dht.readHumidity(); //Đọc độ ẩm float t = dht.readTemperature(); //Đọc nhiệt độ Serial.print("Nhiet do: "); Serial.println(t); //Xuất nhiệt độ Serial.print("Do am: "); Serial.println(h); //Xuất độ ẩm Serial.println(); delay(1000); //Xuống hàng //Đợi giây } Khâu hiển thị: Kết sau đo xử lý xuất hình LCD 16x2 thơng qua module giao tiếp I2C Module I2C for LCD Arduino (16x2) GND GND Vcc 5V SDA A4 SCL A5 Code hiển thị LCD 16x2 #include #include LiquidCrystal_I2C lcd(0x27,16,2); //0x3F địa hình bus I2C //16 số cột hình //2 số dịng hình void setup() { 10 lcd.init(); //Khởi động hình 11 12 lcd.backlight(); //Bật đèn 13 lcd.print("Hello world"); //Xuất chữ Hello world 14 lcd.setCursor(0,1); //Đưa trỏ tới hàng 1, cột 15 lcd.print("I love Arduino !");//Xuất chữ I love Ardruino 16 } 17 18 void loop() { 19 } 20 SƠ ĐỒ MẠCH TỔNG QUÁT Code đề tài: #include #include #include LiquidCrystal_I2C lcd(0x27,16,2); const int DHTPIN = 2; const int DHTTYPE = DHT11; DHT dht(DHTPIN, DHTTYPE); byte degree[8] = { 0B01110, 10 0B01010, 11 0B01110, 12 0B00000, 13 14 15 16 17 0B00000, 0B00000, 0B00000, 0B00000 }; 18 void setup() { 19 lcd.init(); 20 lcd.backlight(); 21 lcd.print("Nhiet do: "); 22 lcd.setCursor(0,1); 23 lcd.print("Do am: "); 24 lcd.createChar(1, degree); 25 dht.begin(); 26 } 27 void loop() { 28 float h = dht.readHumidity(); 29 float t = dht.readTemperature(); 30 if (isnan(t) || isnan(h)) { // Kiểm tra xem thử việc đọc giá trị có bị thất bại hay không 31 } 32 else { 33 lcd.setCursor(10,0); 34 lcd.print(round(t)); 35 lcd.print(" "); 36 lcd.write(1); 37 lcd.print("C"); 38 39 40 41 42 lcd.setCursor(10,1); lcd.print(round(h)); lcd.print(" %"); } } IV KẾT QUẢ ĐỀ TÀI:  Kết luận:  Mạch chạy ổn định  Nhiệt độ đo có sai số chấp nhận  Kết gần với nhiệt độ môi trường thực tế  Thỏa mản yêu cầu ban đầu Bài báo cáo đến xin hết Chúc thầy tràn đầy lượng cho sống, thành công công việc ! PHỤ LỤC Trong đề tài có sử dụng phần mềm bổ trợ sau: Ardruino IDE – Viết code Ms Word – Viết báo cáo Giá thành linh kiện: Cảm biến DHT11 35 000 đồng Ardruino UNO R3 140 000 đồng

Ngày đăng: 29/06/2023, 10:11

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan