Đồ án 1: Hệ thống khóa cửa thông minh ngành Công nghệ Kỹ thuật Máy tính - ĐH Sư phạm Kỹ thuật TPHCM

Tìm hiểu đồ án hệ thống khóa cửa thông minh ngành công nghệ kỹ thuật máy tính. Đề tài nghiên cứu thiết kế mô hình khóa cửa điều khiển qua điện thoại và thẻ từ

Người đăng

Ẩn danh

Thể loại

Đồ án tốt nghiệp

2020

55
1
0

Phí lưu trữ

30 Point

Tóm tắt

I. Tổng quan về đồ án hệ thống khóa cửa thông minh

Đồ án hệ thống khóa cửa thông minh là một dự án nghiên cứu và phát triển thuộc ngành Công nghệ Kỹ thuật Máy tính tại Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh. Dự án nhằm giải quyết các bất cập của khóa cửa truyền thống như thất lạc chìa khóa và mất thời gian mở cửa. Hệ thống được xây dựng dựa trên nền tảng phần cứng Arduino Uno R3 và ESP8266 NodeMCU, kết hợp với các module RFID RC522 và cảm biến MC-38. Phần mềm ứng dụng di động được phát triển trên Android Studio, kết nối với cơ sở dữ liệu thời gian thực Firebase để đồng bộ trạng thái. Mục tiêu chính là tạo ra một giải pháp an toàn, tiện lợi, cho phép người dùng mở cửa bằng thẻ RFID hoặc từ xa qua điện thoại thông minh.

1.1. Mục tiêu và phạm vi nghiên cứu

Mục tiêu của đồ án là thiết kế và thi công một mô hình khóa cửa thông minh hoàn chỉnh. Phạm vi bao gồm việc nghiên cứu các linh kiện điện tử, thiết kế mạch in PCB, lập trình vi điều khiển và phát triển ứng dụng di động. Hệ thống phải đảm bảo tính ổn định, bảo mật cơ bản và khả năng mở rộng. Giới hạn của dự án là tập trung vào mô hình thí nghiệm, chưa triển khai thực tế trên quy mô lớn. Nghiên cứu cũng bao gồm việc tìm hiểu các chuẩn giao tiếp UART và SPI để đảm bảo sự tương thích giữa các module.

1.2. Giới thiệu các thành phần công nghệ chính

Hệ thống sử dụng Arduino Uno R3 làm trung tâm xử lý, điều khiển động cơ Servo để đóng/mở khóa. Module ESP8266 NodeMCU đóng vai trò kết nối Wi-Fi, giao tiếp với Firebase. RFID RC522 đảm nhận việc đọc mã thẻ từ, trong khi cảm biến MC-38 giám sát trạng thái đóng/mở của cánh cửa. Phần mềm Android Studio được dùng để xây dựng giao diện người dùng, cho phép quản lý khóa từ xa. Firebase hoạt động như một cơ sở dữ liệu đám mây, lưu trữ và đồng bộ dữ liệu thời gian thực giữa ứng dụng và thiết bị phần cứng.

II. Phân tích vấn đề và thách thức kỹ thuật

Trong quá trình phát triển hệ thống khóa cửa thông minh, nhóm nghiên cứu đã đối mặt với nhiều thách thức kỹ thuật. Một vấn đề lớn là đảm bảo sự ổn định trong giao tiếp giữa Arduino và NodeMCU qua chuẩn UART. Nhiễu tín hiệu và độ trễ có thể ảnh hưởng đến khả năng phản hồi của hệ thống. Việc tích hợp module RFID RC522 cũng đòi hỏi hiểu biết sâu về chuẩn giao tiếp SPI để đọc thẻ chính xác. Hơn nữa, thiết kế mạch in PCB yêu cầu tính toán cẩn thận để tránh đoản mạch và đảm bảo độ tin cậy. Phần mềm cần xử lý đồng thời nhiều tác vụ: đọc cảm biến, điều khiển động cơ, và duy trì kết nối mạng. Bảo mật dữ liệu trên Firebase cũng là một mối quan tâm cần được giải quyết triệt để.

2.1. Vấn đề về phần cứng và mạch điện

Thiết kế mạch in PCB là một thách thức lớn, đòi hỏi sự chính xác cao trong bố trí linh kiện và đường dẫn tín hiệu. Các module như RFID và NodeMCU có điện áp hoạt động khác nhau, cần có mạch điều chỉnh điện áp phù hợp. Động cơ Servo khi hoạt động có thể tạo ra dòng điện đột biến, gây ảnh hưởng đến vi điều khiển. Việc lựa chọn nguồn cấp điện ổn định cũng rất quan trọng để tránh hỏng hóc. Nhóm đã phải tiến hành nhiều lần thử nghiệm và sửa đổi thiết kế để đạt được sự ổn định tối ưu cho mô hình.

2.2. Thách thức trong lập trình và tích hợp hệ thống

Lập trình cho hệ thống đòi hỏi sự kết hợp giữa nhiều ngôn ngữ và môi trường. Code Arduino được viết bằng C/C++, trong khi ứng dụng Android sử dụng Java. Việc đồng bộ trạng thái khóa thời gian thực với Firebase yêu cầu xử lý bất đồng bộ phức tạp. Lập trình viên phải quản lý nhiều ngắt (interrupt) từ cảm biến cửa và module RFID mà không gây xung đột. Độ trễ mạng có thể ảnh hưởng đến trải nghiệm người dùng khi mở cửa từ xa. Giải pháp bao gồm việc tối ưu hóa mã nguồn và sử dụng các hàm callback để xử lý sự kiện hiệu quả.

III. Giải pháp và phương pháp triển khai hệ thống

Để giải quyết các vấn đề đã phân tích, nhóm đã áp dụng một phương pháp triển khai có hệ thống. Về phần cứng, thiết kế mạch được tối ưu hóa bằng phần mềm Altium Designer, với các lớp đồng tản nhiệt và đường tín hiệu ngắn. Chương trình Arduino được xây dựng theo mô hình trạng thái (state machine) để quản lý các tác vụ một cách rõ ràng. Giao tiếp giữa Arduino và NodeMCU được thực hiện qua giao thức UART với tốc độ baud phù hợp, có kiểm tra lỗi. Ứng dụng Android sử dụng Firebase Realtime Database để lắng nghe và cập nhật trạng thái khóa ngay lập tức. Phương pháp kiểm thử được tiến hành từng mô-đun trước khi tích hợp toàn bộ, đảm bảo mỗi phần hoạt động đúng chức năng trước khi ghép nối.

3.1. Thiết kế phần cứng và mạch in

Phần cứng được thiết kế với nguyên tắc modularity, dễ bảo trì và nâng cấp. Arduino Uno R3 đóng vai trò trung gian, điều khiển động cơ Servo và giao tiếp với RFID RC522 qua bus SPI. NodeMCU được kết nối với Arduino qua cổng UART, chỉ chịu trách nhiệm truyền dữ liệu lên đám mây. Mạch in PCB được vẽ với các đường dẫn rộng, giảm thiểu nhiễu và có các lỗ bắt vít chắc chắn. Cảm biến MC-38 được lắp ở vị trí chiến lược trên cánh cửa để phát hiện chính xác trạng thái đóng/mở. Nguồn điện được cấp từ adapter 12V, được điều chỉnh xuống 5V và 3.3V cho các module tương ứng.

3.2. Phát triển phần mềm và ứng dụng di động

Phần mềm Arduino được lập trình để đọc thẻ RFID, so sánh với danh sách được lưu trong EEPROM, và điều khiển Servo. Chương trình cũng giám sát cảm biến MC-38 để tự động khóa lại khi cửa đã khép. Code trên NodeMCU xử lý kết nối Wi-Fi và giao thức HTTP để gửi/nhận dữ liệu từ Firebase. Ứng dụng Android được xây dựng với giao diện đơn giản, hiển thị trạng thái khóa và cửa real-time. Người dùng có thể nhấn nút để mở khóa từ xa. Firebase Rules được cấu hình để bảo vệ dữ liệu, chỉ cho phép truy cập từ các thiết bị đã xác thực.

IV. Kết luận và ứng dụng thực tiễn của đồ án

Đồ án hệ thống khóa cửa thông minh đã hoàn thành các mục tiêu đề ra, tạo ra một mô hình hoạt động ổn định và đáng tin cậy. Hệ thống chứng minh được tính khả thi của việc kết hợp công nghệ IoT với các linh kiện điện tử phổ thông để giải quyết vấn đề thực tiễn. Kết quả cho thấy thời gian mở cửa được rút ngắn đáng kể, nguy cơ thất lạc chìa khóa được loại bỏ. Dự án không chỉ mang lại kiến thức kỹ thuật quý báu cho sinh viên mà còn có tiềm năng ứng dụng rộng rãi. Hệ thống có thể được phát triển thêm nhiều tính năng như nhận diện khuôn mặt, tích hợp chuông hình, hoặc quản lý nhiều người dùng với phân quyền khác nhau.

4.1. Kết quả đạt được và bài học kinh nghiệm

Mô hình đã hoạt động đúng các chức năng: mở khóa bằng thẻ RFID, mở khóa từ xa qua ứng dụng, và tự động khóa khi cửa khép. Tốc độ phản hồi của ứng dụng so với thiết bị phần cứng gần như thời gian thực. Nhóm đã tích lũy được kinh nghiệm quý giá trong việc thiết kế mạch in, lập trình vi điều khiển, và phát triển ứng dụng di động. Các bài học về quản lý dự án, làm việc nhóm, và khắc phục sự cố cũng rất hữu ích. Hệ thống đã được trình bày và bảo vệ thành công trước hội đồng đánh giá của trường.

4.2. Hướng phát triển và ứng dụng trong tương lai

Hệ thống có tiềm năng lớn để thương mại hóa sau khi được cải tiến thêm về bảo mật và độ bền. Hướng phát triển bao gồm tích hợp công nghệ sinh trắc học như vân tay hoặc nhận diện khuôn mặt. Có thể phát triển phiên bản quản lý nhiều khóa cửa trong một tòa nhà thông qua giao diện web tập trung. Ứng dụng có thể mở rộng cho thuê nhà trọ, homestay, cho phép chủ nhà cấp quyền truy cập tạm thời cho khách. Việc áp dụng các giao thức bảo mật mạnh hơn như SSL/TLS sẽ nâng cao tính an toàn cho sản phẩm.

29/05/2026

Trích đoạn nội dung tài liệu

Chương 1. Tổng quan đề tài: Trình bày tổng quan tình hình nghiên cứu, mục tiêu nghiên cứu và phạm vi nghiên cứu của đề tài. Cơ sở thiết kế: Ở chương này nhóm trình bày cơ sở lý thuyết về các vấn đề liên quan của hệ thống. Giới thiệu các thiết bị phần cứng và giao thức truyền thông giữa các thiết bị trong hệ thống.

Tính toán và thiết kế: Chương này sẽ thiết kế sơ đồ khối của hệ thống. Từ đó lựa chọn linh kiện thích hợp để xây dựng sơ đồ nguyên lý của toàn hệ thống. Thi công hệ thống: Trình bày thiết kế phần cứng, đưa ra lưu đồ giải thuật cho phần mềm. Thiết kế giao diện trên điện thoại, quá trình điều khiển, giám sát và hoạt động của hệ thống.

Kết quả và nhận xét: Những kết quả đạt được sau thời gian thực hiện, kết quả thực nghiệm, từ đó đưa ra đánh giá nhận xét. Kết luận và hướng phát triển: Tóm tắt nội dung đề tài và kết luận những việc đã làm được, hạn chế. Từ đó rút ra những nhận xét về khả năng ứng dụng thực tế và hướng phát triển của đề tài. Đặt nền móng cho những đề tài nghiên cứu sau được hoàn thiện và tiến bộ hơn về mặt kết quả thực nghiệm.

Giới thiệu về Arduino Uno R3 Arduino là một board mạch vi xử lý, nhằm xây dựng các ứng dụng tương tác với nhau hoặc với môi trường được thuận lợi hơn. Phần cứng bao gồm một board mạch nguồn mở được thiết kế trên nền tảng vi xử lý AVR Atmel 8bit, hoặc ARM Atmel 32-bit. Những Model hiện tại được trang bị gồm 1 cổng giao tiếp USB, 6 chân đầu vào analog, 14 chân I/O kỹ thuật số tương thích với nhiều board mở rộng khác nhau. Được giới thiệu vào năm 2005, Những nhà thiết kế của Arduino cố gắng mang đến một phương thức dễ dàng, không tốn kém cho những người yêu thích, sinh viên và giới chuyên nghiệp để tạo ra những thiết bị có khả năng tương tác với môi trường thông qua các cảm biến và các cơ cấu chấp hành.

Những ví dụ phổ biến cho những người yêu thích mới bắt đầu bao gồm các robot đơn giản, điều khiển nhiệt độ và phát hiện chuyển động.1 Arduino UNO R3 4 Hình 2.2 Sơ đồ chân Arduino UNO R3 Bảng 2.1 Các thông số của Arduino UNO R3 Vi điều khiển Atmega328 họ 8 bit Điện áp hoạt động 5V DC (chỉ được cấp qua USB) Tần số hoạt động 16 MHz Dòng tiêu thụ 30mA Điện áp vào khuyên dùng 7-12V DC Điện áp vào giới hạn 6-20V DC Số chân Digital I/O 14 (6 chân PWM) Số chân Analog 6 (độ phân giải 10bit) Dòng tối đa trên mỗi chân I/O 30mA Dòng ra tối đa (5V) 500mA Dòng ra tối đa (3.3V) 50mA Bộ nhớ Flash 32KB(Atmega328) SRAM 2KB(Atmega328) EEPROM 1KB(Atmega328) 5 Các chân năng lượng: GND (Ground): cực âm của nguồn điện cấp cho Arduino UNO. 5V: cấp điện áp 5V đầu ra. Dòng tối đa cho phép ở chân này là 500mA. Dòng tối đa cho phép ở chân này là 50mA.

Vin (Voltage Input): để cấp nguồn ngoài cho Arduino UNO. 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, luôn là 5V. Mặc dù vậy , không được lấy nguồn 5V 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Ω.

Bộ nhớ của Arduino UNO R3: Sử dụng vi điều khiển Atmega328. 32KB bộ nhớ Flash: những đoạn lệnh bạn lập trình sẽ được lưu trữ trong bộ nhớ Flash của vi điều khiển. Sẽ có khoảng vài KB trong số này sẽ được dùng cho bootloader nhưng thường thì ít khi nào phải sử dụng quá 20kb bộ nhớ này. 2KB cho SRAM (Static Random Access Memory): giá trị các biến khai báo khi lập trình sẽ lưu ở đây.

Khai báo càng nhiều biến thì càng cần nhiều bộ nhớ RAM. Chú ý: khi mất điện, dữ liệu trên SRAM sẽ bị mất. 6 1KB cho EEPROM (Electrically Erasable Programmable Read Only Memory): tương tự như một chiếc ổ cứng mini – nơi có thể đọc và ghi dữ liệu vào đây mà không phải lo bị mất khi mất điện giống như dữ liệu trên SRAM. Các cổng vào/ra: Arduino UNO có 14 chân digital dùng để đọc hoặc xuất tín hiệu.

Một số chân digital có các chức năng đặc biệt như sau: 2 chân Serial: 0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và nhận (receive – RX) dữ liệu TTL Serial. Arduino Uno có thể giao tiếp với thiết bị khác thông qua 2 chân này. Kết nối bluetooth thường thấy nói nôm na chính là kết nối Serial không dây. Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK).

Ngoài các chức năng thông thường, 4 chân này còn dùng để truyền phát dữ liệu bằng giao thức SPI với các thiết bị khác. Led 13: trên Arduino UNO có 1 đèn led màu cam (kí hiệu chữ L). Khi bấm nút Reset, sẽ thấy đèn này nhấp nháy để báo hiệu. Nó được nối với chân số 13.

Khi chân này được người dùng sử dụng, led sẽ sáng. Nói một cách đơn giản, có thể điều chỉnh được điện áp ra ở chân này từ mức 0V đến 5V. Giới thiệu về ESP8266 NodeMCU ESP8266 7 ESP8266 là dòng chip tích hợp Wifi 2.4Ghz có thể lập trình được, rẻ tiền được sản xuất bởi một công ty bán dẫn Trung Quốc: Espressif Systems. Được phát hành đầu tiên vào tháng 8 năm 2014, đóng gói đưa ra thị trường dạng Module ESP-01.

Có khả năng kết nối Internet qua mạng Wifi một cách nhanh chóng và sử dụng rất ít linh kiện đi kèm. Với giá cả có thể nói là rất rẻ so với tính năng và khả năng ESP8266 có thể làm được. ESP8266 có một cộng đồng các nhà phát triển trên thế giới rất lớn, cung cấp nhiều Module lập trình mã mở giúp nhiều người có thể tiếp cận và xây dựng ứng dụng rất nhanh. Hiện nay tất cả các dòng chip ESP8266 trên thị trường đều mang nhãn ESP8266EX, là phiên bản nâng cấp của ESP8266, đã có hơn 14 phiên bản ESP ra đời, trong đó phổ biến nhất là ESP-12.3 ESP8266 Module ESP8266 NodeMCU Module ESP-12 kết hợp với firmware ESP8266 trên Arduino và thiết kế phần cứng giao tiếp tiêu chuẩn đã tạo nên NodeMCU, loại Kit phát triển ESP8266 phổ biến nhất trong thời điểm hiện tại.

Với cách sử dụng, kết nối 8 dễ dàng, có thể lập trình, nạp chương trình trực tiếp trên phần mềm Arduino, đồng thời tương tích với các bộ thư viện Arduino sẵn có.4 Module ESP8266 NodeMCU Sơ bộ về Module ESP8266 NodeMCU: - Khả năng hoạt động như một Module Wifi: Có thể quét và kết nối với một mạng Wifi bất kì (Wifi client) để thực hiện tác vụ như lưu trữ, truy cập dữ liệu từ server. Tạo điểm truy cập Wifi (Wifi Access Point) cho phép các thiết bị khác kết nối,giao tiếp và điều khiển. Một server để xử lý dữ liệu từ các thiết bị sử dụng internet. - Nguồn vào và nguồn ra: ESP8266 NodeMCU nhận nguồn từ cổng micro USB tích hợp sẵn trên mạch, giúp việc nạp code trở nên dễ dàng hơn.

Bên cạnh đó, việc cấp nguồn cho module cũng linh động hơn vì bạn có thể sử dụng sạc dự phòng thay cho nguồn từ USB trên máy tính (nguồn cấp tối đa là 5V). ESP8266 NodeMCU có thể cung cấp nguồn cho tối đa 4 thiết bị: 3 nguồn ra 3.3V và một nguồn từ chân Vin (điện thế bằng 9 điện thế từ cổng micro USB). Khi sử dụng các chân cấp nguồn này, hãy luôn kiểm tra để chắc chắn không cắm nhầm chân dương (trên mạch in là 3v3 và Vin) và chân âm (GND). Tuy nhiên, 3 chân 3.3V đều được bảo vệ, khi cắm ngược cực, module sẽ chỉ nóng lên và dừng hoạt động.

Chân Vin thì không được bảo vệ, nếu cắm ngược cực sẽ gay hư hỏng hoặc cháy Module. - Truyền và nhận tín hiệu: ESP8266 NodeMCU có tổng cộng 13 chân GPIO (General-purpose input/output): chân có thể truyền/nhận tín hiệu (trên mạch in từ D0 đến D8 và RX, TX, SD2, SD3). Module chỉ có thể kết nối với tới nguồn tối đa 5V qua cổng Micro USB. Các chân I/O chỉ có thể giao tiếp với các linh kiện qua điện thế tối đa 3.5 Sơ đồ chân của Module Thông số kỹ thuật: 10 IC chính: ESP8266 Wifi SoC.

Phiên bản firmware: NodeMCU Lua. Chip nạp và giao tiếp UART: CP2102. GPIO tương thích hoàn toàn với firmware Node MCU. Cấp nguồn: 5VDC MicroUSB hoặc Vin.

GPIO giao tiếp mức 3. Tích hợp Led báo trạng thái, nút Reset, Flash. Tương thích hoàn toàn với trình biên dịch Arduino. Kích thước: 25 x 50 mm.

Giới thiệu về RFID RC522 Module RFID RC522 sử dụng IC MFRC522 của Philips dùng để đọc và ghi dữ liệu cho thẻ NFC tần số 13.56MHz, với mức giá rẻ thiết kế nhỏ gọn, module này là sự lựa chọn hàng đầu cho các ứng dụng về ghi đọc thẻ RFID.6 Module RFID RC522 Đặc điểm kỹ thuật: Nguồn: 3.3VDC Dòng điện hoạt động: từ 13 đến 26m Dòng ở chế độ chờ (Stand by): từ 10 đến 13mA Dòng ở chế độ nghỉ (Sleep Mode): nhỏ hơn 80µA Dòng tải tối đa: 30mA Tần số sóng mang: 13.56MHz Khoảng cách đọc tối ưu: từ 0 đến 60mm Giao tiếp: SPI Tốc độ truyền dữ liệu: tối đa 10mbps Nhiệt độ hoạt động: -20 đến 80 °C Độ ẩm hoạt động: từ 5 đến 95% 12 Các loại thẻ RFID hỗ trợ: mifare1 S50, mifare1 S70, mifare UltraLight, mifare Pro, mifare Desfire Kích thước: 40mm × 60mm Nguyên lý hoạt động cơ bản của hệ thống RFID: Thiết bị Reader phát ra sóng điện từ ở một tần số nhất định, khi thiết bị Tag trong vùng hoạt động sẽ cảm nhận được sóng điện từ này và thu nhận năng lượng từ đó phát lại cho thiết bị Reader biết ID (mã số) của mình. Từ đó thiết bị RFID reader nhận biết được tag nào đang trong vùng hoạt động. Thẻ RFID là thiết bị có thể lưu trữ và truyền dữ liệu về bộ đọc bằng sóng vô tuyến. Trong đó các thẻ thường lưu trữ thông tin về các sản phẩm nào đó hoặc các ID (mã nhận diện.

Thẻ RFID gồm chip bán dẫn nhỏ (bộ nhớ của chip có thể chứa từ 96 đến 512 bit dữ liệu, nhiều gấp 64 lần so với mã vạch) và anten được thu nhỏ trong một số hình thức đóng gói. Vài thẻ RFID giống như những nhãn giấy và được ứng dụng để bỏ vào hộp và đóng gói. Một số khác được sản xuất thành các miếng da bao cổ tay. Mỗi thẻ được lập trình với một nhận dạng duy nhất cho phép theo dõi không dây đối tượng hoặc con người đang gắn thẻ đó.

Giới thiệu về động cơ Servo Servo là một dạng động cơ điện đặc biệt.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ