ĐẠI HỌC LẠC HỒNG
KHOA CƠ ĐIỆN - ĐIỆN TỬ
---
BÁO CÁO MÔN HỌC VI ĐIỀU KHIỂN
Đề tài:
THIẾT KẾ THI CÔNG BỘ KHĨA CỬA TỰ
ĐỘNG DÙNG MẬT KHẨU NHẬP TỪ BÀN
PHÍM.
SVTH: NGUYỄN QUỐC QUYỀN
NGUYỄN VĂN ĐẠT
TRẦN QUANG TÍN
GVHD: Th.S NGƠ KIM LONG
Đồng nai, 2021
MỤC LỤC
CHƯƠNG I- GIỚI THIỆU ĐỀ TÀI
1.1
Lý do chọn đề tài .................................................................................................. 2
1.2 Mục tiêu nghiên cứu ............................................................................................. 3
1.3 Phạm vi nghiên cứu .............................................................................................. 4
1.4 Kết quả đạt được .................................................................................................. 5
CHƯƠNG II- CƠ SỞ LÝ THUYẾT
2.1 Phần cứng .................................................................................................................. 6
2.1.1 Vi xử lí : STM32F4111 ...................................................................................... 7
2.1.2 Bàn phím ma trận .............................................................................................. 8
2.1.3 Khoá điện từ ....................................................................................................... 9
2.1.4 Module relay .................................................................................................... 10
2.1.5 Màn hình LCD 20x4 ....................................................................................... 11
2.1.6 Mạch Chuyển Giao Tiếp LCD2004 Sang I2C 9
2.1.7 Buzzer .............................................................................................................. 12
2.1.8 Nguồn tổ ong ..................................................................................................... 13
2.2 Phần mềm hỗ trợ lập trình ....................................................................................... 14
2.2.1 STM32CubeMX: .............................................................................................. 15
2.2.2 KeilC V5 ......................................................................................................... 16
CHƯƠNG III- THIẾT KẾ
3.1 Bài tốn đặt ra ......................................................................................................... 17
3.2 Xử lí tín hiệu từ bàn phím ....................................................................................... 18
3.2.1 Nguyên lí đọc tín hiệu bàn phím: ..................................................................... 19
3.2.2 LCD I2C .......................................................................................................... 20
3.2.3 Nguyên lí kiểm tra mật khẩu: ........................................................................... 21
3.2.4 Nguyên lí thay đổi mật khẩu: ........................................................................... 22
CHƯƠNG IV- GIẢI QUYẾT BÀI TOÁN
4.1 Sơ đồ giải thuật. ....................................................................................................... 23
4.2 Các bước thực hiện việc cấu hình và code: ............................................................. 24
4.3 Code chương trình:
CHƯƠNG V-KẾT LUẬN
TÀI LIỆU THAM KHẢO .............................................................................................. 25
DANH MỤC BẢNG BIỂU ............................................................................................ 26
DANH MỤC HÌNH ẢNH.............................................................................................. 27
CHƯƠNG II CƠ SỞ LÝ THUYẾT
CHƯƠNG 1 MỞ ĐẦU
1.1 Lý do chọn đề tài
Ngày nay, với sự phát triển không ngừng của khoa học kỹ thuật, đặc biệt là thành
công của của cuộc cách mạng kĩ thuật 4.0 làm cho thế giới chúng ta ngày càng thay
đổi, cuộc sống trở nên văn minh, hiện đại hơn.
Cùng với sự phát triển đó thì các tệ nạn xảy ra ngày càng tinh vi và khó điều
tra được. Trong đó, tệ nạn trộm cắp cũng là vấn đề đáng lo ngại, vì thế, việc sử dụng
một bộ khoá cửa điện tử sẽ giúp chúng ta có một giải pháp mới trong việc bảo quản
tài sản. Và từ những nhu cầu thực tế trên, chúng em đã lựa chọn nghiên cứu bộ khoá
cửa tự động.
1.2 Mục tiêu nghiên cứu
Mục tiêu của bộ sản phẩm:
-
Sử dụng mật khẩu để đóng mở khố cửa.
-
Người sử dụng có thể thay đổi mật khẩu
1.3 Phạm vi nghiên cứu
Phần cứng:
-
Đấu nối các thiết bị ngoại vi với vi xử lý trung tâm.
-
Xử lí các vấn đề do phần cứng phát sinh
(Nhiễu). Phần mềm:
-
Nghiên cứu, đưa ra giải pháp lập trình.
1.4 Kết quả đạt được
-
Có thể sử dụng thay thế cho các bộ khố cửa cơ học truyền thống.
-
Tăng tính bảo đảm an toàn cho tài sản vần được bảo vệ
-
Hiểu được cách hoạt động của bộ khóa cửa nhập từ bàn phím
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
2. Sơ đồ ngun lí
Hình 2.0.Hình ảnh mơ phỏng trên Protues
- Ngun Lí Hoạt Động Của Các Khối :
- Khối Nguồn : Cung cấp nguồn cho hệ thống .
- Khối nút nhấn : Đưa tín hiệu vào vi điều khiển.
- Khối trung tâm xử lí : Nhận tín hiệu ngõ vào và ra, sau đó phân tích , giải quyết vấn đề
bài tốn .
- Khối hiển thị : Xuất tín hiệu từ khối trung tâm xử lí và hiển thị ra màn hình .
- Khối động lực : Được điều khiển từ khối xử lí, thiết bị chấp hành hoạt động theo yêu
cầu bài toán.
2.1 Phần cứng
Với đề tài khoá cửa tự động này, phần cứng mà em sử dụng bao gồm:
-
Kit STM32F411 - DISCOVERY KIT
-
Bàn phím ma trận nhựa cứng 4x4
CHƯƠNG II CƠ SỞ LÝ THUYẾT
- LY-031 Khoá Điện 12V
-
Module 1 Relay 5V Kích Mức Cao
-
LCD 2004 nền xanh lá chữ trắng 5V kèm I2C
-
Buzzer
2.1.1 Bo mạch STM32F411 Discovery
- Bo mạch STM32F411 Discovery cung cấp các tính năng sau:
- Chip xử lí STM32F411VET6 có bộ nhớ Flash 512 KB, RAM 128 KB trong gói
LQFP100
- ST-LINK / V2 tích hợp trên bo mạch với công tắc chế độ lựa chọn để sử dụng bộ
này như một ST-LINK / V2 độc lập (với đầu nối SWD để lập trình và gỡ lỗi)
-
Nguồn cung cấp board: thông qua bus USB hoặc từ điện áp nguồn 5 V bên ngồi
LSM303DLHC, gói hệ thống ST MEMS có cảm biến gia tốc tuyến tính kỹ thuật
số 3D và cảm biến từ tính kỹ thuật số 3D
- CS43L22, DAC âm thanh tích hợp trình điều khiển loa class D
-
Có sẵn các chân nguồn: 3V và 5V
-
Có L3GD20, ST MEMS motion sensor, 3-axis digital output gyroscope.
-
Có 8 led
+ LD1 (đỏ / xanh lá cây) cho giao tiếp USB
+ LD2 (đỏ) cho nguồn 3,3 V
+4 user LEDS : LD3 (cam), LD4 (xanh lục), LD5 (đỏ) và LD6 (xanh lam)
+2 USB OTG LEDs: LD7 (xanh) VBus và LD8 (đỏ) quá dịng
-
Có led thơng báo trạng thái nguồn
-
Hai nút bấm (user and reset)
USB OTG với đầu nối micro-AB
-
Gía bán dao động 600-700 ngàn
Hình 2.1: Kit STM32F411 Discovery
2.1.2 Bàn phím ma trận
- Loại phím: mềm
- Nhiệt độ hoạt động 0 ~ 700C.
- Đầu nối ra 8 chân.
-Độ dài cáp: 88mm
-Đầu ra: 8 chân cái, khoảng cách các chân: 2,54mm
- Kích thước bàn phím 65 x 64mm
Hình 2.2: Hình ảnh thực tế bàn phím
CHƯƠNG II CƠ SỞ LÝ THUYẾT
Hình 2.3:Sơ đồ mạch bàn phím
2.1.3 Khố điện từ
Khóa chốt điện Solenoid Lock đi kèm gá chốt, có chức năng hoạt động như một ổ
khóa cửa sử dụng Solenoid để kích đóng mở bằng điện, được sử dụng nhiều trong
nhà thông minh hoặc các loại tủ, cửa điện,... khóa sử dụng điện áp 12 / 24VDC, là
loại thường đóng với chất lượng tốt, độ bền cao.
Thông số kỹ thuật:
-
Điện áp sử dụng: 12 / 24VDC (tùy chọn).
-
Dịng điện tiêu thụ: 0.8A - Cơng suất tiêu thụ: 9.6W
-
Sử dụng Solenoid từ.
-
Tốc độ phản ứng: < 1s - Thời gian kích liên tục: < 10s
-
Đi kèm gá chốt khóa.
Hình 2.4: Khố chốt điện
2.1.4 Module relay
Mạch 1 Relay Opto chọn mức kích High/Low (5/12/24VDC) được sử dụng để
bật, tắt thiết bị AC/DC qua Relay, mạch có thể tùy chọn kích bằng mức cao hoặc thấp
(High/Low) qua Jumper, ngồi ra mạch còn bổ sung thêm Opto cách ly cho độ an
toàn và chống nhiễu vượt trội (một số mạch trên thị trường khơng có Opto), thích hợp
với các ứng dụng bật tắt, điều khiển thiết bị qua Relay.
-
Thông số kỹ thuật :
Chọn Mức Kích High/Low (5/12/24VDC)
-
Điện áp sử dụng: có ba loại 5/12/24VDC
-
Dịng tiêu thụ: khoảng 200mA /1Relay
-
Tín hiệu kích: Tùy chọn mức cao High (5/12/24VDC theo loại Relay) hoặc thấp
Low (0VDC) qua Jumper.
-
Tiếp điểm đóng ngắt Relay trên mạch: Max 250VAC-10A hoặc 30VDC-10A (Để
an toàn nên dùng cho tải có cơng suất <100W).
-
Kích thước: 1.97 in x 1.02 in x 0.75 in (5.0 cm x 2.6 cm x 1.9 cm)
Hình 2.5: Mạch 1 Relay Opto
CHƯƠNG II CƠ SỞ LÝ THUYẾT
2.1.5 Màn hình LCD 20x4
Màn hình text LCD2004 xanh dương, có khả năng hiển thị 2 dịng với mỗi
dịng
20 ký tự, màn hình có độ bền cao, rất phổ biến, nhiều code mẫu và dễ sử dụng
thích hợp cho những người mới học và làm dự án.
Thông số kỹ thuật:
-
Điện áp hoạt động là 5 V
-
Kích thước: 98 x 60 x 13.5 mm
-
Chữ đen, nền xanh dương
- Khoảng cách giữa hai chân kết nối là 0.1 inch tiện dụng khi kết nối với
Breadboard.
- Tên các chân được ghi ở mặt sau của màn hình LCD hổ trợ việc kết nối, đi
dây điện.
-
Có đèn led nền, có thể dùng biến trở hoặc PWM điều chình độ sáng để sử dụng ít
điện năng hơn.
-
Có thể được điều khiển với 6 dây tín hiệu
- Có bộ ký tự được xây dựng hổ trợ tiếng Anh và tiếng Nhật, xem thêm
HD44780
datasheet để biết thêm chi tiết.
Bảng 2.1: Mơ tả các chân của màn hình LCD 2004
CHƯƠNG II CƠ SỞ LÝ THUYẾT
Hình 2.6: Màn hình LCD 2004
2.1.6 Mạch Chuyển Giao Tiếp LCD2004 Sang I2C
Để sử dụng các loại LCD có driver là HD44780(LCD 1602, LCD 2004,... ),
cần có ít nhất 6 chân của MCU kết nối với các chân RS, EN, D7, D6, D5 và D4 để
có thể giao tiếp với LCD. Nhưng với module chuyển giao tiếp LCD sang I2C, các bạn
chỉ cần
2 chân (SDA và SCL) của MCU kết nối với 2 chân (SDA và SCL) của module là
đã có thể hiển thị thơng tin lên LCD. Ngồi ra có thể điều chỉnh được độ tương phản
bởi biến trở gắn trên module.
Module
MCU
Vcc - 5V
Vcc
GND
GND
SDA
SDA
SCL
SCL
Bảng 2.2: Cách kết nối các chân module I2C với MCU
Hình 2.7: Mạch Chuyển Giao Tiếp LCD2004 Sang I2C
Hình 2.8: Cách kết nối giữa module I2C và LCD
2.1.7 Buzzer
-
Size 12x8.0mm, 42Ohm, 3V
Cần cấp tần số 2~2.4KHz
Hình 2.9: Buzzer
CHƯƠNG II CƠ SỞ LÝ THUYẾT
2.1.8 Nguồn tổ ong
Nguồn tổ ong 12V 5A được thiết kế để chuyển đổi điện áp từ nguồn xoay chiều 180V240V thành nguồn một chiều 12VDC để cung cấp cho các thiết bị hoạt động. Trong
công nghiệp Nguồn tổ ong thường được sử dụng để cấp nguồn cho một số thiết bị
của tủ điện.
Thông số của Nguồn tổ ong 12V 5A
Điện áp đầu vào: 180V-240V
Tần số hoạt động: 47 ~ 63HZ
Công suất: 60W
Điện áp đầu ra: 12V
Dòng điện tối đa: 5A
Điện áp điều chỉnh: ± 10%
Hiệu suất ≥ 85%
Điều chỉnh điện áp (Đầy tải) ≤ 0.3%
Bảo vệ quá tải 105% —- 150% công suất định mức, phục hồi tự động
Chức năng bảo vệ ngắn mạch tự động
Bảo vệ quá áp 105% —- 150% điện áp định mức
Nhiệt độ làm việc: -20 ℃ ~ 60 ℃
Nhiệt độ bảo quản -40 ℃ ~ 85 ℃
Kích thước: 110 * 78 * H36 (mm)
2.2 Phần mềm hỗ trợ lập trình
2.2.1 STM32CubeMX:
STM32CubeMX là một cơng cụ hỗ trợ cấu hình và tạo code cho MCU STM32. Tất cả
các cơng việc cấu hình, nâng cấp đều được thực hiện qua giao diện đồ họa. Việc này
giúp cho việc lập trình trên STM32 dễ dàng hơn, rút ngắn được thời gian nghiên cứu
và phát triển.
Hình 2.10: Phần mềm Stm32CubeMx
2.2.2 KeilC V5
Hiện nay có khá nhiều trình biên dịch ngôn ngữ C cho 8051 như Mikro C, IAR,
SDCC, Reads 51 … µVision là mơi trường phát triển tích hợp (IDE: Integrated Development Environment, trình soạn thảo ngơn ngữ C, trình biên dịch và debug) của cơng
ty Keil Software, và thường được gọi là Keil C.
Keil C là môi trường phát triển khá mạnh và được sử dụng rộng rãi hiện nay. Nó
hỗ trợ ta viết chương trình cho các chip vi điều khiển lõi 8051 và ARM của tất cả các
hãng trên thế giới
Hình 2.11: Phần mềm KeilC Version 5
CHƯƠNG IV: GIẢI QUYẾT BÀI TOÁN
CHƯƠNG 3 THIẾT KẾ
3.1 Bài tốn đặt ra
Thiết kế thi cơng bộ khóa cửa tự động dùng mật khẫu nhập từ bàn phím, và
hiển thị kết quả thông tin lên LCD. Nếu nhập sai 3 lần sẽ có cảnh báo, đèn cịi, người
dùng có thể tự thiết lập lại mật khẩu.
Như vậy, vi điều khiển STM32 sẽ nhận tín hiệu (Digital) từ bàn phím gửi về,
xử lí, và hiển thị trạng thái lên màn hình LCD. Nếu nhập mật khẩu chính xác, vi điều
khiển sẽ xuất tín hiệu cho khố điện từ để mở khố. Nếu nhập sai, khố sẽ khơng mở,
và nếu nhập sai tới lần thứ 3 thì sẽ hiện thơng tin cảnh báo lên màn hình LCD, đồng
thời xuất tín hiệu cho còi hú cảnh báo cho chủ nhà biết, chủ nhà sẽ dùng nút nhấn riêng
để ngắt trạng thái báo động.
Dựa vào số lượng thiết bị, ta sẽ cấu hình số ngõ vào ngõ ra để phù hợp với các
thiết bị ngoại vi.
PORT
PIN
Cấu Hình
GPIOB
GPIOB
GPIOD
GPIOC
GPIOA
GPIOA
GPIOB
Pin6, Pin7
Pin3
Pin 7
Pin1, Pin3, Pin5
Pin1,Pin3
Pin5, Pin7
Pin1
I2C (SCL,SDA)
OUTPUT
OUTPUT
Pin1 &Pin3(INPUT) Pin5(OUTPUT)
INPUT
OUTPUT
OUTPUT
Bảng 3.1: Cấu hình IN-OUT-I2C cho vi điều khiển
-
PC6, PD7, PD8, PD9 – 4 chân cột của bàn phím số
-
PD1, PD2, PD3, PB6 – 4 chân hàng của bàn phím số
-
PA0 – Nút nhấn (Được hàn sẵn trên vi điều khiển)
-
PD15 – Chân tín hiệu của module relay
-
PD14 – Chân VCC của cịi hú.
-
PB6, PB7 – Chân tín hiệu của I2C
Ta có sơ đồ nối chân giữa vi điều khiển và cá thiết bị ngoại vi như sau:
Hình 3.1: Sơ đồ kết nối
3.2 Xử lí tín hiệu từ bàn phím
3.2.1 Nguyên lí đọc tín hiệu bàn phím:
Đầu tiên, ta cần biết sơ đồ chân của bàn phím:
Hình 3.2: Sơ đồ mạch bàn phím
CHƯƠNG IV: GIẢI QUYẾT BÀI TOÁN
Nguyên lý hoạt động:
- Để làm việc với bàn phím 4×4, người lập trình thường sử dụng giải thuật “quét phím”.
Giải thuật này yêu cầu VĐK liên tục đưa các tín hiệu đầu ra ở hàng (hoặc cột) và thu
lại đầu vào ở cột (hoặc hàng), nếu phím được bấm, đầu phát tín hiệu sẽ được kết nối
với đầu thu, từ đó xác định được phím đã bấm.
- Việc lựa chọn đầu ra/vào hình thành 2 phương pháp quét phím: theo chiều dọc và
theo chiều ngang. Trong báo cáo này, tín hiệu xuất ra ở các cột và thu lại ở các hàng.
- Giả sử một nút ‘4’ được nhấn, khi đó hàng 1 và cột 4 được nối với nhau. Nếu hàng
1 được nối với GND, khi đó, điện áp ở cột số 2 sẽ mang điện áp 0V. Tương tự như
thế với các phím cùng hàng 1.
- Bàn phím gồm 4 hàng và 4 cột, mỗi phím trên bàn phím sẽ tương ứng với 1 hàng và
4 cột. vậy ta sẽ xuất tín hiệu vào 4 hàng và đọc tín hiệu gửi về từ 4 cột thông qua
các chân của vi điều khiển:
-
Chân PC1 nối với hàng 1 của bàn phím - Chân PA5 nối với hàng 2 của bàn phím
-
Chân PC3 nối với hàng 3 của bàn phím - Chân PA7 nối với hàng 4 của bàn phím
-
Chân PA1 nối với cột 1 của bàn phím - Chân PC5 nối với cột 2 của bàn phím
-
Chân PA5 nối với cột 3 của bàn phím - Chân PB1 nối với cột 4 của bàn phím
Thuật tốn:
Bước 1: Set các chân R1, R2, R3, R4 như các chân Output và giữ chúng ở mức thấp,
các chân C1, C2, C3, C4 như các chân input có điện trở kéo lên.
Bước 2: Đưa tín hiệu đầu ra ở các chân R1 = 1, R2 = 0, R3 = 0 và R4 =0.
Kiểm tra C1, C2, C3, C4, nếu cột nào nhận giá trị điện áp bằng 5V thì phím
được nhấn sẽ được xác định theo cơng thức Phím nhấn (Hàng xuất điện áp mức
5V, Cột nhận giá trị điện áp 5V)
Bằng thao tác trên, sẽ xác định phím đã được nhấn nếu nó ở hàng 1.
Bước 3: Tiếp tục đưa tín hiệu đầu ra ở các chân R1 = 0, R2 =1, R3 = 0, R4 = 0 để xác
định phím bấm được nhấn nếu nó ở hàng 2.
Thực hiện quá trình trên với 2 hàng 3 và 4.
Bước 4: Thực hiện quá trình dịch chân đầu ra mang điện áp mức 1 một cách liên tục
và xác định phím được bấm.
3.2.2 LCD I2C:
- Các chân tín hiệu nối với module I2C: PB6 – SCL và PB7 – SDA
- Vào thư mục của dự án mới khởi tạo, tìm thư mục I2C1 trong phần
connectivity cubeMx.
-
Cấu hình I2C và sử dụng.
Hình 3.3: Cấu hình I2C
-
Sử dụng câu lệnh sau để khai báo thư viện I2C trong hàm main.
Hình 3.4: Khái báo thư viện LCD kết nối vs I2C và keypad
CHƯƠNG IV: GIẢI QUYẾT BÀI TOÁN
3.2.3 Nguyên lý kiểm tra mật khẩu
- Đầu tiên, ta khởi tạo một mảng với 4 giá trị (tuỳ ý đặt số lượng), mỗi giá trị
trong mảng tương ứng với một giá trị của mật khẩu:
+ char matkhau[4] = {'1', '2', '3', '4'};
- Như đoạn code trên 1 mang gồm 4 phần tử tương ứng với mật khẩu là 1 2 3 4
- Sau đó tạo 1 mảng gồm 4 phần tử để so sánh với mật khẩu được lưu trước đó
+ char get_key_str_buf[4];
- Sau đó tạo 1 hàm Int get_key_str() để lấy giá trị từ bàn phím 4x4 với 4 phần
tử và lưu vào mảng get_key_str_buf[4] , tạo hàm con kiemtramatkhau() để so
sánh mật khẩu được lưu trước đó và hiển thị giá trị từ bàn phím nhập ra LCD.
3.2.4 Nguyên lí đổi mật khẩu
- Để đổi mật khẩu chúng ta phải nhập đúng mật khẩu đã lưu trước đó.
- Sau khi nhập đúng mật khẩu đã lưu trước đó sẻ tạo 1 chuỗi makhau_bufer[j]
Để lưu 4 phần tử mới, sau đó sẻ xác nhận lần 2, nếu lần 2 khớp với 1 mảng
gồm 4 kí tự đã nhập trước đó, sau đó sẻ gán matkhau[k] = get_key_str_buf[k];
Để hình thành nên mật khẩu mới
CHƯƠNG IV: GIẢI QUYẾT BÀI TỐN
4. Sơ đồ giải thuật
Hình 4.1: Sơ đồ giải thuật
Các chế độ được thiết lập cho sản phẩm:
Sau khi nhập đúng mật khẩu đã lưu trước đó từ bàn phím
-Nhấn A: Mở Khóa
- Nhấn B: Đóng cửa
- Nhấn C: Sau khi nhấn C , nhập lại mật khẩu xác nhận đã lưu trước đó, sau đó nhập mật khẩu
mới và xác nhận mật khẩu
- Nhấn D: Thoát
CHƯƠNG IV: GIẢI QUYẾT BÀI TỐN
4.1 Lưu đồ giải thuật
Hình 4.2: Lưu đồ giải thuật
3.2.3 Các bước thực hiện việc cấu hình và code:
- Đầu tiên, ta mở phần mềm STM32CubeMxleen, mở một Project mới, chọn
dịng chip STM32f411 VET6
Hình 4.3: Phần mềm CubeMx
-
Tiếp theo ta cấu hình các cổng IN/OUT, I2C, RCC:
Hình 4.4: Phần mềm CubeM
CHƯƠNG IV: GIẢI QUYẾT BÀI TOÁN
Cài đặt tần số thạch anh Nội STM32F411 VE
Hình 4.4.1: Cài đặt tần số thạch anh
-Sau đó đặt tên dự án, chọn thư mục lưu và chọn phiên bản KeilC, cuối cùng nhấn
Generate Code để sinh code:
Hình 4.5: Tạo code Keil C