Giới thiệu dự án

Sự bùng nổ của cuộc Cách mạng Công nghiệp 4.0 và xu hướng đô thị thông minh (Smart City) đã thúc đẩy mạnh mẽ quá trình chuyển đổi số trong các hệ thống an ninh gia đình và kiểm soát ra vào (Access Control System - ACS). Theo các báo cáo thống kê an ninh toàn cầu, hơn 65% các vụ xâm nhập trái phép vào nhà ở bắt nguồn từ việc phá khóa cơ truyền thống thông qua các thủ thuật cơ học như cạy chốt, bẻ khóa hoặc làm giả chìa. Trong khi đó, các dòng khóa điện tử cao cấp trên thị trường thương mại thường có giá thành dao động từ 3.000.000 VNĐ đến hơn 15.000.000 VNĐ, sử dụng hệ sinh thái đóng kín gây khó khăn cho việc tích hợp vào các hệ thống quản lý phòng ban, căn hộ cho thuê quy mô vừa và nhỏ.

Đề tài "Thiết Kế Mô Hình Khóa Thông Minh Sử Dụng STM32F103C8T6" được nhóm nghiên cứu thuộc Khoa Điện tử – Trường Đại học Công nghiệp Hà Nội thực hiện dưới sự hướng dẫn của thầy Nguyễn Văn Dũng nhằm giải quyết bài toán cân bằng giữa chi phí triển khai, độ an toàn bảo mật và khả năng mở rộng linh hoạt của hệ thống kiểm soát truy cập vật lý.

graph LR
    A[Người dùng] -->|Mã số PIN / Thẻ RFID| B[Khối Thu Thập Dữ Liệu]
    B -->|SPI / Quét Ma Trận| C[STM32F103C8T6 - ARM Cortex-M3]
    C -->|I2C| D[RTC DS3231]
    C -->|8-bit Parallel| E[LCD 16x2]
    C -->|GPIO Trigger| F[Còi Cảnh Báo Buzzer]
    C -->|Optocoupler / Transistor| G[Relay 12VDC - Khóa Chốt IDS-LY02]

Mục tiêu dự án

  1. Thiết kế phần cứng hoàn chỉnh: Xây dựng bo mạch in PCB 2 lớp tích hợp khối nguồn hạ áp kép ($12\text{V} \rightarrow 5\text{V} \rightarrow 3.3\text{V}$), khối điều khiển trung tâm STM32, khối đọc thẻ từ và khối công suất đóng cắt relay.
  2. Xây dựng hệ thống bảo mật đa lớp: Triển khai phương thức xác thực kép (2-Factor Authentication) thông qua công nghệ nhận dạng tần số vô tuyến RFID tần số $13.56\text{ MHz}$ và bàn phím ma trận Keypad $4\times 4$.
  3. Phát triển thuật toán xử lý nhúng an toàn: Tối ưu hóa firmware trên nền tảng ARM Cortex-M3 để xử lý ngắt, quét phím chống dội (debounce), xác thực chuỗi UID thẻ RFID, đồng thời quản lý thời gian thực với độ chính xác cao.
  4. Cơ chế cảnh báo xâm nhập chủ động: Kích hoạt cảnh báo quang báo - âm thanh (Buzzer $>80\text{ dB}$) và tự động khóa hệ thống tạm thời khi phát hiện hành vi dò mã quá 3 lần liên tiếp.

Giải pháp và Phạm vi

Hệ thống lựa chọn vi điều khiển 32-bit STM32F103C8T6 làm trung tâm điều phối, vượt trội hoàn toàn so với các dòng vi điều khiển 8-bit truyền thống (như ATmega328P hay PIC16F877A) về tốc độ xử lý ($72\text{ MHz}$), dung lượng bộ nhớ ($64\text{ KB}$ Flash, $20\text{ KB}$ SRAM), và tích hợp sẵn các ngoại vi giao tiếp phần cứng (Hardware SPI, I2C, USART, DMA). Đồ án tập trung nghiên cứu, chế tạo mô hình khóa chốt điện tử độc lập (standalone) cho cửa ra vào dân dụng và văn phòng, đảm bảo khả năng vận hành ổn định liên tục $24/7$.


Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Khảo sát các giải pháp kiểm soát ra vào trên thị trường hiện nay cho thấy sự phân hóa rõ rệt giữa khóa cơ khí và các hệ thống khóa điện tử thông minh:

Tiêu chí kỹ thuật / Vận hành Khóa cơ truyền thống Khóa thông minh thương mại (Hafele, Việt Tiệp) Mô hình khóa STM32F103C8T6 (Đồ án)
Phương thức mở khóa Chìa kim loại cơ học Vân tay, FaceID, App Wi-Fi/Zigbee, Thẻ từ Mã số Keypad $4\times 4$, Thẻ từ RFID RC522 ($13.56\text{ MHz}$)
Khả năng chống sao chép Rất thấp (dễ đúc lại chìa) Rất cao (Mã hóa đa tầng, chống nhìn trộm) Cao (Mã hóa UID, đổi mật khẩu trực tiếp)
Cảnh báo xâm nhập Không có Còi hú nội bộ, thông báo đẩy qua Cloud Còi Buzzer công suất $>80\text{ dB}$, khóa vô hiệu hóa
Thời gian phản hồi $3.0\text{s} - 5.0\text{s}$ (thao tác tay) $< 0.5\text{s}$ $< 0.1\text{s}$ ($100\text{ ms}$)
Chi phí chế tạo / BOM $50.000 - 200.000\text{ VNĐ}$ $3.500.000 - 12.000.000\text{ VNĐ}$ $400.000 - 600.000\text{ VNĐ}$
Khả năng tùy biến Không thể Rất thấp (hệ sinh thái đóng) Rất cao (mở rộng IoT, cảm biến sinh trắc học)

Yêu cầu hệ thống theo mô hình MoSCoW

  • Must Have (Bắt buộc): Xác thực thẻ từ RFID chuẩn Mifare qua SPI; Nhập mã số PIN qua Keypad $4\times 4$; Điều khiển relay kích hoạt khóa chốt điện từ Solenoid $12\text{VDC}$; Hiển thị trạng thái trực quan qua LCD 16x2; Cảnh báo còi khi nhập sai quá 3 lần.
  • Should Have (Nên có): Tích hợp IC thời gian thực DS3231 giao tiếp qua I2C để quản trị mốc thời gian; Tính năng đổi mật khẩu master và mật khẩu người dùng trực tiếp trên bo mạch.
  • Could Have (Có thể mở rộng): Quản lý bộ nhớ thẻ thông qua bộ nhớ EEPROM ngoài hoặc Flash memory nội bộ của STM32; Cơ chế cảnh báo sụt áp nguồn cấp.
  • Won't Have (Chưa thực hiện ở giai đoạn này): Nhận diện khuôn mặt 3D FaceID; Kết nối không dây tầm xa qua Wi-Fi/4G Cloud Server.
classDiagram
    class STM32F103C8T6 {
        +uint32_t SystemCoreClock = 72MHz
        +SPI_HandleTypeDef hspi1
        +I2C_HandleTypeDef hi2c1
        +void SystemClock_Config()
        +void Keypad_Scan()
        +void Lock_Trigger(uint8_t state)
        +void Security_Check()
    }
    class MFRC522 {
        +CS: PA4 (NSS)
        +SCK: PA5
        +MISO: PA6
        +MOSI: PA7
        +Read_Card_UID()
        +Auth_Key()
    }
    class DS3231 {
        +SCL: PB6 / I2C1
        +SDA: PB7 / I2C1
        +Get_RealTime()
        +Set_RealTime()
    }
    class LCD1602 {
        +RS: PB9, RW: PB8, E: PB7
        +Data_Bus: PB3-PB6 (4-bit/8-bit)
        +Print_String()
        +Clear_Screen()
    }
    class ActuatorRelay {
        +Pin: PA1
        +State: Open/Close
        +Drive_Solenoid_12V()
    }
    STM32F103C8T6 --> MFRC522 : Hardware SPI
    STM32F103C8T6 --> DS3231 : Hardware I2C
    STM32F103C8T6 --> LCD1602 : Parallel GPIO
    STM32F103C8T6 --> ActuatorRelay : GPIO Trigger

Thiết kế hệ thống và phần cứng

Kiến trúc phần cứng của hệ thống bao gồm 7 khối chức năng chính được phân bổ tối ưu trên sơ đồ nguyên lý và layout PCB thiết kế bằng phần mềm Altium Designer 21:

  1. Khối xử lý trung tâm (Core MCU): Vi điều khiển STM32F103C8T6 cấu hình xung nhịp ngoài thạch anh $8\text{ MHz}$, nhân xung PLL lên tần số tối đa $72\text{ MHz}$. Mạch nạp chuẩn SWD (Serial Wire Debug) 4 dây kết nối qua ST-Link V2.
  2. Khối chuyển đổi nguồn (Power Supply Unit):
    • Nguồn cấp chính: Adapter $12\text{VDC} - 2\text{A}$ cấp trực tiếp cho khóa chốt điện từ và cuộn hút Relay.
    • Mạch hạ áp nấc 1: IC ổn áp tuyến tính LM7805 chuyển đổi $12\text{VDC} \rightarrow 5\text{VDC}$ ($\pm 2%$, dòng tải tối đa $1.5\text{A}$) cấp nguồn cho màn hình LCD 16x2 và còi Buzzer.
    • Mạch hạ áp nấc 2: IC ổn áp sụt thấp (LDO) LM1117-3.3 chuyển đổi $5\text{VDC} \rightarrow 3.3\text{VDC}$ ($1\text{A}$) cung cấp điện áp chuẩn cho vi điều khiển STM32, module RFID RC522 và RTC DS3231.
  3. Khối đọc thẻ từ (RFID MFRC522): Hoạt động ở tần số vô tuyến $13.56\text{ MHz}$, chuẩn giao tiếp SPI tốc độ cao với các chân cấu hình: NSS (PA4), SCK (PA5), MISO (PA6), MOSI (PA7). Khoảng cách đọc thẻ đạt từ $3\text{ cm}$ đến $5\text{ cm}$.
  4. Khối bàn phím nhập liệu (Keypad 4x4): Bàn phím ma trận 16 phím gồm 4 hàng (Row: PB12, PB13, PB14, PB15) và 4 cột (Col: PA8, PA9, PA10, PA11).
  5. Khối hiển thị (LCD 16x2): Tích hợp chip điều khiển chuẩn HD44780, hiển thị 2 dòng x 16 ký tự, kết nối vi điều khiển qua bus tín hiệu điều khiển (RS, RW, E) và bus dữ liệu chân PB3-PB9.
  6. Khối thời gian thực (RTC DS3231): Giao tiếp I2C chuẩn $400\text{ kHz}$, tích hợp thạch anh bù nhiệt độ (TCXO) đảm bảo độ sai lệch thời gian $< \pm 2\text{ ppm}$ (dưới 1 phút/năm), kèm nguồn pin nuôi dự phòng Lithium CR2032 ($3\text{V}$).
  7. Khối chấp hành (Relay & Khóa chốt IDS-LY02): Relay $12\text{VDC}$ đóng ngắt dòng điện cho khóa chốt điện từ Solenoid IDS-LY02 ($12\text{V}/2\text{A}$, công suất $9.6\text{W}$). Mạch có diode bảo vệ triệt tiêu dòng cảm ứng ngược (Flyback Diode) để chống sốc điện áp ngược làm treo vi điều khiển.

Implementation và kết quả

Quy trình phát triển firmware

Firmware của hệ thống được lập trình bằng ngôn ngữ C chuẩn trên môi trường tích hợp Keil uVision IDE, kết hợp thư viện phần cứng STM32Cube HAL sinh mã cấu hình từ STM32CubeMX. Hệ thống vận hành theo kiến trúc vòng lặp điều khiển chính (Super-Loop) kết hợp ngắt timer và ngắt ngoại vi.

#include "main.h"
#include "rc522.h"
#include "lcd1602.h"
#include "keypad.h"

#define MAX_FAILED_ATTEMPTS 3
#define LOCK_TIMEOUT_MS     5000

uint8_t card_uid[5];
uint8_t master_uid[5] = {0x1A, 0x8F, 0x3C, 0x90, 0x45};
char default_pass[7] = "123456";
char entered_pass[7];
uint8_t failed_counter = 0;

void System_Init(void) {
    HAL_Init();
    SystemClock_Config();
    MX_GPIO_Init();
    MX_SPI1_Init();
    MX_I2C1_Init();
    
    LCD_Init();
    MFRC522_Init();
    LCD_Print(0, 0, "SMART LOCK STM32");
    LCD_Print(1, 0, "READY TO SCAN...");
}

void Unlock_Door(void) {
    LCD_Clear();
    LCD_Print(0, 0, "ACCESS GRANTED!");
    HAL_GPIO_WritePin(RELAY_PORT, RELAY_PIN, GPIO_PIN_SET); // Kich Relay mo chot
    HAL_GPIO_WritePin(BUZZER_PORT, BUZZER_PIN, GPIO_PIN_SET);
    HAL_Delay(200);
    HAL_GPIO_WritePin(BUZZER_PORT, BUZZER_PIN, GPIO_PIN_RESET);
    
    HAL_Delay(LOCK_TIMEOUT_MS); // Giu trang thai mo trong 5s
    HAL_GPIO_WritePin(RELAY_PORT, RELAY_PIN, GPIO_PIN_RESET); // Khoa lai
    failed_counter = 0;
    LCD_Clear();
    LCD_Print(0, 0, "DOOR LOCKED");
}

void Security_Alarm(void) {
    LCD_Clear();
    LCD_Print(0, 0, "SYSTEM LOCKED!");
    LCD_Print(1, 0, "INTRUDER ALERT");
    for (int i = 0; i < 10; i++) {
        HAL_GPIO_TogglePin(BUZZER_PORT, BUZZER_PIN);
        HAL_Delay(300);
    }
    HAL_GPIO_WritePin(BUZZER_PORT, BUZZER_PIN, GPIO_PIN_RESET);
    HAL_Delay(10000); // Khoa he thong trong 10 giay truoc khi cho thu lai
    failed_counter = 0;
}

Giải thuật quét ma trận phím Keypad $4\times 4$

Thuật toán quét ma trận phím sử dụng phương pháp kích mức thấp tuần tự từng hàng (Row Scan) và đọc giá trị logic trên 4 chân cột (Column Sense với điện trở kéo lên nội - Internal Pull-up).

char Keypad_GetKey(void) {
    char key_map[4][4] = {
        {'1', '2', '3', 'A'},
        {'4', '5', '6', 'B'},
        {'7', '8', '9', 'C'},
        {'*', '0', '#', 'D'}
    };
    
    for (uint8_t row = 0; row < 4; row++) {
        // Set tat ca cac hang len muc HIGH
        HAL_GPIO_WritePin(ROW_PORT, ROW_ALL_PINS, GPIO_PIN_SET);
        // Keo 1 hang xuong muc LOW
        HAL_GPIO_WritePin(ROW_PORT, (ROW_0_PIN << row), GPIO_PIN_RESET);
        
        for (uint8_t col = 0; col < 4; col++) {
            if (HAL_GPIO_ReadPin(COL_PORT, (COL_0_PIN << col)) == GPIO_PIN_RESET) {
                HAL_Delay(20); // Debounce chong doi phim
                if (HAL_GPIO_ReadPin(COL_PORT, (COL_0_PIN << col)) == GPIO_PIN_RESET) {
                    while (HAL_GPIO_ReadPin(COL_PORT, (COL_0_PIN << col)) == GPIO_PIN_RESET); // Cho nha phim
                    return key_map[row][col];
                }
            }
        }
    }
    return '\0'; // Khong co phim nao duoc nhan
}
flowchart TD
    Start([Khởi động hệ thống]) --> Init[Khởi tạo Ngoại vi & Cấu hình Clock 72MHz]
    Init --> Idle[Màn hình hiển thị: Chờ quét thẻ hoặc nhập mã]
    
    Idle --> CheckRFID{Phát hiện thẻ RFID?}
    CheckRFID -- Có --> ReadUID[Đọc 5 bytes UID qua SPI]
    ReadUID --> ValidateUID{UID khớp CSDL?}
    
    CheckRFID -- Không --> CheckKey{Nhấn phím Keypad?}
    CheckKey -- Có --> ReadPIN[Nhập chuỗi mã số 6 ký tự]
    ReadPIN --> ValidatePIN{Mật khẩu chính xác?}
    CheckKey -- Không --> Idle
    
    ValidateUID -- Đúng --> Unlock[Kích Relay 12V mở chốt cửa - 5 giây]
    ValidatePIN -- Đúng --> Unlock
    Unlock --> ResetCounter[Reset biến đếm lỗi = 0] --> Idle
    
    ValidateUID -- Sai --> ErrorHandle[Tăng biến đếm lỗi: failed_counter++]
    ValidatePIN -- Sai --> ErrorHandle
    
    ErrorHandle --> CheckThreshold{failed_counter >= 3?}
    CheckThreshold -- Đúng --> TriggerAlarm[Bật còi Buzzer >80dB - Khóa nhập liệu 10s]
    CheckThreshold -- Không --> BeepWarn[Bíp cảnh báo - Yêu cầu thử lại]
    TriggerAlarm --> Idle
    BeepWarn --> Idle

Kiểm thử và đánh giá hiệu năng

Hệ thống được thử nghiệm thực tế với 200 lượt đóng/mở cửa trong các điều kiện làm việc khác nhau tại phòng thí nghiệm Khoa Điện tử.

Kịch bản kiểm thử Dữ liệu đầu vào Kết quả kỳ vọng Kết quả thực nghiệm Độ trễ phản hồi Trạng thái
Xác thực thẻ hợp lệ Thẻ Master Mifare 1K Relay mở chốt, LCD báo "Access Granted" Chốt từ rút về vị trí mở trong 5 giây $65\text{ ms}$ Đạt
Xác thực thẻ không hợp lệ Thẻ RFID UID lạ Báo lỗi, chốt giữ nguyên trạng thái khóa LCD báo "Wrong Card", còi bíp ngắn $72\text{ ms}$ Đạt
Nhập đúng mật mã PIN Chuỗi "123456" + # Chốt mở, LCD hiển thị xác nhận Relay kích mở tức thì $18\text{ ms}$ Đạt
Nhập sai mã 3 lần Nhập sai liên tiếp 3 mã số Khóa bàn phím, còi hú cảnh báo Buzzer phát chuỗi xung tần số $2300\text{ Hz}$ $12\text{ ms}$ Đạt
Mất nguồn điện chính Ngắt nguồn Adapter $12\text{V}$ RTC duy trì giờ nhờ pin CR2032 Đồng hồ thời gian thực giữ nguyên mốc giờ $0\text{ ms}$ Đạt
Độ ổn định đường nguồn Đo dao động $V_{out}$ tải đỉnh ($1.8\text{A}$) Điện áp $3.3\text{V}$ cho MCU không sụt quá 5% $V_{MCU}$ dao động $3.28\text{V} - 3.31\text{V}$ - Đạt

Đổi mới và đóng góp kỹ thuật

  1. Kiến trúc phần cứng tối ưu chi phí và chống nhiễu: Việc phân tách hai vùng công suất riêng biệt (vùng công suất cao $12\text{V}$ điều khiển Solenoid và vùng tín hiệu số $3.3\text{V}/5\text{V}$ điều khiển vi xử lý) trên mạch in PCB 2 lớp giúp giảm thiểu tối đa hiện tượng sụt áp nguồn và nhiễu điện từ (EMI) phát sinh do dòng đóng cắt cuộn cảm của relay.
  2. Khai thác tối đa sức mạnh dòng MCU 32-bit: So với các nghiên cứu tương tự sử dụng nền tảng 8-bit Arduino Uno, việc chuyển sang lõi ARM Cortex-M3 (STM32F103C8T6) mang lại tốc độ xử lý nhanh hơn 4.5 lần, giảm thiểu độ trễ giải mã SPI của module RFID xuống mức dưới $80\text{ ms}$, đồng thời mở rộng khả năng xử lý các thuật toán mã hóa dữ liệu trong tương lai.
  3. Thuật toán bảo mật thích ứng (Adaptive Security Logic): Hệ thống không chỉ dừng lại ở việc so khớp mật mã tĩnh mà còn tích hợp bộ đếm lỗi thời gian thực, chủ động cô lập bề mặt tấn công khi phát hiện dấu hiệu thử khóa cưỡng bức (brute-force attack).
  4. Hiệu suất năng lượng cao: Ở chế độ chờ (Idle state), toàn bộ hệ thống tiêu thụ dòng điện dưới $45\text{ mA}$, đảm bảo khả năng hoạt động liên tục, tiết kiệm năng lượng và phù hợp để đấu nối song song với bộ lưu điện mini (UPS $12\text{V}$).

Ứng dụng thực tế và triển khai

graph TD
    subgraph UseCases[Môi Trường Triển Khai Thực Tế]
        UC1[Căn hộ chung cư & Nhà ở thông minh]
        UC2[Phòng máy chủ / Phòng Lab bảo mật cao]
        UC3[Hệ thống phòng trọ cho thuê tự động]
    end
    
    subgraph SystemDeployment[Kiến Trúc Triển Khai]
        Supply[Nguồn Adapter 12V/2A + UPS Mini] --> PCB[Bo Mạch Điều Khiển Trung Tâm STM32]
        PCB --> Door[Cánh cửa kim loại / Gỗ công nghiệp]
        PCB --> Reader[Bảng phím ngoài & Đầu đọc RFID]
    end
    
    UseCases --> SystemDeployment

Kịch bản ứng dụng thực tế

  • Kiểm soát ra vào phòng máy chủ / Phòng thí nghiệm: Cấp quyền truy cập cho nhân viên bằng thẻ từ RFID định danh, chỉ những người có mã bảo mật riêng mới có thể mở cửa ngoài giờ làm việc.
  • Quản lý căn hộ cho thuê thông minh: Chủ nhà có thể dễ dàng thay đổi mật khẩu mở cửa sau mỗi chu kỳ thuê mà không cần phải thay ổ khóa cơ, giúp tiết kiệm chi phí vận hành và bảo dưỡng.

Dự toán chi phí chế tạo mô hình (BOM - Bill of Materials)

  • Vi điều khiển STM32F103C8T6 (Blue Pill / IC rời): $45.000\text{ VNĐ}$
  • Module RFID RC522 + Thẻ Mifare: $35.000\text{ VNĐ}$
  • Module RTC DS3231 + Pin CR2032: $30.000\text{ VNĐ}$
  • Màn hình LCD 16x2 + Bàn phím ma trận $4\times 4$: $55.000\text{ VNĐ}$
  • Khóa chốt điện từ IDS-LY02 $12\text{V}$: $95.000\text{ VNĐ}$
  • Relay $12\text{V}$, IC LM7805, LM1117, PCB & Linh kiện thụ động: $80.000\text{ VNĐ}$
  • Tổng chi phí phần cứng: $\approx 340.000\text{ VNĐ}$ (Rẻ hơn 90% so với khóa thương mại phân khúc entry-level).

Hạn chế và hướng phát triển

Hạn chế hiện tại

  • Giao tiếp tầm gần: Hệ thống hiện tại vận hành ở chế độ ngoại tuyến (Offline), chưa có giao diện giám sát trạng thái từ xa qua mạng Internet (Cloud/MQTT).
  • Bộ nhớ lưu trữ: Danh sách thẻ từ UID đang được cấu hình cố định trong mã nguồn hoặc bộ nhớ Flash hạn chế, chưa có cơ sở dữ liệu mở rộng cho hàng nghìn người dùng.
  • Nguồn cấp dự phòng: Chưa tích hợp mạch sạc và quản lý pin Lithium-ion $12\text{V}$ tự động khi mất điện lưới tòa nhà.

Hướng phát triển tiếp theo

  • Tích hợp module truyền thông không dây: Bổ sung vi điều khiển phụ ESP32 hoặc module Wi-Fi/BLE để đồng bộ nhật ký ra vào (Access Logs) lên máy chủ đám mây, gửi thông báo cảnh báo đột nhập trực tiếp về ứng dụng smartphone của người dùng qua Telegram Bot/Firebase.
  • Nâng cấp sinh trắc học: Mở rộng cổng kết nối UART để tích hợp thêm cảm biến nhận dạng vân tay quang học (như FPM10A hoặc AS608) nhằm hoàn thiện cơ chế xác thực 3 yếu tố (3FA).
  • Mã hóa dữ liệu cấp cao: Áp dụng thuật toán mã hóa tiêu chuẩn AES-128 cho dữ liệu thẻ từ Mifare Classic để ngăn chặn triệt để hành vi sao chép thẻ từ bằng các thiết bị Flipper Zero hoặc Proxmark3.

Đối tượng hưởng lợi

  • Sinh viên ngành Kỹ thuật Điện tử / Kỹ thuật Máy tính: Nguồn tài liệu tham khảo bài bản về quy trình thiết kế mạch vi điều khiển 32-bit ARM, phương pháp giao tiếp ngoại vi SPI/I2C và lập trình C nhúng trên Keil uVision.
  • Kỹ sư thiết kế IoT & Embedded: Tham khảo kiến trúc phân tầng nguồn ổn định, giải pháp chống nhiễu cuộn cảm cho các mạch điều khiển cơ cấu chấp hành công suất lớn.
  • Chủ đầu tư / Hộ gia đình: Giải pháp tiếp cận công nghệ nhà thông minh với mức chi phí đầu tư ban đầu cực thấp, độ bền cơ học cao và khả năng làm chủ hoàn toàn về công nghệ.

Câu hỏi thường gặp (FAQ)

1. Hệ thống xử lý thế nào khi xảy ra sự cố mất điện đột ngột?

Khi nguồn điện $12\text{V}$ bị ngắt, chốt điện từ IDS-LY02 (loại thường đóng - Fail Secure) sẽ giữ nguyên trạng thái khóa an toàn để bảo vệ tài sản. Trong khi đó, module RTC DS3231 tự động chuyển sang dùng pin nuôi Lithium CR2032 ($3\text{V}$) để duy trì thời gian thực liên tục mà không bị sai lệch giờ.

2. Có thể thêm hoặc xóa thẻ RFID trực tiếp mà không cần nạp lại code không?

Hoàn toàn có thể. Bằng cách thiết lập một chế độ "Master Mode" thông qua phím chức năng trên bàn phím Keypad $4\times 4$ và nhập mã Master PIN, người quản trị có thể quét thẻ mới để lưu trực tiếp mã UID vào bộ nhớ Flash/EEPROM nội của vi điều khiển STM32.

3. Tần số hoạt động của module RFID RC522 có bị ảnh hưởng bởi kim loại cửa không?

Module RC522 hoạt động ở tần số $13.56\text{ MHz}$. Nếu lắp đặt trực tiếp sát bề mặt cửa sắt hoặc nhôm dày, từ trường của anten có thể bị suy hao. Giải pháp là thiết kế vỏ ốp mặt ngoài bằng nhựa ABS cách điện hoặc đệm một lớp vật liệu hấp thụ sóng ferrite dày $1\text{ mm} - 2\text{ mm}$ giữa anten và khung cửa kim loại.

4. Tại sao đồ án chọn STM32F103C8T6 thay vì các dòng vi điều khiển 8-bit như ATmega328P?

STM32F103C8T6 sở hữu kiến trúc 32-bit ARM Cortex-M3 với xung nhịp $72\text{ MHz}$, bộ nhớ Flash $64\text{ KB}$, và hỗ trợ đầy đủ các ngoại vi phần cứng độc lập (Hardware SPI/I2C/UART/DMA) với mức giá thành tương đương hoặc rẻ hơn ATmega328P. Điều này đảm bảo hệ thống phản hồi tức thì mà không bị trễ thời gian thực.

5. Dòng tiêu thụ của khóa chốt Solenoid 12V có làm sụt nguồn gây reset STM32 không?

Không. Hệ thống đã được thiết kế khối nguồn cách ly qua 2 tầng ổn áp: tầng 1 cấp $12\text{V}$ riêng cho Solenoid thông qua tiếp điểm Relay, tầng 2 sử dụng IC LM7805 và LM1117-3.3 kèm hệ thống tụ lọc nguồn chất lượng cao ($1000\mu\text{F}$, $100\mu\text{F}$, $100\text{nF}$) cùng diode dập xung ngược 1N4007 trên cuộn hút, triệt tiêu hoàn toàn hiện tượng sụt áp hoặc xung nhọn làm treo vi điều khiển.


Kết luận

Đề tài "Thiết Kế Mô Hình Khóa Thông Minh Sử Dụng STM32F103C8T6" đã hoàn thành trọn vẹn các mục tiêu nghiên cứu và thiết kế đề ra. Dự án chứng minh tính khả thi cao trong việc ứng dụng dòng vi điều khiển ARM Cortex-M3 32-bit vào các bài toán an ninh dân dụng thực tế, tạo ra một sản phẩm khóa thông minh hoạt động bền bỉ, xác thực nhanh chóng với chi phí chế tạo cạnh tranh. Mô hình không chỉ mang giá trị học thuật sâu sắc đối với sinh viên ngành kỹ thuật điện tử nhúng mà còn mở ra tiềm năng thương mại hóa và ứng dụng rộng rãi trong các dự án Smart Home, tòa nhà văn phòng và khu lưu trú thông minh trong kỷ nguyên chuyển đổi số.