ĐỒ án môn học VI xử lý TRONG đo LƯỜNG và điều KHIỂN điều KHIỂN cửa, đèn và QUẠT sử DỤNG VI điều KHIỂN

49 8 0
ĐỒ án môn học VI xử lý TRONG đo LƯỜNG và điều KHIỂN điều KHIỂN cửa, đèn và QUẠT sử DỤNG VI điều KHIỂN

Đ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

lOMoARcPSD|17343589 BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA ĐIỀU KHIỂN VÀ TỰ ĐỘNG HĨA ĐỒ ÁN MƠN HỌC VI XỬ LÝ TRONG ĐO LƯỜNG VÀ ĐIỀU KHIỂN Đề tài: ĐIỀU KHIỂN CỬA, ĐÈN VÀ QUẠT SỬ DỤNG VI ĐIỀU KHIỂN Giảng viên hướng dẫn : TS Đoàn Thị Hương Giang Sinh viên thực hiện: Tạ Tiến Đạt – MSV: 19810000125 Đỗ Như Công – MSV: 19810000304 Trịnh Mai Doanh – MSV: 19810000006 Quách Đăng Lộc – MSV: 19810000229 Lớp : D14THDK&TDH Hà Nội, tháng 12 năm 2022 lOMoARcPSD|17343589 MỤC LỤC LỜI MỞ ĐẦU LỜI CẢM ƠN Đánh giá nhận xét GV hướng dẫn CHƯƠNG 1: ĐẶT VẤN ĐỀ VÀ NHIỆM VỤ ĐỒ ÁN 1.1 Giới thiệu đề tài .7 1.2 Mục đích thiết kế 1.3 Phạm vi thiết kế 1.4 Nhiệm vụ CHƯƠNG II: TỔNG QUAN VỀ LINH KIỆN SỬ DỤNG 2.1 Board Arduino Uno R3 2.2 Keypad 4*4 2.3 Màn hình LCD 16*2 10 2.4 Một số linh kiện khác dùng đề tài .12 2.4.1.Module I2C cho hình LCD 16*2 12 2.4.2.Động Servo SG90 12 2.4.3.Module BUCK LM2596S 3A .13 2.4.4.Module Wifi ESP8266 14 2.4.5.Relay 5v, Đèn Led, Quạt 5v 15 CHƯƠNG III: THIẾT KẾ HỆ THỐNG 17 3.1 Sơ đồ khối 17 3.2 Khối nguồn nuôi 17 3.3 Khối nút điều khiển 18 3.4 Khối hiển thị thông báo trạng thái 18 3.5 Sơ đồ nguyên lý hệ thống 19 3.6 Nguyên lý hoạt động 19 3.7 Hệ thống điều khiển qua internet 20 3.8 Mô tả hoạt động hệ thống 20 3.9 Hình ảnh thực tế hệ thống 21 CHƯƠNG IV: LƯU ĐỒ THUẬT TỐN VÀ LẬP TRÌNH 22 4.1 Lưu đồ thuật toán hệ thống 22 4.2 Chương trình điều khiển 25 lOMoARcPSD|17343589 TÀI LIỆU THAM KHẢO 36 LỜI MỞ ĐẦU Như biết kỹ thuật vi điều khiển trở nên quen thuộc ngành kỹ thuật dân dụng Các vi điều khiển có khả xử lý nhiều hoạt động phức tạp mà cần chip vi mạch nhỏ, thay tủ điều khiển lớn phức tạp mạch điện gọn nhẹ, dễ dàng thao tác sử dụng Vi điều khiển khơng góp phần vào phát triển kỹ thuật điều khiển tự động hóa Để tìm hiểu chi tiết vi điều khiển ứng dụng thực tế, nhóm chúng em chọn đề tài điều khiển cửa, đèn quạt sử dụng vi điều khiển Tuy nhiên, thời gian có hạn kiến thức chun mơn cịn hạn chế nên q trình thực đồ án khơng thể tránh thiếu sót định Vì vậy, chúng em mong giúp đỡ, ý kiến đóng góp thầy tất bạn để đồ án hoàn thiện Chúng em chân thành cảm ơn! Hà Nội, ngày tháng năm 2022 Nhóm Sinh Viên lOMoARcPSD|17343589 LỜI CẢM ƠN Lời chúng em xin gửi lời cảm ơn đến TS.Đồn Thị Hương Giang Cơ hướng dẫn giúp đỡ tận tình chúng em nghiên cứu hoàn thành tốt đồ án Những lời nhận xét góp ý hướng dẫn thầy giúp chúng em có định hướng đắn q trình thực đồ án, giúp chúng em nhìn ưu khuyết điểm đồ án bước khắc phục để có kết tốt Chúng em xin cảm ơn thầy cô khoa Điều Khiển Tự Động Hóa, mơn Vi Xử Lý Đo Lường Điều Khiển tận tình bảo, truyền đạt cho chúng em kiến thức chuyên ngành, công nghệ cách làm việc nhóm đề hồn thành tốt đồ án môn học Hà Nội, tháng 12 năm 2022 lOMoARcPSD|17343589 Đánh giá nhận xét GV hướng dẫn Giảng viên hướng dẫn lOMoARcPSD|17343589 CHƯƠNG 1: ĐẶT VẤN ĐỀ VÀ NHIỆM VỤ ĐỒ ÁN 1.1 Giới thiệu đề tài - Ngày nay, với bùng nổ nghành kĩ thuật làm cho đời sống người ngày hoàn thiện Các thiết bị tự động hóa vào sản xuất hàng hóa sinh hoạt ngày người Việc thiết kế mơ hình hệ thống nhà thơng minh phục vụ đời sống cần thiết - Giờ thay việc đến cơng tắc đèn,… để bật tắt trước đây, với giải pháp nhà thơng minh hồn tồn điều khiển tất bóng đèn nhà với cú chạm nhẹ vào hình 1.2 Mục đích thiết kế - Từ kiến thức ta học lý thuyết, từ nâng cao tính vận dụng vào khâu thiết kế để có sản phẩm tốt chất lượng - Cải tiến công nghệ, tiết kiệm lượng khơng thời gian đóng ngắt - Thiết kế điều khiển phù hợp với công suất với thiết bị phịng - Tạo mơ hình cửa tự động, sử dụng hệ thống nhúng dùng vi điều khiển - Có khả hoạt động tự động, mở cửa nhập mật (Password) 1.3 Phạm vi thiết kế - Mô hệ thống nhà thông minh tảng Arduino - Kết hợp với IOT để điều khiển hệ thống 1.4 Nhiệm vụ - Tìm hiểu vi điều khiển Arduino, thiết cần thiết kết nối với Arduino - Tìm hiểu động điều khiển led chiếu sáng - Mô phần mềm ứng dụng Proteus - Thiết kế Board Mạch Arduino Uno R3 SMD lOMoARcPSD|17343589 CHƯƠNG II: TỔNG QUAN VỀ LINH KIỆN SỬ DỤNG 2.1 Board Arduino Uno R3 Hình 1: Cấu tạo board Arduino Uno R3  Thông số kỹ thuật: ● Vi điều khiển ATmega 328 bit ● Đ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ụ ~30mA ● Điện áp vào khuyên dùng - 12 VDC ● Điện áp vào giới hạn - 20 VDC ● Số chân Digital I/O 14 (6 chân Hardware PWM) ● Số chân Analog (10 bit) ● 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 lOMoARcPSD|17343589 ● Bộ nhớ flash 32 KB (ATmega 328) với 0.5 KB dùng Bootloader ● SRAM KB (ATmega 328) ● EEPROM KB (ATmega 328)  Sử dụng Arduino Uno R3: - Chân chân 1: chân TX, RX chân dùng chân I/O bình thường thực tế dùng để trống cho chức uart - Chân PWM: 3, 5, 9, 10, 11: Cho phép xuất xung PWM với độ phân giải bit - Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK): dùng giao tiếp SPI - Chân 13: kết nối với Led (ký hiệu chữ L Board), người dùng dùng chân để điều khiển Led Không nên dùng chân để điều khiển thiết bị ngoại vi Vì mở nguồn ootloader làm cho chân 13 chớp chớp nên ảnh hưởng đến thiết bị điều khiển - Chân A0-> A5: chân đọc ADC (độ phân giải 10 bit) - Chân A4 (SDA), A5(SCL): dùng giao tiếp I2C - Tất chân kể sử dụng chức I/O (ngõ vào/ra) bình thường 2.2 Keypad 4*4 lOMoARcPSD|17343589 Hình 2: Cấu tạo Keypad 4*4 Thông số kỹ thuật:  Module bàn phím ma trận 4x4 loại phím mềm  Độ dài cáp: 88mm  Nhiệt độ hoạt động ~ 70oC  Đầu nối chân  Kích thước bàn phím 77 x 69 mm 2.3 Màn hình LCD 16*2 Hình3:Cấu tạo hình LCD 16*2 - Thơng số kỹ thuật: ● 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 - Chức chân Mơ ti Chân Kí hină VSS Chân châng chế độ bit bit tùy theo ứng dụng ta làm.ệu Chân căng cuồn cho LCD, thiết kế mạch ta nối chân lOMoARcPSD|17343589 VDD với VCC=5V ccăng cu điV ccăng Vee Chân dùng đcho LCD, thiết kế mạch ta nối c Chân chy dùng đcho LCD, thiết kế mạch ta nối chân với Vdụng ta làm.ệu EN).CC) đn chy dùng đ ghi RS + Logic “0”: Bus DB0-DB7 si thiết kế mạch ta nối chân với Vdụng ta làm.ệu EN).điều khiển Led Không nên dùng chân để điều khiển thiế + Logic “1”: Bus DB0-DB7 si thiết kế mạch ta nối chân với Vdụng ta R/W Chân ch “1”: Bus DB0-DB7 (Read/Write) Nối chân R/W với logic “0” để LCD hoạt đhân ch “1”: Bus DB0-DB7 (Read/Write) Nối chân R/W với logic Chân cho phép (Enable) Sau tín hi chân R/W với logic “0” để LCD hoạtàm.ệu EN).điều khiển Led Không nên dùng chân nàyhân E E + ân cho phép (Enable) Sau tín hi chân R/W với logic “0” để LCD hoạtàm.ệu EN).điều khiển Led Không nên dùng chân nàyhân E.ều khiển thiết bị ngoạ + Ở châ đh đhân Dh liân si đưân LCD xuDn DB0-DB7 phát hiát ciát lên (low- to-high transition) chân E LCD giữ bus đến chân E xuống mlow- toTám đưto-high transition) chân E LCD giữ bus đến chân E xuốngu EN).điều khiển 7-14 DB0 DB + Chđưto-high transition) chân E LCD giữ bus đến kMSB bit DB7 + ChC đh bit : Di lith đưth truyđư đưênđ tư DB4 tB4 DB7, bit MSB DB7 Chi ti7 si di7 giao thao đưyo đư cưy phyo sau 15 Ngu.Chio-high transitio 16 GND cho đèn nND Bảng 1: Bảng chức chân LCD lOMoARcPSD|17343589 } if(str[0]==pass[0] && str[1]==pass[1] && str[2]==pass[2] && str[3]==pass[3] && count==1 ){ lcd.clear(); lcd.setCursor(0,0); lcd.print("Nhap matkhau moi"); i=0; count=0; ktra=1; } else if(ktra==0 && count==1 ) { lcd.clear(); lcd.setCursor(0,0); lcd.print("Sai mat khau"); delay(2000); i=0; count=0; nochange=1; lcd.clear(); lcd.setCursor(1,0); lcd.print("Nhap mat khau "); } if(count==1 && nochange==0 && ktra==1){ pass[0]=str[0]; Downloaded by v? ngoc (vuchinhhp10@gmail.com) lOMoARcPSD|17343589 pass[1]=str[1]; pass[2]=str[2]; pass[3]=str[3]; lcd.clear(); lcd.setCursor(2,0); lcd.print("Doi mat khau"); lcd.setCursor(3,1); lcd.print("thanh cong"); delay(2000); lcd.clear(); lcd.setCursor(1,0); lcd.print("Nhap mat khau"); nochange=1; ktra=0; i=0; count=0; } } void closedoor(){ myServo.write(100); delay(5); } void opendoor(){ myServo.write(10); delay(5); Downloaded by v? ngoc (vuchinhhp10@gmail.com) lOMoARcPSD|17343589 } void checkbutton(){ if(digitalRead(8)==0){ digitalWrite(6,HIGH); } if(digitalRead(9)==0){ digitalWrite(7,HIGH); } if(digitalRead(10)==0){ digitalWrite(6,LOW); digitalWrite(7,LOW); } } void nhandata(){ if(Serial.available()){ String Data=""; while(Serial.available()){ Data = Serial.readString();//Đọc tất đệm Serial.print(Data); } if(Data=="DENON"){ //Kiểm tra chuỗi nhận digitalWrite(6,HIGH); Serial.print("D1on"); }else if(Data=="DENOFF"){ digitalWrite(6,LOW); Downloaded by v? ngoc (vuchinhhp10@gmail.com) lOMoARcPSD|17343589 }else if(Data=="QUATON"){ digitalWrite(7,HIGH); }else if(Data=="QUATOFF"){ digitalWrite(7,LOW); }else if(Data=="CUAON"){ myServo.write(10); delay(5); }else if(Data=="CUAOFF"){ myServo.write(100); delay(5); }else if(Data=="ALLON"){ digitalWrite(6,HIGH); digitalWrite(7,HIGH); }else if(Data=="ALLOFF"){ digitalWrite(6,LOW); digitalWrite(7,LOW); } } } #include #include #include #include #include // Khai báo thư viện LCD // Khai báo thư viện Keypad Downloaded by v? ngoc (vuchinhhp10@gmail.com) lOMoARcPSD|17343589 const byte ROWS = 4; // Bốn hàng const byte COLS = 3; // Ba cột char keys[ROWS][COLS] = { {'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}}; byte rowPins[ROWS] = {A0, A1, A2, A3}; byte colPins[COLS] = {2, 3, 4}; Servo myservo; LiquidCrystal_I2C lcd(0x27, 16, 2); // Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS); char pass[4] = {'1', '1', '1', '1'}; // Cài đặt mật tùy ý char str[4] = {' ', ' ', ' ', ' '}; int i, j, count = 0, warning = 0, pos = 0, nochange=1, ktra ; int Status=0, check=0, countcard=0, done=1, flag=1, the1=0, the2=0, master=0; int mypos=0; void setup() { pinMode(10, INPUT_PULLUP); pinMode(9, INPUT_PULLUP); pinMode(8, INPUT_PULLUP); pinMode(7, OUTPUT); pinMode(6, OUTPUT); Downloaded by v? ngoc (vuchinhhp10@gmail.com) lOMoARcPSD|17343589 digitalWrite(7,LOW); digitalWrite(6,LOW); lcd.init(); lcd.begin(16, 2); lcd.backlight(); lcd.print(" Nhap mat khau"); myservo.attach(5); myservo.write(0); } void loop() { password(); phim(); } void password(){ char key = keypad.getKey(); // Ký tự nhập vào gán cho biến Key if (key) // Nhập mật { if (i == 0) { str[0] = key; lcd.setCursor(6, 1); lcd.print(str[0]); delay(500); // Ký tự hiển thị hình LCD 1s lcd.setCursor(6, 1); lcd.print("*"); // Ký tự che dấu * Downloaded by v? ngoc (vuchinhhp10@gmail.com) lOMoARcPSD|17343589 } if (i == 1) { str[1] = key; lcd.setCursor(7, 1); lcd.print(str[1]); delay(500); lcd.setCursor(7, 1); lcd.print("*"); } if (i == 2) { str[2] = key; lcd.setCursor(8, 1); lcd.print(str[2]); delay(500); lcd.setCursor(8, 1); lcd.print("*"); } if (i == 3) { str[3] = key; lcd.setCursor(9, 1); lcd.print(str[3]); delay(500); lcd.setCursor(9, 1); lcd.print("*"); count = 1; Downloaded by v? ngoc (vuchinhhp10@gmail.com) lOMoARcPSD|17343589 } i++; } if (count == && nochange==1) { if (str[0] == pass[0] && str[1] == pass[1] && str[2] == pass[2] && str[3] == pass[3] && Status==0) { lcd.clear(); lcd.setCursor(3,0); lcd.print("Chinh xac!"); delay(2000); opendoor(); lcd.clear(); lcd.setCursor(4,0); lcd.print("Mo cua!"); i = 0; count = 0; warning = 0; Status=1; } else { warning++; lcd.clear(); Downloaded by v? ngoc (vuchinhhp10@gmail.com) lOMoARcPSD|17343589 lcd.print("Khong chinh xac!"); delay(1000); if (warning == 3){ lcd.clear(); lcd.setCursor(4,0); lcd.print("Hay cho "); lcd.setCursor(2,1); lcd.print("roi thu lai "); warning = 0; } lcd.clear(); lcd.setCursor(3,0); lcd.print("Thu lai!"); delay(1000); closedoor(); lcd.clear(); lcd.setCursor(1,0); lcd.print("Nhap mat khau"); i = 0; count = 0; Status=0; } Downloaded by v? ngoc (vuchinhhp10@gmail.com) lOMoARcPSD|17343589 } switch (key) { case '#': lcd.clear(); lcd.setCursor(3,0); lcd.print("Dong cua!"); closedoor(); delay(3000); lcd.clear(); lcd.setCursor(1,0); lcd.print("Nhap mat khau"); i = 0; Status=0; break; } switch (key) { case '*': nochange=0; count=0; i=0; Downloaded by v? ngoc (vuchinhhp10@gmail.com) lOMoARcPSD|17343589 lcd.clear(); lcd.setCursor(0,0); lcd.print("Nhap mat khau cu"); break; } if(str[0]==pass[0] && str[1]==pass[1] && str[2]==pass[2] && str[3]==pass[3] && count==1 ){ lcd.clear(); lcd.setCursor(0,0); lcd.print("Nhap matkhau moi"); i=0; count=0; ktra=1; } else if(ktra==0 && count==1 ) { lcd.clear(); lcd.setCursor(0,0); lcd.print("Sai mat khau roi"); delay(2000); i=0; count=0; nochange=1; lcd.clear(); lcd.setCursor(1,0); lcd.print("Nhap mat khau "); Downloaded by v? ngoc (vuchinhhp10@gmail.com) lOMoARcPSD|17343589 } if(count==1 && nochange==0 && ktra==1){ pass[0]=str[0]; pass[1]=str[1]; pass[2]=str[2]; pass[3]=str[3]; lcd.clear(); lcd.setCursor(2,0); lcd.print("Doi mat khau"); lcd.setCursor(3,1); lcd.print("thanh cong"); delay(2000); lcd.clear(); lcd.setCursor(1,0); lcd.print("Nhap mat khau"); nochange=1; ktra=0; i=0; count=0; } } void closedoor(){ for(pos=mypos; pos>0; pos ){ Downloaded by v? ngoc (vuchinhhp10@gmail.com) lOMoARcPSD|17343589 myservo.write(pos); delay(5); } mypos=0; } void opendoor(){ for(pos=mypos; pos

Ngày đăng: 10/01/2023, 23:17

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

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

Tài liệu liên quan