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

BÁO CÁO BÀI TẬP LỚN MÔN LẬP TRÌNH HỆ THỐNG NHÚNG HỆ THỐNG KHÓA CỬA ĐIỆN TỬ

34 41 3
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Báo Cáo Bài Tập Lớn Môn Lập Trình Hệ Thống Nhúng Hệ Thống Khóa Cửa Điện Tử
Tác giả Nguyễn Thị Mỹ Anh, Trần Thế Nhân, Nguyễn Phúc Thịnh, Mai Trí Tín
Người hướng dẫn ThS. Nguyễn Văn Thanh
Trường học Trường Đại Học Tiền Giang
Chuyên ngành CNKT Điều Khiển Và Tự Động Hóa
Thể loại báo cáo bài tập lớn
Năm xuất bản 2022
Thành phố Tiền Giang
Định dạng
Số trang 34
Dung lượng 1,16 MB

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

Nội dung

Hệ thống khóa cửa điện tử Ngày nay với sự phát triển của xã hội hiện đại ai trong số chúng ta cũng cần bảo những thiết bị bảo vệ tài sản trong nhà như khoá cửa, thiết bị cảnh báo chống

Trang 1

HỆ THỐNG KHÓA CỬA ĐIỆN TỬ

NGÀNH: CNKT ĐIỀU KHIỂN VÀ TỰ ĐỘNG HÓA

SINH VIÊN THỰC HIỆN:

Trang 2

HỆ THỐNG KHÓA CỬA ĐIỆN TỬ

NGÀNH: CNKT ĐIỀU KHIỂN VÀ TỰ ĐỘNG HÓA

Sinh viên tham gia thực hiện:

Nguyễn Thị Mỹ Anh 020147011 Trần Thế Nhân 020147018 Nguyễn Phúc Thịnh 020147010 Mai Trí Tín 020147022 Giảng viên giảng dạy: ThS Nguyễn Văn Thanh

Tiền Giang, tháng12/năm2022

Trang 3

i

LỜI CẢM ƠN

Trong suốt quá trình hoàn thiện môn học Lập Trình Hệ Thống Nhúng, nhóm chúng em đã nhận được sự chỉ dẫn nhiệt tình của Thầy ThS Nguyễn Văn Thanh – Giảng viên Trường Đại học Tiền Giang Với sự giúp đỡ nhiệt tình của Thầy mà nhóm chúng em có thể hoàn thành tốt được những mục tiêu

mà đề tài đã đặt ra nói riêng và học phần Lập Trình Hệ Thống Nhúng nói chung

Thông qua học phần này nhóm chúng em đã tích lũy được nhiều kinh nghiệm quý báu về kiến thức lý thuyết lẫn thực tế và cách hoàn thiện một bài báo cáo đồ án Một lần nữa nhóm xin gửi lời cảm ơn đến Thầy đã giúp nhóm hoàn thành học phần

Trong quá trình viết báo cáo nhóm cũng đã cố gắng hết sức nhưng cũng thể tránh khỏi những lỗi sai xót nhỏ Mong quý Thầy Cô thông cảm bỏ qua Trân trọng cảm ơn!

Trang 4

ii

MỤC LỤC

Trang

LỜI CẢM ƠN i

MỤC LỤC ii

DANH MỤC ĐỒ THỊ VÀ HÌNH VẼ v

DANH MỤC BẢNG BIỂU vi

CHƯƠNG 1 TỔNG QUAN 1

1.1 Hệ thống khóa cửa điện tử 1

1.2 Linh kiện sử dụng 1

1.2.1 Màn hình LCD 16x2 1

1.2.2 Động cơ Servo SG90 2

1.2.3 Module bàn phím ma trận 4x3 3

1.2.4 Vi xử lý 3

1.2.5 Một số linh kiện khác: 5

CHƯƠNG 2 THIẾT KẾ VÀ THI CÔNG HỆ THỐNG 6

2.1 Thiết kế phần cứng 6

2.1.1 Lưu đồ giải thuật 6

2.1.1.1 Giải thuật chương trình chính 6

2.1.1.2 Giải thuật chương trình con 1 7

2.1.1.3 Giải thuật chương trình con 2 8

2.1.1.4 Giải thuật chương trình con 3 9

2.1.1.5 Giải thuật chương trình con 4 9

2.1.2 Sơ đồ khối 10

2.1.3 Nguyên lý hoạt động của hệ thống 10

2.2 Thi công phần mềm 10

2.2.1 Phần mềm Arduino IDE 10

2.2.1.1 Thêm thư viện của cần sử dụng trong Arduino IDE 10

2.2.1.2 Chương trình Arduino IDE 13

2.2.2 Phần mềm Proteus 13

CHƯƠNG 3 THỰC NGHIỆM VÀ KẾT LUẬN 15

Trang 5

iii

3.1 Kết quả 15

3.2 Kết luận 18

DANH MỤC TÀI LIỆU THAM KHẢO 19

PHỤ LỤC 20

Trang 7

v

DANH MỤC ĐỒ THỊ VÀ HÌNH VẼ

Hình 1.1: LCD 1602 kèm moule I2C màu xanh lá 1

Hình 1.2: Động cơ Servo SG90 2

Hình 1.3: Module bàn phím ma trận 4x3 3

Hình 1.4: Kit Arduino UNO 4

Hình 2.1: Giải thuật chương trình chính 6

Hình 2.2: Giải thuật thay đổi mật khẩu 7

Hình 2.3: Giải thuật nhập mật khẩu mặt định 8

Hình 2.4: Giải thuật mở cửa 9

Hình 2.5: Giải thuật đóng cửa 9

Hình 2.6: Sơ đồ khối hệ thống 10

Hình 2.7: Hướng dẫn thêm thư viện Keypad.h trên Arduino 11

Hình 2.8: Hướng dẫn thêm thư viện LiquidCrystal.h trên Arduino 11

Hình 2.9: Hướng dẫn thêm thư viện LiquidCrystal.h trên Arduino 12

Hình 2.10: Hướng dẫn xuất file hex 12

Hình 2.11: Sơ đồ mô phỏng hệ thống trên phần mềm Proteus 13

Hình 2.12: Hướng dẫn thêm file hex (1) 14

Hình 2.13: Hướng dẫn thêm file hex (2) 14

Hình 3.1: Kết quả mô phỏng (1) 15

Hình 3.2: Kết quả mô phỏng (2) 15

Hình 3.3: Kết quả mô phỏng (3) 16

Hình 3.4: Kết quả mô phỏng (4) 16

Hình 3.5: Kết quả mô phỏng (5) 17

Hình 3.6: Kết quả mô phỏng (6) 17

Trang 8

vi

DANH MỤC BẢNG BIỂU

Bảng 1.1: Thông số kỹ thuật của kit Arduino UNO R3 4

Trang 9

1

CHƯƠNG 1 TỔNG QUAN 1.1 Hệ thống khóa cửa điện tử

Ngày nay với sự phát triển của xã hội hiện đại ai trong số chúng ta cũng cần bảo những thiết bị bảo vệ tài sản trong nhà như khoá cửa, thiết bị cảnh báo chống trộm hay camera nhưng có lẽ thiết bị được sử dụng nhiều nhất vẫn chính

là khoá cửa Hiện nay trên thị trường có rất nhiều loại khoá cửa nhưng hầu hết

là khoá cơ khí, các khoá cơ khí này gặp vấn đề lớn đó là tính bảo mật của các loại khoá này là không cao, nên dễ dàng bị phá bởi các chìa khoá đa năng

Đa số khoá kỹ thuật số đang có bán trên thị trường đều có giá bán khá cao

và chủ yếu là loại khoá tay nắm ta thường thấy trong khách sạn hoặc các căn

hộ chung cư

Vì vậy để nâng cao yêu cầu về tính bảo mật để bảo vệ tài sản và giao diện trực quan dễ sử dụng Nhóm chúng em đã quyết định thực hiện đề tài thiết kế thiết bị khoá cửa điện tử

Khoá sử dụng phương pháp cài đặt mã số để khoá hoặc mở và người sử dụng có thể cài đặt số bất kỳ Hệ thống số của khoá được thiết kế bằng các phím bấm số nên khá tiện lợi khi sử dụng

1.2 Linh kiện sử dụng

1.2.1 Màn hình LCD 16x2

Màn hình text LCD 1602 kèm module I2C sử dụng driver HD44780, có khả năng hiển thị 2 dòng với mỗi dòng 16 ký tự, màn hình có độ bền cao, rất phổ biến Module I2C có khả năng kết nối tất cả các đầu ra của màn hình LCD cho ra 4 đầu dây nên rất tiện sử dụng và tiết kiệm dây cắm

Hình 1.1: LCD 1602 kèm moule I2C màu xanh lá

Trang 10

có thể dễ dàng điều khiển góc quay bằng phương pháp điều độ rộng xung PWM

Hình 1.2: Động cơ Servo SG90 Thông số kỹ thuật:

Trang 11

Hệ thống này còn sử dụng mạch điều khiển trung là kit Arduino UNO R3 Đây là kit Arduino UNO thế hệ thứ 3, với khả năng lập trình cho các ứng dụng điều khiển phức tạp do được trang bị cấu hình mạnh cho các loại bộ nhớ ROM, RAM và Flash, các ngõ đọc tín hiệu analog, các ngõ vào ra digital I/O trong đó nhiều ngõ có khả năng xuất tín hiệu PWM và các chuẩn giao tiếp đa dạng như UART, SPI, TWI (I2C)

Trang 12

4

Hình 1.4: Kit Arduino UNO Arduino UNO có thể sử dụng 3 vi điều khiển họ 8bit AVR là ATmega8, ATmega168, ATmega328 Bộ điều khiển trung tâm này có thể xử lí những tác

vụ đơn giản như điều khiển đèn LED nhấp nháy, điều khiển dưới dạng xung PWM, xử lý tín hiệu cho xe điều khiển từ xa, làm một trạm đo nhiệt độ & độ

ẩm, hiển thị lên màn hình LCD, truyền dữ liệu từ xa qua mạng có dây hoặc không dây Thông số kỹ thuật của kit Arduino UNO R3 được mô tả chi tiết trong bảng dưới đây:

Bảng 1.1: Thông số kỹ thuật của kit Arduino UNO R3

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

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

Trang 13

- 5V: cấp điện áp 5V đầu ra với dòng tối đa cho phép là 500mA

- 3,3V: cấp điện áp 3,3V đầu ra với dòng tối đa cho phép là 50mA

- Vin (Voltage Input): để cấp nguồn ngoài cho Arduino UNO, 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ới điện áp là 5V) Tuy nhiên, không được lấy nguồn 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Ω

1.2.5 Một số linh kiện khác:

Nguồn adapter 12V

Led báo trạng thái

Dây kết nối các phần cứng

Trang 14

6

CHƯƠNG 2 THIẾT KẾ VÀ THI CÔNG HỆ THỐNG 2.1 Thiết kế phần cứng

2.1.1 Lưu đồ giải thuật

2.1.1.1 Giải thuật chương trình chính

Hình 2.1: Giải thuật chương trình chính

Đ

Bắt đầu

Khai báo biến

key_pressed=='#'

change()

Nhập mật khẩu mở cửa

Kiểm tra mật khẩu

ServoOpen() initialpassword()

Kết thúc

ServoClose()

S

Đ

Trang 15

7

2.1.1.2 Giải thuật chương trình con 1

Giải thuật thay đổi mật khẩu

Hình 2.2: Giải thuật thay đổi mật khẩu

Trang 16

2.1.1.3 Giải thuật chương trình con 2

Giải thuật nhập mật khẩu mặt định

Hình 2.3: Giải thuật nhập mật khẩu mặt định

Trang 17

9

2.1.1.4 Giải thuật chương trình con 3

Giải thuật mở cửa

Hình 2.4: Giải thuật mở cửa

2.1.1.5 Giải thuật chương trình con 4

Giải thuật đóng cửa

Hình 2.5: Giải thuật đóng cửa

Trang 18

10

2.1.2 Sơ đồ khối

Hình 2.6: Sơ đồ khối hệ thống 2.1.3 Nguyên lý hoạt động của hệ thống

Khi bắt đầu hoạt động, hệ thống sẽ yêu cầu người dùng nhập mật khẩu mặc định cho hệ thống là 1234 Sau đó hệ thống sẽ lưu mật khẩu đó Người dùng có thể dùng chuỗi số đó làm mật khẩu hoặc có thể đổi mật khẩu đó Để đổi mật khẩu, nhấn phím phím “#” trên bàn phím Keypad Người dùng nhập mật khẩu mặc định ban đầu Hệ thống kiểm tra mật khẩu nếu giống với mật khẩu trong

hệ thống thì người dùng sẽ được cho đổi mật khẩu và nhập mật khẩu mới

Để mở cửa màn hình hiện “Enter Password” người dùng nhập mật khẩu nếu giống mật khẩu đã lưu thì động cơ Servo sẽ quay 1 góc +90 độ và màn hình LCD sẽ hiện Pass Accepted Ngược lại nếu nhập sai thì động cơ Servo sẽ quay 1 góc -90 độ và màn hình LCD sẽ hiện Wrong Password

2.2 Thi công phần mềm

2.2.1 Phần mềm Arduino IDE

2.2.1.1 Thêm thư viện của cần sử dụng trong Arduino IDE

Trong quá trình lập trình để tiết kiệm thời gian người ta sử dụng các linh kiện có sẵn trên phần mềm Arduino IDE Trong hệ thống này sử dụng 3 thư viện có sẵn

Sau đây là các bước thêm thư viện trên phần mềm IDE

<Keypad.h>

Trang 20

12

<Servo.h>

Hình 2.9: Hướng dẫn thêm thư viện LiquidCrystal.h trên Arduino

Để mô phỏng chương trình chạy trên phần mềm Proteus cần phải xuất ra file hex trên phần mềm Arduino IDE Cũng tại IDE bạn Click vào File - Preferences, sẽ xuất hiện hộp thoại Preferences, tại đây tick vào ô vuông compilation, sau đó ấn OK

Hình 2.10: Hướng dẫn xuất file hex

Trang 21

13

2.2.1.2 Chương trình Arduino IDE

Chương trình code Arduino trong Phụ Lục

2.2.2 Phần mềm Proteus

Proteus là phần mềm cho phép mô phỏng hoạt động của mạch điện tử bao gồm phần thiết kế mạch và viết chương trình điều khiển cho các họ vi điều khiển như MCS-51, PIC, AVR, Arduino IDE … Proteus là phần mềm mô phỏng mạch điện tử của Lancenter Electronics, mô phỏng cho hầu hết các linh kiện điện tử thông dụng, đặc biệt hỗ trợ cho cả các MCU như PIC, 8051, AVR, Motorola

Hình 2.11: Sơ đồ mô phỏng hệ thống trên phần mềm Proteus

Proteus là công cụ mô phỏng cho các loại vi điều khiển khá tốt, nó hỗ trợ các dòng vi điều khiển PIC, 8051, PIC, dsPIC, AVR, HC11, MSP430, ARM7/LPC2000 các giao tiếp I2C, SPI, CAN, USB, Ethenet ngoài ra còn

mô phỏng các mạch số, mạch tương tự một cách hiệu quả Nếu đang muốn học lập trình trên Arduino hoặc bất kì vi điều khiển nào khác mà không có điều kiện hoặc kinh nghiệm để làm các mạch phát triển hoặc muốn kiểm tra chương trình trước khi nạp vào mạch phát triển thì Proteus là lựa chọn không thể bỏ qua

Trang 22

Hình 2.12: Hướng dẫn thêm file hex (1) Bước 2: Nhấp đúp vào vi điều khiển trên Proteus sau đó dán vào ô như hình rồi nhấn OK

Hình 2.13: Hướng dẫn thêm file hex (2)

Trang 23

Hình 3.2: Kết quả mô phỏng (2) Servo quay 1 góc -90 độ và đèn xanh sáng:

Trang 24

16

Hình 3.3: Kết quả mô phỏng (3)

Để đổi mật nhấn phím “#”, sau đó nhập mật khẩu đang sử dung:

Hình 3.4: Kết quả mô phỏng (4)

Trang 25

17

Nhập mật khẩu mới:

Hình 3.5: Kết quả mô phỏng (5) Nhập mật khẩu mới thành công:

Hình 3.6: Kết quả mô phỏng (6)

Trang 26

18

3.2 Kết luận

Qua mô phỏng trên phần mềm Proteus cho thấy hệ thống hoạt động ổn định nhưng vẫn còn một vài điểm của hệ thống chưa được hợp lý Hệ thống này có thể ứng dụng trong việc khóa cửa tự động mà không cần chìa khóa hay ở khóa thông thường

Trang 27

19

DANH MỤC TÀI LIỆU THAM KHẢO

Website:

- 4x3

http://arduino.vn/bai-viet/5893-khoa-dien-tu-bam-so-su-dung-keypad https://circuitdigest.com/microcontrollerhttp://arduino.vn/bai-viet/5893-khoa-dien-tu-bam-so-su-dung-keypad projects/digitalhttp://arduino.vn/bai-viet/5893-khoa-dien-tu-bam-so-su-dung-keypad keypadhttp://arduino.vn/bai-viet/5893-khoa-dien-tu-bam-so-su-dung-keypad security-door-lock-using-arduino

https://circuitdigest.com/microcontroller-projects/digital-keypad https://www.youtube.com/watch?v=v56KrlD7f90

Trang 28

20

PHỤ LỤC

Chương trình Arduino Uno:

#include <Keypad.h>// khai bao thu vien Keypad

#include<EEPROM.h>//khai bao thu vien

#include <Wire.h> /// khai báo màn hình LCD

#include <LiquidCrystal.h>/// khai báo màn hình LCD

int pos = 0; // bien luu giu vi tri servo

#include <Servo.h>// khai bao thu vien servo

const byte rows = 4;

const byte columns = 4;

Trang 29

if(key_pressed=='#') // nhan phim # de doi mat khau

change(); // doi mat khau

if (key_pressed)

Trang 30

lcd.print("Pass Accepted"); // nhap mat khau dung digitalWrite(ledred, LOW);

Trang 34

26

void ServoClose()

{

for (pos = 0; pos <= 180; pos += 5) { // đi từ 180 độ xuống 0 độ

myservo.write(pos); // yêu cầu servo chuyển đến vị trí trong biến 'pos'

delay(20); // đợi 15ms để servo đến vị trí

}

}

Ngày đăng: 19/01/2023, 16:32

TỪ KHÓA LIÊN QUAN

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