ỦY BAN NHÂN DÂN TỈNH THÁI BÌNH TRƯỜNG ĐẠI HỌC THÁI BÌNH KHOA ĐIỆN – ĐIỆN TỬ ĐỒ ÁN TỐT NGHIỆP ĐỀ TÀI THIẾT KẾ CHẾ TẠO MẠCH KHÓA CỬA THÔNG MINH SỬ DỤNG VI ĐIỀU KHIỂN Giảng viên hướng dẫn Th S Nguyễn Thị.
Lý do lựa chọn đề tài
Ở mỗi gia đình, cơ quan, xí nghiệp, trường học hay bất cứ nơi đâu, mục tiêu bảo vệ tài sản trong căn phòng luôn được đặt lên hàng đầu, vì vậy trên mỗi cánh cửa đều được lắp thêm khóa để tăng cường an ninh Hiện nay thị trường khóa cửa rất đa dạng, nhưng hầu hết là khóa cơ khí; loại khóa này có mức độ bảo mật không cao và dễ bị phá khóa bằng chìa khóa đa năng Trong khi đó, phần lớn khóa kỹ thuật số được bày bán trên thị trường là sản phẩm do Hàn Quốc sản xuất, chủ yếu là khóa tay nắm và có giá khá cao.
Khóa sử dụng phương pháp cài đặt mã số để khóa hoặc mở, cho phép người dùng tự thiết lập bất kỳ số nào mình muốn Hệ thống số của khóa được thiết kế giống như các phím bấm số trên điện thoại, giúp thao tác nhanh chóng và tiện lợi cho người dùng.
Ngoài loại chỉ có chức năng khóa bằng mã số, sản phẩm còn có phiên bản tích hợp khóa bằng chìa, mang lại sự linh hoạt và tăng cường bảo mật cho người dùng Chìa khóa của phiên bản này được thiết kế đặc biệt với bốn cạnh, khác biệt so với các chìa khóa thông thường có hai cạnh, giúp khó làm giả và tăng độ an toàn trong sao chép Việc kết hợp giữa khóa mã số và khóa chìa trong một hệ thống cho phép người dùng quản lý truy cập hiệu quả đồng thời nâng cao khả năng chống trộm.
Khoá kỹ thuật số mở bằng dấu vân tay có thể đăng ký 25 hoặc 40 vân tay khác nhau, cho phép lưu lại vân tay của nhiều thành viên trong gia đình vào bộ nhớ của khóa Khi vân tay đăng ký khớp với dữ liệu lưu sẵn, cửa sẽ mở Phần lớn các loại khóa này không cần dùng chìa khóa, mang lại sự tiện lợi và an toàn cho gia đình.
Để nâng cao mức bảo mật nhằm bảo vệ tài sản và vẫn duy trì giao diện người dùng thân thiện, nhóm nghiên cứu đề xuất một giải pháp khóa số dựa trên nền tảng kỹ thuật vi điều khiển Giải pháp này tối ưu hóa khả năng xác thực và quản lý truy cập, kết hợp sự an toàn với trải nghiệm người dùng tiện lợi và dễ sử dụng.
Tìm hiểu nguyên lý, ứng dụng của vi điều khiển
Ứng dụng lý thuyết vi điều khiển vào thiết kế mạch khóa cửa thông minh
Thiết kế mạch khóa cửa thông minh thực tế
Báo cáo lý thuyết, nguyên lý thiết kế mạch khóa cửa thông minh
3 Đối tượng và phạm vi nghiên cứu
Nghiên cứu về vi điều khiển
Nhu cầu sử dụng khóa cửa thông minh
Phạm vi ứng dụng của khóa thông minh
Sử dụng nhiều phương pháp nghiên cứu khác nhau :
Thu thập tài liệu liên quan đến đề tài
Nghiên cứu và phát triển cơ sở lý luận thực tiễn đề tài.
Nghiên cứu thí nghiệm trong phòng và khảo sát, thử nghiệm trên mô hình và thử nghiệp thực tế
5 Kết cấu của đề tài Đề tài gồm 4 chương :
Chương I: Linh kiện sử dụng
Chương II: Sơ đồ khối và nguyên lý hoạt động
Chương III: Hướng phát triển
Chương V: Đánh giá kết quả đạt được và kết luận
CHƯƠNG I : LINH KIỆN SỬ DỤNG
1.1.1 Giới thiệu khái quát về Arduino
Arduino có nhiều phiên bản với hiệu năng và mục đích sử dụng khác nhau, từ Arduino Mega đến Arduino LilyPad Trong số này, Arduino Uno R3 là một trong những phiên bản được sử dụng rộng rãi nhất nhờ chi phí hợp lý và tính linh động cao, phù hợp cho mọi dự án từ học tập đến ứng dụng thực tế.
Arduino nổi tiếng với tính mở của phần cứng, vì vậy dòng Arduino Uno R3 có nhiều biến thể được thiết kế để phù hợp với nhiều đối tượng người dùng khác nhau Đầu tiên, ta có phiên bản Arduino Uno R3 tiêu chuẩn, đóng vai trò nền tảng căn bản cho các dự án từ học tập đến thử nghiệm sản phẩm Các biến thể của Arduino Uno R3 được tối ưu hóa cho các nhu cầu khác nhau về kích thước, chi phí và tính năng, cho phép người dùng chọn đúng chuẩn phù hợp với mục đích sử dụng và ngân sách của mình Nhờ tính mở, người dùng có thể tùy chỉnh và mở rộng nền tảng Uno R3 để phát triển các ứng dụng đa dạng.
Dựa trên thiết kế này, để giảm giá thành sản xuất, một số thành phần trên bo mạch được thay thế bằng các phiên bản có chức năng tương đương Ví dụ, vi xử lý điều khiển Arduino từ ATmega328P có chân DIP được đổi thành ATmega328 có chân SMD Phiên bản này được gọi là Arduino Uno SMD R3.
Arduino Nano là phiên bản thu nhỏ của Arduino Uno, đáp ứng nhu cầu phát triển các thiết bị kích thước nhỏ gọn Với vi điều khiển ATmega328-SMD, Arduino Nano vẫn giữ nguyên sức mạnh của Uno nhưng được thiết kế với kích thước siêu nhỏ và có thể cắm trực tiếp lên breadboard, giúp dễ dàng tích hợp vào các dự án nhúng đòi hỏi không gian hạn chế.
Để khai thác tối đa sức mạnh của Arduino, bạn cần nắm rõ thông số kỹ thuật của từng loại board và nhận diện sự khác biệt giữa các phiên bản Hiểu sâu về các thông số này giúp chọn đúng dòng Arduino phù hợp với mục tiêu dự án và từ đó đề xuất giải pháp xử lý tối ưu Việc so sánh thông số kỹ thuật giữa các phiên bản Arduino giúp tối ưu hiệu suất, tiết kiệm chi phí và giảm thiểu rủi ro trong triển khai Nhờ vậy, ta có thể tận dụng tối đa tiềm năng của Arduino cho mọi ứng dụng.
Trong bài viết này, ta sẽ đi sâu vào thông số kỹ thuật của Arduino Uno R3 và các biến thể gần như có thông số tương đương, giải thích ý nghĩa của từng tham số và đưa ra lưu ý khi làm việc với Arduino Uno R3 Uno R3 vận hành ở 5V với nguồn cấp từ jack 7–12V hoặc qua USB 5V, có tốc độ 16 MHz và 32 KB flash memory (khoảng 0,5 KB dành cho bootloader), 2 KB RAM và 1 KB EEPROM; số chân I/O kỹ thuật số là 14 và 6 chân analogue, cho phép PWM trên các chân 3, 5, 6, 9, 10 và 11; giao tiếp USB‑to‑serial là do vi điều khiển ATmega16U2, còn giao tiếp SPI và I2C được hỗ trợ trên các chân tương ứng (SPI trên 11–13 và I2C trên A4/A5) Các lưu ý quan trọng: giới hạn dòng trên mỗi chân I/O khoảng 20 mA và tổng giới hạn để bảo vệ board, sự khác biệt nhỏ giữa các phiên bản Uno R3 từ các nhà sản xuất khác nhau, và những điểm cần xem xét khi chọn board hoặc tích hợp Uno R3 vào dự án.
Hình 1.4 cho thấy Arduino UNO R3 Arduino UNO được xây dựng với vi điều khiển ATmega328P hoạt động với thạch anh 16 MHz Với vi điều khiển này, bảng có tổng cộng 14 chân I/O số được đánh số từ 0 đến 13, trong đó có 6 chân PWM được đánh dấu bằng ký hiệu ~ trước số chân Bên cạnh đó, có 6 chân nhận tín hiệu analog từ A0 đến A5, và các chân này cũng có thể được dùng như các chân I/O số thông thường (0–13) Đáng chú ý, chân 13 là chân đặc biệt vì nó nối trực tiếp với LED trạng thái trên board.
Trên board có một nút reset, một ngõ kết nối với máy tính qua cổng USB và một ngõ cấp nguồn sử dụng jack 2.1mm có thể lấy năng lượng trực tiếp từ AC-DC adapter hoặc từ ắc-quy nguồn Nút reset cho phép khởi động lại hệ thống dễ dàng, trong khi cổng USB hỗ trợ giao tiếp và lập trình với máy tính Việc cấp nguồn qua jack 2.1mm mang lại sự linh hoạt về nguồn điện, phù hợp với nhiều tình huống sử dụng.
Khi làm việc với Arduino board, một số thuật ngữ sau cần được lưu ý:
Flash memory là loại bộ nhớ có thể ghi được và dữ liệu không bị mất ngay khi nguồn điện bị ngắt Vai trò của nó là lưu trữ dữ liệu trên bảng mạch như một ổ cứng nội bộ, các chương trình viết cho Arduino được lưu ở đây Kích thước của vùng nhớ này phụ thuộc vào vi điều khiển được sử dụng; ví dụ ATmega8 có 8KB flash memory Loại bộ nhớ này có thể chịu khoảng 10.000 lần ghi/xóa.
RAM là bộ nhớ nhanh, hoạt động tương tự RAM máy tính; dữ liệu bị mất khi nguồn điện bị ngắt, nhưng tốc độ đọc/ghi/xóa dữ liệu rất nhanh; kích thước của RAM nhỏ hơn nhiều lần so với Flash Memory, phù hợp cho các tác vụ đòi hỏi xử lý nhanh và lưu tạm thời dữ liệu.
Kết cấu của đề tài
Chương I: Linh kiện sử dụng
Chương II: Sơ đồ khối và nguyên lý hoạt động
Chương III: Hướng phát triển
Chương V: Đánh giá kết quả đạt được và kết luận
LINH KIỆN SỬ DỤNG
Arduino UNO R3
1.1.1 Giới thiệu khái quát về Arduino
Arduino có rất nhiều phiên bản với hiệu năng và mục đích sử dụng khác nhau, từ Arduino Mega cho các dự án đòi hỏi số lượng chân cắm và bộ nhớ lớn đến Arduino LilyPad cho các ứng dụng đeo và thiết bị nhỏ gọn Trong số đó, Arduino Uno R3 là một trong những phiên bản được sử dụng rộng rãi nhất nhờ chi phí hợp lý và tính linh động cao.
Arduino có tính mở về phần cứng, do đó Arduino Uno R3 có nhiều biến thể nhằm phục vụ các đối tượng sử dụng khác nhau Đầu tiên là phiên bản Arduino Uno R3 tiêu chuẩn, được xem là lựa chọn cơ bản và phổ biến cho giáo dục, dự án DIY và người mới bắt đầu, với tính tương thích cao với hàng nghìn shield và thư viện, đồng thời duy trì sự ổn định và dễ lập trình.
Trong thiết kế này, nhằm giảm chi phí sản xuất, một số thành phần trên board được thay thế bằng các linh kiện có chức năng tương đương Cụ thể, vi điều khiển Arduino từ ATmega328P có chân DIP được thay bằng ATmega328 có chân SMD, giúp rút ngắn kích thước và giảm giá thành Phiên bản này được gọi là Arduino Uno SMD R3.
Arduino Nano ra đời nhằm đáp ứng nhu cầu các thiết bị có kích thước nhỏ gọn, vẫn kế thừa sức mạnh của Arduino Uno nhờ vi điều khiển ATmega328-SMD; toàn bộ mạch được thu nhỏ và tích hợp sẵn khả năng cắm trực tiếp vào breadboard, giúp triển khai các dự án nhỏ một cách nhanh chóng và linh hoạt.
Để khai thác tối đa sức mạnh của Arduino, ta cần nắm vững thông số kỹ thuật của từng loại bo mạch và nhận diện sự khác biệt giữa các phiên bản Nhờ sự so sánh này, ta có thể chọn đúng dòng Arduino phù hợp với dự án và đưa ra giải pháp xử lý tối ưu dựa trên đặc điểm kỹ thuật riêng của từng phiên bản.
Trong bài viết này, chúng ta sẽ đi sâu vào thông số kỹ thuật của Arduino Uno R3 và các biến thể gần như có thông số tương đương, giải thích ý nghĩa từng thông số và nêu ra một số lưu ý khi làm việc với board này Arduino Uno R3 sử dụng vi xử lý ATmega328P hoạt động ở 16 MHz, có 32 KB flash nhớ (trong đó khoảng 0,5 KB dành cho bootloader), 2 KB RAM và 1 KB EEPROM, được cấp nguồn 5V với tùy chọn cấp từ USB hoặc jack nguồn 7–12V; board có 14 chân số, trong đó 6 chân có PWM, 6 chân analog và các chuẩn giao tiếp UART, I2C và SPI hỗ trợ kết nối cảm biến và mô-đun Giao diện USB-serial và thiết kế bootloader của Uno R3 cho phép nạp chương trình dễ dàng qua IDE Arduino; các biến thể gần tương đương (như Uno có viền USB khác hoặc clone sử dụng USB-to-serial khác) có chung các thông số nên khi so sánh cần chú ý tới loại chip USB-serial, dung lượng pin và tiêu thụ điện Khi làm việc với Arduino Uno R3, người dùng nên lưu ý về nguồn cấp ổn định và giới hạn của pin I/O, quản lý bộ nhớ để tránh tràn RAM, và tận dụng các shield tương thích để phát triển nhanh dự án.
Arduino Uno R3 được thiết kế dựa trên vi điều khiển ATmega328P, hoạt động với thạch anh 16 MHz, cho hiệu suất ổn định trong các ứng dụng nhúng Nó có tổng cộng 14 chân digital I/O từ 0 đến 13, trong đó có 6 chân PWM được đánh dấu ~ phía trước mã số chân để phục vụ PWM Bên cạnh đó, Arduino Uno còn 6 chân nhận tín hiệu analog từ A0 đến A5, và các chân này có thể được sử dụng như các chân digital bình thường (0-13) khi cần Đặc biệt, chân 13 là chân kết nối trực tiếp với LED trạng thái trên bo mạch, giúp người dùng dễ quan sát tín hiệu xuất ra và kiểm tra hoạt động của board.
Trên board có 1 nút reset, một ngõ kết nối máy tính qua cổng USB và một ngõ cấp nguồn dùng jack 2.1mm Nguồn cấp có thể lấy trực tiếp từ AC-DC adapter hoặc từ ắc-quy nguồn.
Khi làm việc với Arduino board, một số thuật ngữ sau cần được lưu ý:
Flash Memory là bộ nhớ có thể ghi được và dữ liệu sẽ không bị mất ngay khi nguồn điện bị tắt Vai trò của nó tương tự một ổ cứng trên board, lưu trữ dữ liệu và chương trình cho Arduino Kích thước của vùng nhớ phụ thuộc vào vi điều khiển được sử dụng; ví dụ, ATmega8 có 8KB flash memory Loại bộ nhớ này có thể chịu được khoảng 10,000 lần ghi/xoá.
RAM là loại bộ nhớ tạm, tương tự như RAM trong máy tính: dữ liệu sẽ bị mất khi ngắt nguồn điện, nhưng tốc độ đọc/ghi/xóa rất nhanh Dung lượng của RAM thường nhỏ hơn rất nhiều so với Flash Memory, bởi vậy RAM được dùng cho xử lý và lưu dữ liệu tạm thời trong khi Flash Memory lưu trữ lâu dài hơn.
EEPROM là một dạng bộ nhớ tương tự Flash Memory, nhưng có chu kỳ ghi/xóa cao hơn, khoảng 100.000 lần, và kích thước rất nhỏ, phù hợp cho các ứng dụng nhúng lưu trữ dữ liệu lâu dài với tần suất ghi giới hạn Để đọc/ghi dữ liệu vào EEPROM, ta có thể dùng thư viện EEPROM của Arduino, giúp thao tác dữ liệu đơn giản và hiệu quả.
Ngoài ra, board Arduino còn cung cấp cho ta các pin khác nhau như pin cấp nguồn3.3V, pin cấp nguồn 5V, pin GND
Vi điều khiển ATmega328P Điện áp hoạt động 5V Điện áp vào khuyên dùng 7-12V Điện áp vào giới hạn 6-20V
Digital I/O pin 14 (trong đó 6 pin có khả năng băm xung)
Cường độ dòng điện trên mỗi I/O pin 20 mA
Cường độ dòng điện trên mỗi
0.5 KB được sử dụng bởi bootloader
Bảng 1.1: Thông số kỹ thuật của Arduino board
Một số lưu ý khi làm việc với Arduino Uno R3
Arduino được trang bị cầu chì tự phục hồi (resettable fuse) để bảo vệ mạch khi xảy ra quá tải Tuy nhiên, cầu chì này chỉ được mắc cho cổng USB và có chức năng tự động ngắt nguồn khi nguồn cấp từ USB vượt quá 5V.
Khi làm việc với Arduino, cần tính toán kỹ lưỡng để bảo vệ board và tránh hư hỏng Các thao tác sai có thể làm hỏng một phần hoặc toàn bộ board Arduino, đặc biệt liên quan đến kết nối nguồn và đất (GND) Để giảm rủi ro, nên kiểm tra kỹ sơ đồ mạch, đảm bảo cấp nguồn đúng chuẩn 5V, kiểm tra lại mọi kết nối trước khi cấp nguồn và sử dụng thiết bị đo lường để phát hiện sự cố sớm, giúp bảo vệ thiết bị và tối ưu hiệu suất.
Khi nối trực tiếp nguồn 5V vào GND mà không qua bất kỳ điện trở hạn dòng nào, mạch sẽ bị đoản mạch và có thể làm hỏng Arduino cùng các linh kiện khác Đây là lỗi phổ biến mà người mới sử dụng Arduino gặp phải do thiếu hiểu biết về cách giới hạn dòng điện và điện áp giữa nguồn cấp và các thành phần trong mạch Để ngăn nguy cơ, luôn thiết kế mạch với điện trở hạn dòng hoặc tải phù hợp giữa nguồn và đất, kiểm tra kỹ sơ đồ mạch và nhãn cực trước khi cấp nguồn, và tránh nhầm lẫn giữa 5V và GND trên bảng mạch Nếu xảy ra sự cố, ngắt nguồn ngay và rà soát lại các kết nối, đặc biệt là các điểm nối và ngõ cấp nguồn để bảo vệ Arduino.
Nối trực tiếp dòng 5V vào 1 trong 2 chân GND
Nối 1 pin OUT bất kì vào GND
Cấp nguồn lớn hơn 5V cho bất kì pin I/O nào
Theo tài liệu của nhà sản xuất, ATmega328P có ngưỡng điện áp tối đa là 5V; bất kỳ nguồn cấp nào vượt quá 5V đều có thể gây hỏng vi điều khiển này Vì vậy, để bảo vệ MCU và đảm bảo hoạt động ổn định của dự án, hãy dùng nguồn cấp chuẩn 5V hoặc thấp hơn (sử dụng bộ regulator hoặc nguồn ổn áp phù hợp) và kiểm tra điện áp trước khi cấp nguồn cho mạch, tránh cấp pin hoặc nguồn có điện áp vượt mức để ngăn ngừa hỏng hóc.
Màn hình LCD
Hiện nay, màn hình LCD 1602 (Liquid Crystal Display) được sử dụng trong rất nhiều ứng dụng của vi điều khiển LCD 1602 có ưu điểm nổi bật là khả năng hiển thị ký tự đa dạng (chữ, số, ký tự đồ họa) và dễ dàng tích hợp vào mạch ứng dụng theo nhiều giao thức giao tiếp khác nhau Nó tiêu thụ rất ít tài nguyên hệ thống và có mức giá cạnh tranh, làm cho LCD 1602 trở thành lựa chọn phổ biến cho các thiết kế hiển thị thông tin.
LCD 16 × 2 được đặt tên như vậy bởi vì; Nó có 16 Cột và 2 Hàng Có rất nhiều kết hợp có sẵn như, 8 × 1, 8 × 2, 10 × 2, 16 × 1, v.v Nhưng cái được sử dụng nhiều nhất là LCD 16 * 2, do đó chúng tôi đang sử dụng nó ở đây.
Các màn hình LCD được đề cập ở trên đều có 16 chân kết nối và áp dụng một phương pháp lập trình chung, vì vậy bạn có thể chọn bất kỳ mẫu nào mà không phải lo về sự khác biệt trong cách lập trình.
Thông số kĩ thuật của sản phẩm LCD 1602:
- Điện áp ra mức cao : > 2.4
- Điện áp ra mức thấp :