Tải bản đầy đủ (.docx) (46 trang)

Bao cao digital lock

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.94 MB, 46 trang )

Digital Lock

THE UNIVERSITY OF DANANG
UNIVERSITY OF SCIENCE AND TECHNOLOGY

Faculty of Mechanical Engineering

PBL 3:
Topic: Digital Lock
Giáo viên: TS. ĐẶNG PHƯỚC VINH
Học viên:
Lớp học: 20CDTCLC2

Đà Nẵng, Tháng Tư /2023


Digital Lock

PHỤ LỤC
Chương 1: Giới thiệu.................................................................................................................................2
I. Giới thiệu............................................................................................................................................2
II. Ý tưởng và tính năng.........................................................................................................................3
III. Giới thiệu các thành phần chính và phần mềm................................................................................3
III. Giới thiệu Phần mềm ccs là gì.........................................................................................................8
IV. Giới thiệu Phần mềm Visual Studio là gì........................................................................................9
Chương 2: thiết kế phần cứng.................................................................................................................10
I.

Thiết kế Proteus............................................................................................................................10

Chương 3: thiết kế phần mềm..................................................................................................................17


I.Ccs.....................................................................................................................................................17
II)Visual studio....................................................................................................................................27
Chương 4: Kết luận..................................................................................................................................41
I.Kết quả...............................................................................................................................................41
II.Vấn đề..............................................................................................................................................42
III.Giải pháp/Cơng trình tương lai.......................................................................................................43
REFERENCES........................................................................................................................................44

Chương 1: Giới thiệu
I. Giới thiệu

Ngày nay, nền kinh tế nước ta đang trên đà phát triển mạnh mẽ, mức sống của
người dân ngày càng cao. Nhu cầu sử dụng các sản phẩm điện tử trong cuộc sống
hàng ngày cũng như trong các ngành công nghiệp, nông nghiệp, dịch vụ không
ngừng tăng cao. Đây là cơ hội, nhưng cũng là thách thức đối với ngành công
nghiệp điện tử với sự phát triển và dịch vụ theo nhu cầu xã hội. Một yêu cầu thiết
yếu là đảm bảo an ninh cho ngôi nhà của bạn, những nơi đặc biệt, các công ty lớn
và bệnh viện đang bị buộc phải sử dụng. Đây là lý do tại sao chúng tơi chọn chủ
đề "Khóa kỹ thuật số" Với sự nỗ lực của bản thân và đặc biệt là với sự giúp đỡ và
hướng dẫn của Tiến sĩ Đặng Phước Vinh, chúng tơi đã hồn thành dự án đúng thời
hạn. Do thời gian hạn chế và kiến thức hạn chế nên không thể tránh khỏi những sai
lầm. Chúng tơi rất mong nhận được sự đóng góp của các thầy cô giáo cũng như
các em học sinh khác để dự án này ngày càng hoàn thiện hơn.
Chúng tôi chân thành cảm ơn bạn !
Đà Nẵng, Tháng Tư/ 2023
Biểu diễn của học sinh
Lê Duẩn
Lê Văn Quang



Digital Lock

II. Ý tưởng và tính năng
1.

2.

3.

Chúng tơi muốn thiết kế một dự án sử dụng để quản lý các thành viên và ghi lại
lịch sử truy cập của từng thành viên một cách nhanh chóng và dễ dàng. Vì vậy, dự
án của chúng tơi sẽ có một cơ sở dữ liệu ghi lại thông tin cá nhân của các thành
viên như ID, đăng ký ảnh, tên người dùng, điện thoại, địa chỉ (hoặc chức vụ),...
Nó cũng ghi lại thời gian, hình ảnh của hệ thống thời điểm truy cập một người.
Để làm điều đó, chúng tơi quyết định sử dụng thẻ RFID để xác định và xác định
những người vào và ra. Thẻ RFID khá rẻ và nhỏ gọn để mang theo. Nhận diện
nhanh chóng mà khơng cần tiếp xúc với người đọc, vịng trịn tuổi thọ cao, khơng
thấm nước...
Để quản lý dữ liệu người dùng, chúng tôi sử dụng Visual Studio để xây dựng một
ứng dụng chạy trên PC để xử lý dữ liệu và giao tiếp với vi điều khiển.

III. Giới thiệu các thành phần chính và phần mềm.
4.

Với phần RFID chúng tơi sử dụng RC522 có thể giao tiếp với vi điều khiển PIC
bằng giao thức SPI tại cổng A, mô-đun này phổ biến trên thị trường và khá rẻ, và
cũng phổ biến để sử dụng với vi điều khiển để tạo khóa.


Digital Lock


Figure 1.1 RC522 Module

What is PIC16F877A?

Figure 1.2 PIC 16F877A

PIC16F877A là một vi điều khiển PIC 40 chân và được sử dụng chủ yếu trong các dự án
và ứng dụng nhúng. Nó có năm cổng bắt đầu từ cổng A đến cổng E. Nó có ba bộ hẹn
giờ, trong đó hai bộ hẹn giờ 8 bit và một bộ hẹn giờ 16 bit. Nó hỗ trợ nhiều giao thức
truyền thơng như giao thức nối tiếp, giao thức song song, giao thức I2C. PIC16F877A
hỗ trợ cả ngắt chân phần cứng và ngắt hẹn giờ.
Sơ đồ chân PIC16F877A
Hình dưới đây là sơ đồ chân PIC16F877A.


Digital Lock

MAX232 là gì?
1.

MAX232 là IC 16 chân có các gói SOIC, PDIP và SOP. IC này được xây dựng để
giao tiếp nối tiếp giữa PC và vi điều khiển và chuyển đổi TTL / CMOS sang mức
logic RS232. Như bạn đã biết vi điều khiển sử dụng logic bóng bán dẫn TTL hoặc
bóng bán dẫn 0 đến 5V nhưng trong máy tính RS232 hoạt động ở -24V hoặc +
24V, vì vậy chúng tơi khơng thể giao tiếp các vi điều khiển này trực tiếp với máy
tính và chúng tơi phải yêu cầu bộ chuyển đổi mức logic TTL / CMOS sang
RS232, vì vậy IC MAX232 được xây dựng để giải quyết vấn đề này bằng cách
chuyển đổi TTL / CMOS sang RS232.


2.

Để giao tiếp với giao diện Người dùng mà chúng tơi thiết kế trong máy tính,
chúng tơi sử dụng IC max232 và com sang cáp USB.

Figure 1.3 IC max 232

+ Dây kết nối cổng Com


Digital Lock

1.

2.
3.

4.
5.

6.

Một cổng kết nối trên máy tính hoạt động như một giao diện hoặc đơn giản là
một điểm giao tiếp giữa máy tính và các thiết bị ngoại vi khác . Một số thiết bị
ngoại vi phổ biến nhất là chuột, bàn phím, màn hình hoặc các thiết bị hiển thị
khác, máy in, loa, ổ đĩa flash, v.v.
Việc sử dụng chính của cổng máy tính là hoạt động như một điểm gắn kết, nơi
cáp từ các thiết bị ngoại vi có thể được cắm vào , qua đó , cho phép dữ liệu di
chuyển đến và đi từ thiết bị.
Cổng kết nối trên máy tính cịn được gọi là cổng giao tiếp vì chúng chịu trách

nhiệm giao tiếp giữa máy tính và các thiết bị ngoại vi của nó . Nói chung, máy
tính thường chứa các thiết bị đầu cuối cái của các cổng liên quan, các cổng này
thường được đặt trên bo mạch chủ.
Trong máy tính, cổng giao tiếp có thể được chia thành hai loại dựa trên loại hoặc
giao thức được sử dụng để kết nối . Chúng là Cổng nối tiếp , Cổng song song.
Cổng nối tiếp là một bố cục và giao diện thông qua đó các thiết bị ngoại vi có
thể được liên kết bằng cách sử dụng giao thức nối tiếp liên quan đến việc truyền
giao tiếp kỹ thuật số từng bit một qua đường truyền. duy nhất . Loại cổng nối
tiếp phổ biến nhất là đầu nối D-Subminiature hoặc D-sub cung cấp tín hiệu RS232.
Mặt khác, Cổng song song là một kiểu bố cục và giao diện trong đó thơng tin giữa
máy tính và các thiết bị ngoại vi của nó được liên kết theo cách song song, tức
là Dữ liệu được truyền vào hoặc ra song song bằng cách sử dụng nhiều hơn một
đường truyền hoặc dây dẫn. Cổng máy in là một ví dụ về cổng song song.

Figure 1.4 USB To Com

+ Một động cơ servo để mở/đóng khi người dùng truy cập.
1.
Động cơ servo là một phần của hệ thống vịng kín và bao gồm một số thành phần
cụ thể là mạch điều khiển, động cơ servo, trục, chiết áp, bánh răng truyền động,
bộ khuếch đại và bộ mã hóa, hoặc bộ phân giải.
2.
Động cơ servo là một thiết bị điện độc lập, được sử dụng để xoay các bộ phận
máy với hiệu suất cao và độ chính xác cao.
3.
Trục đầu ra của động cơ này có thể được di chuyển đến một góc, một vị trí có tốc
độ được chỉ định trước khơng có sẵn với động cơ thơng thường.
4.
Nói một cách đơn giản, động cơ Servo giống như một động cơ thơng thường và
kết hợp nó với một cảm biến để phản hồi vị trí.



Digital Lock

5.
6.
7.
8.

Bộ điều khiển là bộ phận quan trọng nhất của động cơ Servo được thiết kế và sử
dụng đặc biệt cho mục đích này.
Động cơ servo là một cơ chế vịng kín kết hợp phản hồi vị trí để kiểm sốt tốc độ
và vị trí quay hoặc tuyến tính.
Động cơ được điều khiển bởi tín hiệu điện, analog hoặc kỹ thuật số, xác định
chuyển động theo vị trí lệnh cuối cùng của trục.
Bộ mã hóa hoạt động như một cảm biến cung cấp phản hồi về tốc độ và vị
trí. Mạch này được xây dựng ngay bên trong vỏ động cơ thường được trang bị hệ
thống bánh răng.

Figure 1.5: Servo Motor

+ Bàn phím 4x4 để nhập mật khẩu.
1.
Bàn phím là một thiết bị đầu vào chứa các nút cho phép người dùng nhập số, chữ
cái hoặc ký tự điều khiển. Bàn phím khơng chứa tất cả các mã hóa ASCII như bàn
phím, vì vậy nó thường được sử dụng trong các ứng dụng tương đối đơn giản và
chuyên biệt, nơi số lượng nút cần nhấn khác nhau tùy thuộc vào ứng dụng.
2.
Bàn phím 4×4 là bàn phím có 16 nút, được sắp xếp thành 4 hàng, mỗi hàng gồm 4
phím như hình bên dưới.


Figure 1.6 Keypad 4x4


Digital Lock

+ Màn hình LCD 16X2
1.
LCD 16x2 được sử dụng để hiển thị trạng thái hoặc thông số. LCD 16x2 có 16
chân trong đó 8 chân dữ liệu (D0 - D7) và 3 chân điều khiển (RS, RW, EN). 5
chân còn lại được sử dụng để cung cấp năng lượng và đèn nền cho màn hình LCD
16x2. Chân điều khiển giúp dễ dàng định cấu hình màn hình LCD ở chế độ lệnh
hoặc chế độ dữ liệu

Figure 1.7 LCD screen

III. Giới thiệu Phần mềm ccs là gì
Phần mềm CCS là gì?
1.
Phần mềm CCS là một trình biên dịch bằng ngơn ngữ C cho vi điều khiển PIC của
Microchip. Nó làm cho việc lập trình và thực hiện các chức năng trên vi điều
khiển PIC dễ dàng và thuận tiện hơn. Dưới đây là các bước để sử dụng phần mềm
CCS:1. Tải xuống phần mềm CCS và cài đặt nó trên máy tính của bạn.2. Kết nối
vi điều khiển PIC với máy tính qua cổng USB nối tiếp hoặc COM.3. Mở phần
mềm CCS và chọn phiên bản vi điều khiển PIC bạn đang sử dụng.4. Tạo một dự
án mới và nhập mã vào trình chỉnh sửa.5. Kết hợp với các thư viện có sẵn để thực
hiện các chức năng cụ thể trên vi điều khiển PIC.6. Biên dịch mã và tải nó lên vi
điều khiển PIC để thực thi các chức năng được lập trình.



Digital Lock

Figure 1.8 CCS

IV. Giới thiệu Phần mềm Visual Studio là gì
Visual studio là một trong những cơng cụ phát triển web nổi tiếng nhất của Microsoft
hiện nay và không phần mềm nào khác có thể thay thế được. Visual Studio được viết
bằng hai ngôn ngữ, C # và VB +. Đây là hai ngơn ngữ lập trình giúp người dùng lập
trình hệ thống một cách dễ dàng và nhanh chóng thơng qua Visual Studio.
Visual Studio là một phần mềm lập trình hệ thống được sản xuất trực tiếp từ
Microsoft . Kể từ khi thành lập, Visual Studio đã có nhiều phiên bản khác nhau để sử
dụng. Điều đó, giúp người dùng có thể lựa chọn phiên bản tương thích với model của
mình cũng như cấu hình phù hợp nhất để sử dụng.
Bên cạnh đó, Visual Studio cịn cho phép người dùng lựa chọn giao diện chính cho máy
của mình tùy theo nhu cầu.


Digital Lock

Figure 1.9 Visual Studio

Chương 2: thiết kế phần cứng
I.
Thiết kế Proteus
1. Dự án thiết kế
a. Sơ đồ


Digital Lock


Figure 2.1 Schematic

b. Bố trí PCB


Digital Lock

Figure 2.1 PCB layout

a) 3D View

Figure 2.2 3D view


Digital Lock

Figure 2.3 Backside

b) Product

Figure 2.4 Result PCB


Digital Lock

1.

Thiết kế nguồn điện
a. Sơ đồ


Figure 2.5 schematic of power supply.

Input of power supply from 12 to 24 VDC and the output is 5 VDC. We use
B688 to support LM7805 current to avoiid damage to LM7805
a) PCB design and wiring

Figure 2.5 Arrange element and wiring


Digital Lock

b) 3D view

Figure 2.6 3D view of power supply


Digital Lock

b. Sản phẩm

e) Nguyên tắc từ ngữ
1.
2.
3.
4.

Cửa chỉ được mở khi chúng ta nhập đúng mật khẩu và ID bằng cách nhấn phím
hoặc sử dụng đúng thẻ từ.
Khi chúng tơi nhập chính xác, màn hình LCD sẽ hiển thị "chào mừng" và động cơ
sẽ quay và khóa sẽ mở.

Nếu chúng ta nhập sai, LCD sẽ hiển thị "Pass Wrong". Nếu bạn nhập sai hơn 4
lần, còi cảnh báo sẽ kêu.
Mật khẩu sẽ được nhập trên bàn phím sẽ được so sánh với cơ sở dữ liệu được viết
trong Visual Studio

Chương 3: thiết kế phần mềm
I.Ccs
1) Declare microcontroller pinsi
a)LCD
#define LCD_RS_PIN
#define LCD_RW_PIN

PIN_D0
PIN_D1


Digital Lock

#define LCD_ENABLE_PIN PIN_D2
#define LCD_DATA4
PIN_D4
#define LCD_DATA5
PIN_D5
#define LCD_DATA6
PIN_D6
#define LCD_DATA7
PIN_D7
#include <lcd.c>

b)Keypad

#define C1
#define C2
#define C3
#define C4
#define R1
#define R2
#define R3
#define R4

PIN_B4
PIN_B5
PIN_B6
PIN_B7
PIN_B0
PIN_B1
PIN_B2
PIN_B3

c)RC522
#define MFRC522_CS
PIN_A0
#define MFRC522_SCK
PIN_A1
#define MFRC522_SI
PIN_A2
#define MFRC522_SO
PIN_A3
#define MFRC522_RST
PIN_A4
#include <RC522.h>


d)Buzzer, servo, Cb
#define Buzzer
output(PIN_C2) // coi
#define servo
output(PIN_C3) // servo
#define CB
input(PIN_A0)
2)Voids
a)Void main().
 Check the card is scanned or not and press ‘*’ or not, if the correct card is scanned,
barried will be opened, if ‘*’ is pressed then enter the password and if the correct
password the barrier will be openned
 Program
char duan[5] = {0x73,0x79,0x67,0xB7,0xDA};
char user2[5] = {0x30,0x9D,0x9B,0x1B,0x21};
char quang[5] = {0xF3,0x02,0xE8,0xA9,0xB0};
char UID[5];
int8 the1, the2, the3;
unsigned int TagType;
unsigned int8 pass[6];
unsigned int8 pass_saved[4] = {1,2,3,4};
unsigned int8 new_pass[4]= {10,10,10,10};
int8 sai = 0;
int8 pass_luu = 4;
int8 B,C,D,KEYPAD = 0;
void coi_bao(int8 so_lan_keu,int time)
{
for (int i = 0; i < so_lan_keu;i++)
{

output_high(PIN_C2); delay_ms(time); output_low(PIN_C2);
}


Digital Lock

}
void cua_mo()
{
coi_bao(2,500);
output_high(PIN_C3);
delay_us(500);
output_low(PIN_C3);
delay_us(19500);
delay_ms(5000);
}
void eeprom_write (unsigned int8 addr,unsigned int8 *str)
{
while (pass_luu != 0)
{
write_eeprom (addr, * str);
addr++;
str++;
pass_luu--;
}
}
void eeprom_read (unsigned int8 addr,unsigned int8 *str,unsigned int8 n)
{
for (int i = 0; i < n; i++)
{

str[i] = read_eeprom (addr + i) ;
}
}
void quet_hang(int8 k)
{
switch (k)
{
case 1:{ output_low (C1); output_high (C2) ; output_high (C3) ; output_high (C4) ;
break; }
case 2:{ output_low (C2); output_high (C1) ; output_high (C3) ; output_high (C4) ;
break; }
case 3:{ output_low (C3); output_high (C2) ; output_high (C1) ; output_high (C4) ;
break; }
case 4:{ output_low (C4); output_high (C2) ; output_high (C3) ; output_high (C1) ;
break; }
}
}
int8 check_pass()
{
int check = 0;
int dung_1, dung_2, dung_3, dung_4, dung_5;
dung_1 = dung_2 = dung_3 = dung_4 = dung_5 = 0;
eeprom_read(0,&pass_saved,4);
for (int j = 0; j < 4; j++)
{


Digital Lock

if (pass[j] == pass_saved[j]) dung_1++;

if (pass[j + 1] == pass_saved[j]) dung_2++;
if (pass[j + 2] == pass_saved[j]) dung_3++;
if (pass[j + 3] == pass_saved[j]) dung_4++;
if (pass[j + 4] == pass_saved[j]) dung_5++;
}
if ( (dung_1 == 4) | (dung_2 == 4) | (dung_3 == 4) | (dung_4 == 4)| (dung_5 == 4) )
check = 1;
return check;
}
void ma_tran_phim(unsigned int8 *str,unsigned int8 n)
{
B = C = D = 0;
int t = 1, x;
while ( (B == 0) & (C == 0) & (D == 0) )
{
for (int j = 1; j < 5; j++)
{
switch (j)
{
case 1:
{
quet_hang(1);
if (input (R1) == 0) // phim 1
{
if (t < n)
{
coi_bao(1,100);
lcd_gotoxy (t, 2); lcd_putc ("1"); delay_ms (200);
lcd_gotoxy (t, 2); lcd_putc ("*");
str[t - 1] = 1; t++;

}
}
else if (input (R2) == 0) // phim 4
{
if (t < n)
{
coi_bao(1,100);
lcd_gotoxy (t, 2); lcd_putc ("4"); delay_ms (200);
lcd_gotoxy (t, 2); lcd_putc ("*");
str[t - 1] = 4; t++;
}
}
else if (input (R3) == 0) // phim 7
{
if (t < n)
{
coi_bao(1,100);
lcd_gotoxy (t, 2); lcd_putc ("7"); delay_ms (200);
lcd_gotoxy (t, 2); lcd_putc ("*");
str[t - 1] = 7; t++;


Digital Lock

}
}
else if (input (R4) == 0) // phim *
{
coi_bao(1,100);
}

break ;
}
case 2:
{
quet_hang(2);
if (input (R1) == 0) // phim 2
{
if (t < n)
{
coi_bao(1,100);
lcd_gotoxy (t, 2); lcd_putc ("2"); delay_ms (200);
lcd_gotoxy (t, 2); lcd_putc ("*");
str[t - 1] = 2; t++;
}
}
else if (input (R2) == 0) // phim 5
{
if (t < n)
{
coi_bao(1,100);
lcd_gotoxy (t, 2); lcd_putc ("5"); delay_ms (200);
lcd_gotoxy (t, 2); lcd_putc ("*");
str[t - 1] = 5; t++;
}
}
else if (input (R3) == 0) // phim 8
{
if (t < n)
{
coi_bao(1,100);

lcd_gotoxy (t, 2); lcd_putc ("8"); delay_ms (200);
lcd_gotoxy (t, 2); lcd_putc ("*");
str[t - 1] = 8; t++;
}
}
else if (input (R4) == 0) // phim 0
{
if (t < n)
{
coi_bao(1,100);
lcd_gotoxy (t, 2); lcd_putc ("0"); delay_ms (200);
lcd_gotoxy (t, 2); lcd_putc ("*");
str[t - 1] = 0; t++;
}
}



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×