N02 06 Khoathongminh docx BỘ GIÁO DỤC VÀ ĐÀO TẠO HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VÀ VIỄN THÔNG KHOA KỸ THUẬT ĐIỆN ĐIỆN TỬ ��� BÁO CÁO ĐỒ ÁN THIẾT KẾ HỆ THỐNG NHÚNG Nhóm làm bài 06 ĐỀ TÀI Khóa cửa thông minh dùng RFID và bàn phím Keypad Sinh viên Hà Nội 2020 Mục Lục LỜI NÓI ĐẦU 3 I Mục tiêu 4 II Kết quả 4 III, Tiến trình công việc 4 IV, Linh kiện sử dụng và các giao tiếp kết nối 4 1, STM32F103C8T6 4 2, Bàn phím Keypad 3x4 6 3, Màn hình LCD 16x2 và module I2C 6 a, Màn hình LCD 16x2 6 b, Module I2C và.
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VÀ VIỄN THÔNG
KHOA KỸ THUẬT ĐIỆN - ĐIỆN TỬ
-
-BÁO CÁO: ĐỒ ÁN THIẾT KẾ HỆ THỐNG NHÚNG
Nhóm làm bài: 06
ĐỀ TÀI: Khóa cửa thông minh dùng RFID và bàn phím Keypad
Sinh viên:
Hà Nội 2020
Trang 2Mục Lục
VI Giới thiệu về khóa cửa thông minh dùng RFID và Keypad 16
Trang 3LỜI NÓI ĐẦU
Trong thời đại phát triển hiện nay, vấn đề an toàn bảo mật và an ninh là một vấn đề cực
kì quan trọng và cần thiết trong cuộc sống, ta có thể thấy hàng loạt các công nghệ có liên quan và ảnh hưởng đến vấn đề này đang được thúc đẩy ra đời và phát triển một cách mạnh mẽ Từ vấn đề về an ninh của các cơ quan, trụ sở cho tới việc bảo đảm an toàn các thiết bị, nhà cửa,công trình, v.v Điển hình như việc thiết lập một hệ thống bảo vệ nhà cửa tránh sự xâm nhập của kẻ lạ cũng như vấn đề trộm cướp Hệ thống đó có thể là một ổ khóa thông minh được người dùng cài đặt mật khẩu bằng các dãy số, hay là hệ thống được tạo nên dựa trên cơ sở của công nghệ sinh trắc học như là nhận diện khuôn mặt, giọng nói, vân tay Như đã nêu ở trên, hiện tại những nơi như nhà máy, xí nghiệp, cơ quan, nhà cửa hay những nơi có sự an toàn bảo mật đặt hàng đầu thì một hệ thống bảo vệ lối ra vào hay phát hiện được sự xâm nhập của kẻ lạ, khả nghi, giả mạo là vô cùng cần thiết
Trong báo cáo hôm nay, tập thể nhóm 6 chúng em xin phép được trình bày với thầy và các bạn về phần vấn đề đã đăng kí thực hiện Đó là tìm hiểu và thiết kế khóa thông minh dùng RFID để mở khóa và hiển thị trên led LCD
Cảm ơn thầy Nguyễn Ngọc Minh đã đồng hành và giúp đỡ chúng em trong quá trình tìm hiểu Nếu báo cáo có bất kì thiếu sót hay chưa đúng mong cô chỉ dẫn để bọn em có thể khắc phục cho tương lai
Trang 4I.Mục tiêu
- Biết sử dụng vi điều khiển STM32
- Biết sử dụng giao tiếp ngoại vi RFID và bàn phím Keypad để mở khóa
- Thiết kế mạch sử dụng được một cách ổn định
- Tạo được sản phẩm hoàn chỉnh
II Kết quả
- Tạo bản báo cáo chi tiết về khóa cửa thông minh
- Sản phẩm chạy ổn định,không có lỗi
III, Tiến trình công việc
Trần Quang Linh Trần Đình Khiêm Phan Văn Long Giai đoạn 1 Lên ý tưởng dự ánvà vẽ sơ đồ khối
Giai đoạn 2 Tìm hiểu hệ điều hành
FreeRTOS
Tìm hiểu giao thức SPI
Tìm hiểu giao thức I2C
Giai đoạn 3 Xây dựng code Keypad Xây dựng code
RFID
Thiết kế mạch trên Altium
Giai đoạn 5 Hoàn thiện dự án và làm báo cáo
IV, Linh kiện sử dụng và các giao tiếp kết nối
1, STM32F103C8T6
Trang 5Ở trên kit này bao gồm có 3 Port chính:
● Port A: 16 chân
● Port B: 16 chân
● Port C: 3 chân
STM32 là một trong những dòng chip phổ biến của ST với nhiều họ thông dụng như F0,F1,F2,F3,F4… STM32F103 thuộc họ F1 với lõi là ARM COTEX M3 STM32F103
là vi điều khiển 32 bit, tốc độ tối đa là 72Mhz
Phần mềm lập trình: Keil C
Mạch nạp: STLINK
Cấu hình:
● ARM 32-bit Cortex M3 với clock max là 72Mhz
● Bộ nhớ:
o 64 kbytes bộ nhớ Flash(bộ nhớ lập trình)
o 20kbytes SRAM
● Clock, reset và quản lý nguồn
o Điện áp hoạt động 2.0V -> 3.6V
o Sử dụng thạch anh ngoài từ 4Mhz -> 20Mhz
o Thạch anh nội dùng dao động RC ở mode 8Mhz hoặc 40khz
o Sử dụng thạch anh ngoài 32.768khz được sử dụng cho RTC
● 2 bộ ADC 12 bit với 9 kênh cho mỗi bộ
o Khoảng giá trị chuyển đổi từ 0 – 3.6V
o Lấy mẫu nhiều kênh hoặc 1 kênh
o Có cảm biến nhiệt độ nội
● DMA: bộ chuyển đổi này giúp tăng tốc độ xử lý do không có sự can thiệp quá sâu của CPU
● 7 Timer
● Hỗ trợ 9 kênh giao tiếp bao gồm:
o 2 bộ I2C(SMBus/PMBus)
o 3 bộ USART(ISO 7816 interface, LIN, IrDA capability, modem control)
o 2 SPIs (18 Mbit/s)
Trang 6o 1 bộ CAN interface (2.0B Active)
o USB 2.0 full-speed interface
2, Bàn phím Keypad 3x4
Bàn phím mềm 3×4 keypad có thiết kế nhỏ gọn, dễ kết nối và sử dụng, các chân của
12 phím được nối theo ma trận, tín hiệu khi nhấn phím sẽ là tín hiệu GND (0VDC) hoặc Vcc (5VDC) tùy vào cách quét phím của các bạn kích vào chân Vi điều khiển, bàn phím còn tích hợp vị trí để lắp thêm tụ chống dội (chống nhiễu), phù hợp cho các ứng dụng điều khiển bằng phím bấm
Bàn phím tích hợp trong nhiều module mạch điện tử như kit phát triển, kit học tập giao tiếp các vi điều khiển như Pic, 8051, AVR, STM,…
Thông số:
● Chân: 7
● Số nút nhấn: 12
● Điện ạp hoạt động: 3.3 – 5V
3, Màn hình LCD 16x2 và module I2C
Trang 7a, Màn hình LCD 16x2
Thông số kỹ thuật LCD 16×2
● LCD 16×2 có 16 chân trong đó 8 chân dữ liệu (D0 – D7) và 3 chân điều khiển (RS, RW, EN)
● Điện áp 5V
● Điện áp ra mức cao : > 2.4V
● Điện áp ra mức thấp : <0.4V
● Dòng điện cấp nguồn : 350uA – 600uA
● 5 chân còn lại dùng để cấp nguồn và đèn 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 hoặc chế độ dữ liệu
● Chúng còn giúp ta cấu hình ở chế độ đọc hoặc ghi
b, Module I2C vào giao tiếp I2C với LCD
LCD có quá nhiều nhiều chân gây khó khăn trong quá trình đấu nối và chiếm dụng nhiều chân trên vi điều khiển Sử dụng module I2C để giải quyết vấn đề này
Thay vì phải sử dụng 6 chân vi điều khiển để kết nối với LCD 16x2 (RS, EN, D7, D6, D5
và D4) thì module IC2 chỉ cần tốn 2 chân (SCL, SDA) để kết nối
Trang 8Hoạt động I2C:
● I2C sử dụng 2 đường truyền tín hiệu:
SCL - Serial Clock Line : Tạo xung nhịp đồng hồ do Master phát đi
SDA - Serial Data Line : Đường truyền nhận dữ liệu
● Giao tiếp I2C bao gồm quá trình truyền nhận dữ liệu giữa các thiết bị chủ tớ, hay Master - Slave
● Thiết bị Master là 1 vi điều khiển, nó có nhiệm vụ điều khiển đường tín hiệu SCL
và gửi nhận dữ liệu hay lệnh thông qua đường SDA đến các thiết bị khác
● Các thiết bị nhận các dữ liệu lệnh và tín hiệu từ thiết bị Master được gọi là các thiết bị Slave Các thiết bị Slave thường là các IC, hoặc thậm chí là vi điều khiển
● Master và Slave được kết nối với nhau như hình trên Hai đường bus SCL và SDA đều hoạt động ở chế độ Open Drain, nghĩa là bất cứ thiết bị nào kết nối với mạng I2C này cũng chỉ có thể kéo 2 đường bus này xuống mức thấp (LOW), nhưng lại không thể kéo được lên mức cao Vì để tránh trường hợp bus vừa bị 1 thiết bị kéo lên mức cao vừa bị 1 thiết bị khác kéo xuống mức thấp gây hiện tượng ngắn mạch
Do đó cần có 1 điện trờ ( từ 1 – 4,7 kΩ) để giữ mặc định ở mức cao
Trang 9Quá trình truyền nhận dữ liệu:
● Bắt đầu: Thiết bị Master sẽ gửi đi 1 xung Start bằng cách kéo lần lượt các đường SDA, SCL từ mức 1 xuống 0
● Tiếp theo đó, Master gửi đi 7 bit địa chỉ tới Slave muốn giao tiếp cùng với bit Read/Write
● Slave sẽ so sánh địa chỉ vật lý với địa chỉ vừa được gửi tới Nếu trùng khớp, Slave
sẽ xác nhận bằng cách kéo đường SDA xuống 0 và set bit ACK/NACK bằng ‘0’ Nếu không trùng khớp thì SDA và bit ACK/NACK đều mặc định bằng ‘1’
● Thiết bị Master sẽ gửi hoặc nhận khung bit dữ liệu Nếu Master gửi đến Slave thì bit Read/Write ở mức 0 Ngược lại nếu nhận thì bit này ở mức 1
● Nếu như khung dữ liệu đã được truyền đi thành công, bit ACK/NACK được set thành mức 0 để báo hiệu cho Master tiếp tục
● Sau khi tất cả dữ liệu đã được gửi đến Slave thành công, Master sẽ phát 1 tín hiệu Stop để báo cho các Slave biết quá trình truyền đã kết thúc bằng các chuyển lần lượt SCL, SDA từ mức 0 lên mức 1
4, Module RFID RC522
Module RFID RC522 được sử dụng để đọc và ghi dữ liệu cho thẻ NFC ở tần số
13.56Mhz,với bề ngoài nhỏ gọn mức giá phải chăng module thích hợp cho phổ quát vận dụng như: kiểm soát xe pháo, hành khách bằng vé thẻ hay thay thế kỹ thuật mã vạch giúp lưu đa dạng dữ liệu hơn hay trong điều hành nhân viên và chấm công, v.v
Trang 10Thông Số Kỹ Thuật RFID RC522 :
● Dòng làm việc : 13 – 26mA/3.3V-DC
● Dòng tĩnh : 10 – 13mA/3.3V-DC
● Dòng ở chế độ nghỉ : <80uA
● Dòng làm việc max: 30mA
● Tần số hoạt động : 13.56Mhz
● Giao tiếp : SPI
● Khoảng cách đọc : <60mm/1.95”
● Kích thước : 40mm*60mm
● Tốc độ truyền dữ liệu : max 10Mbit/s
Chân kết nối RFID RC522:
● SDA(SS) chân chọn lọc chip khi giao thiệp SPI (kích hoạt mức thấp)
● SCK :chân xung trong chế độ SPI
● MOSI(SDI): Master Data Out – Slave In trong chế độ giao thiệp SPI
● MISO(SDO): Master Data In – Slave Out trong chế độ giao thiệp SPI
● IRQ : chân ngắt
● GND : chân nối mass
● RST : chân reset lại module
● VCC : nguồn 3.3V
Trang 11Nguyên lý hoạt động của công nghệ RFID
Thiết bị RFID reader phát ra sóng điện từ ở một tần số cụ thể nào đó và
thiết bị phát mã RFID tag trong vùng hoạt động sẽ cảm nhận được sóng được
điện từ này và thu nhận năng lượng từ đó phát lại cho thiết bị RFID biết mã số
của mình Ngay lúc đó RFID reader biết được tag nào đang hoạt động trong vùng sóng điện từ
Các hàm đọc ghi module RFID
Quá trình giao tiếp về cơ bản là đọc và ghi giá trị vào các thanh ghi của module RFID,
để đọc và ghi thì chúng ta cần biết địa chỉ của thanh ghi tương ứng cũng như chức năng tương ứng của thanh ghi đó Nói chung, quá trình giao tiếp luôn bắt đầu bằng việc gửi đi địa chỉ của 1 thanh ghi nào đó Địa chỉ thanh ghi được mã hóa bằng 6 bits
Quá trình đọc
Do trong giao thức SPI, byte dữ liệu trả về luôn muộn hơn byte gửi đi nên byte đọc về thứ 1 sẽ là byte rác Và để đọc được byte cuối cùng thì gửi nhét thêm 1 byte rác (mặc định là 0x00)
Trang 12Quá trình ghi
Để ghi dữ liệu vào thanh ghi nào đó, ta gửi địa chỉ của nó đi sau đó gửi kèm theo dữ liệu Tùy thuộc vào địa chỉ đó yêu cầu mấy byte dữ liệu ta gửi đúng số byte dữ liệu tương ứng
Module RFID phân biệt lệnh đọc hay ghi bằng bit 0 của địa chỉ thanh ghi, do địa chỉ thanh ghi chỉ chiếm 6 bis nên vẫn còn thừa 2 bits, module này yêu cầu chúng ta phải dịch trái địa chỉ thanh ghi lên cao, chừa lại bit cao nhất (bit 7) để nó phân biệt lệnh này là đọc hay ghi và bit cuối (bits 0 ) nó bắt phải là 0
Cụ thể: bit 0 là 1 thì đây là đọc, ngược lại bit 0 là 0 thì đây là ghi
SPI – Serial Peripheral Interface – hay còn gọi là giao diện ngoại vi nối tiếp, Là giao tiếp đồng bộ, bất cứ quá trình nào cũng đều được đồng bộ với xung clock sinh ra bởi thiết
bị Master
Trang 13● SCK (Serial Clock): Thiết bị Master tạo xung tín hiệu SCK và cung cấp cho Slave.
Xung này có chức năng giữ nhịp cho giao tiếp SPI Mỗi nhịp trên chân SCK báo 1 bit dữ liệu đến hoặc đi → Quá trình ít bị lỗi và tốc độ truyền cao
● MISO (Master Input Slave Output): Tín hiệu tạo bởi thiết bị Slave và nhận bởi
thiết bị Master Đường MISO phải được kết nối giữa thiết bị Master và Slave
● MOSI (Master Output Slave Input): Tín hiệu tạo bởi thiết bị Master và nhận bởi
thiết bị Slave Đường MOSI phải được kết nối giữa thiết bị Master và Slave
● SS (Slave Select): Chọn thiết bị Slave cụ thể để giao tiếp Để chọn Slave giao tiếp
thiết bị Master chủ động kéo đường SS tương ứng xuống mức 0 (Low) Chân này đôi khi còn được gọi là CS (Chip Select) Chân SS của vi điều khiển (Master) có thể được người dùng tạo bằng cách cấu hình 1 chân GPIO bất kỳ chế độ Output
Khung truyền SPI:
● Mỗi chip Master hay Slave đều có một thanh ghi dữ liệu 8 bits
● Quá trình truyền nhận giữa Master và Slave xảy ra đồng thời sau 8 chu kỳ đồng
hồ, một byte dữ liệu được truyền theo cả 2 hướng
● Quá trình trao đổi dữ liệu bắt đầu khi Master tạo 1 xung clock từ bộ tạo xung nhịp (Clock Generator) và kéo đường SS của Slave mà nó truyền dữ liệu xuống mức Low
● Cứ 1 xung clock, Master sẽ gửi đi 1 bit từ thanh ghi dịch (Shift Register) của nó đến thanh ghi dịch của Slave thông qua đường MOSI Đồng thời Slave cũng gửi lại 1 bit đến cho Master qua đường MISO.Như vậy sau 8 chu kỳ clock thì hoàn tất việc truyền và nhận 1 byte dữ liệu
● Dữ liệu của 2 thanh ghi được trao đổi với nhau nên tốc độ trao đổi diễn ra nhanh
và hiệu quả
Trang 145, Hệ điều hành thời gian thực FreeRTOS
RTOS là viết tắt của cụm từ Real-time operating system hay hệ điều hành thời gian
thực thường được nhúng trong các dòng vi điều khiển dùng để điều khiển thiết bị một cách nhanh chóng và đa nhiệm Là một phần mềm dùng để điều hành, quản lý toàn bộ tất
cả thành phần (bao gồm cả phần cứng và phần mềm) của thiết bị điện tử
Sử dụng cho các tác vụ cần sự phản hồi nhanh của hệ thống, thường được nhúng trong các loại vi điều khiển và không có giao diện (GUI) tương tác với người dùng Chúng cần phản hồi nhanh bởi vì đa số các tác vụ tương tác với thiết bị, máy móc khác chứ không phải con người Các tài nguyên bên trong rất hữu hạn nên chỉ một sự chậm trễ cũng có thể làm hệ thống làm việc hoàn toàn sai lệch
Tại sao lại phải dùng RTOS ?
● Chia sẻ tài nguyên một cách đơn giản: cung cấp cơ chế để phân chia các yêu cầu về
bộ nhớ và ngoại vi của MCU
● Dễ debug và phát triển: Mọi người trong nhóm có thể làm việc một cách độc lập, các lập trình viên thì có thể tránh được các tương tác với ngắt, timer, với phần cứng (cái này mình không khuyến khích lắm vì hiểu được phần cứng vẫn sẽ tốt hơn nhiều)
Cách hoạt động của RTOS
RTOS là một phân đoạn hoặc một phần của chương trình, trong đó nó giải quyết việc điều phối các task, lập lịch và phân mức ưu tiên cho task, nắm bắt các thông điệp gửi đi
từ task
Trang 15V Ý tưởng thiết kế
Input Output
Module RFID-RC522 đọc được đặt cố định ở một vị trí Chúng sẽ phát ra sóng vô tuyến điện ở một tần số nhất định để phát hiện thiết bị phát xung quanh đó, thẻ chip của công nghệ RFID chứa các mã nhận dạng giúp cho RFID đọc nhận dạng chính xác mà không bị nhầm lẫn Các tín hiệu nhận biết từ Module sẽ được truyền đến STM32 để được
xử lý
Bàn phím cơ Keypad dùng để đọc các giá trị, được sử dụng để nhập mật khẩu trong trường hợp không sử dụng khóa từ RFID Các giá trị sẽ được chuyền đến STM32 để được xử lý
Trang 16Chip STM32 đóng vai trò xử lý các tín hiệu để thực hiện các nhiệm vụ yêu cầu Khai báo các giá trị mật khẩu đúng và mã chip sử dụng để đóng mở khóa Các thao tác được đặt thành các trạng thái và hiển thị lên màn hình LCD để tương tác với người dùng
VI Giới thiệu về khóa cửa thông minh dùng RFID và Keypad
- Khóa cửa thông minh là một thiết bị cơ điện khác biệt với các loại khóa truyền thống
có tác dụng thực hiện các nhiệm vụ đóng/mở khi nhận được lệnh từ một thiết bị được xác thực Smartlock sử dụng kết nối không dây với một khóa mã để thực hiện quá trình xác nhận Khóa cửa thông minh cũng đồng thời nhận diện bất kỳ sự tiếp cận nào và gửi thông báo về các tình huống khẩn cấp khác liên quan đến tình trạng của thiết bị
- Cũng như khóa cửa truyền thống, khóa cửa thông minh có cấu tạo bao gồm hai bộ phận là ổ khóa và chìa khóa Tuy nhiên, chìa khóa ở khóa thông minh không tồn tại ở dạng vật chất, mà nó nằm trong thẻ từ hoặc một loại móc chìa khóa đặc biệt được định dạng dành riêng cho khóa thông minh
- Với những loại khóa đơn giản hơn, “chìa khóa” có thể đơn giản là một đoạn mã số Khóa cửa thường được gắn trực tiếp vào ổ khóa thường, bao gồm các bộ phận thu và phát tín hiệu, cũng như thiết bị mở và khóa chốt
VII Một số ưu điểm và ứng dụng
- Ưu điểm:
Khóa cửa thông minh dần được ưa chuộng và là sự lựa chọn cho cuộc sống số chứng
tỏ chứng đang sở hữu nhiều ưu điểm nổi bật so với các dòng khóa truyền thống khác:
● Không còn lo lắng về việc rơi, hay để quên chìa khóa, bạn chỉ cần nhớ mật mã hoặc có card từ
● Không cần mất thời gian tiền bạc để đánh chìa khóa, tất cả được sao lưu trong bộ nhớ máy và email của bạn
● Thao tác nhanh chóng, thuận tiện ngay cả khi bạn đang mang vác nặng nhọc
● Vật liệu của khóa thông minh thường chắc chắn, chịu được sự ăn mòn tốt Cũng
do không cần phải tác động vật lý nhiều như khóa truyền thống, do vậy, ổ khóa thông minh thường bền hơn
● Tự động khóa khi cửa đóng
● Hoạt động với nguồn điện riêng
● Kiểm soát được lịch sử và người ra vào ngồi nhà của bạn
● Thiết kế sang trọng, đa dạng, phù hợp với nhiều phong cách kiến trúc khác nhau
● Dễ dàng thiết lập, cài đặt loại mã khóa phù hợp
● Dễ dàng quản lý đối với những tòa nhà, trung tâm lớn