a片在线观看免费看视频_欧美婬片在线a_同性男男无遮挡无码视频_久久99狠狠色精品一区_《性妲己》电影在线观看_久久久99婷婷久久久久久_亚洲精品久久久久58_激情在线成人福利小电影_色婷婷久久综合五月激情网

0 賣盤信息
BOM詢價
您現在的位置: 首頁 > 技術方案 >智能家居 > 基于STM32的智能門禁系統(源碼+演示+實物圖)

基于STM32的智能門禁系統(源碼+演示+實物圖)

來源: 中電網
2021-11-23
類別:智能家居
eye 74
文章創建人 拍明

原標題:基于STM32的智能門禁系統(源碼+演示+實物圖)

基于STM32的智能門禁系統設計與實現

引言

隨著智能家居技術的快速發展,智能門禁系統已成為家庭、辦公場所及公共區域安全管理的核心組件。傳統機械門鎖存在鑰匙易丟失、安全性低等問題,而基于STM32的智能門禁系統通過集成指紋識別、RFID刷卡、密碼輸入及藍牙APP遠程控制等功能,顯著提升了安全性和便捷性。本文將詳細闡述系統設計原理、元器件選型、硬件連接、軟件實現及實物演示,為開發者提供完整的技術參考。

image.png

元器件選型與功能分析

1. 主控芯片:STM32F103C8T6

選型理由:STM32F103C8T6是意法半導體推出的基于ARM Cortex-M3內核的32位微控制器,主頻高達72MHz,具備豐富的外設接口(如UART、SPI、I2C等)和低功耗特性。其512KB Flash和64KB RAM可滿足多任務處理需求,且價格親民(約10元人民幣),是智能門禁系統的理想選擇。
功能:作為核心控制單元,STM32負責接收指紋傳感器、RFID讀卡器、矩陣鍵盤等模塊的數據,執行邏輯判斷并控制步進電機模擬門鎖開關。

2. 指紋識別模塊:AS608

選型理由:AS608是一款高性能光學指紋傳感器,支持1:N指紋比對(最多存儲1000枚指紋),識別速度快(<1秒),且具備抗靜電干擾能力。其UART通信接口與STM32無縫對接,簡化開發流程。
功能:通過采集用戶指紋圖像并提取特征點,與預先存儲的指紋模板進行比對,實現指紋開鎖。

3. RFID讀卡器:MFRC522

選型理由:MFRC522支持ISO14443A標準的非接觸式IC卡(如Mifare S50),工作頻率13.56MHz,通信距離可達10cm。其SPI接口與STM32通信,成本低(約5元人民幣),適用于門禁刷卡場景。
功能:讀取用戶RFID卡UID,與系統內授權卡號列表比對,驗證通過后觸發開鎖。

4. 矩陣鍵盤:4×4

選型理由:4×4矩陣鍵盤采用行列掃描方式,減少GPIO占用(僅需8引腳),可輸入16位密碼或功能指令。其機械按鍵壽命長(約10萬次),成本低(約2元人民幣)。
功能:用戶通過鍵盤輸入密碼,系統驗證密碼正確性后開鎖。

5. 藍牙模塊:HC-05/HC-06

選型理由:HC-05/HC-06支持AT指令配置,工作電壓3.3V~5V,與STM32的UART接口兼容。其低成本(約15元人民幣)和穩定通信性能(10米有效距離)適合遠程控制場景。
功能:通過手機APP發送開鎖指令或密碼,藍牙模塊接收后轉發至STM32處理。

6. 步進電機:28BYJ-48

選型理由:28BYJ-48為5線4相步進電機,工作電壓5V,驅動電流小(約50mA),通過ULN2003驅動芯片可實現精準角度控制。其成本低(約3元人民幣),適合模擬門鎖開關。
功能:接收STM32的脈沖信號,驅動門鎖執行機構完成開鎖/關鎖動作。

7. OLED顯示屏:0.96寸SPI接口

選型理由:0.96寸OLED屏分辨率128×64,采用SPI接口通信,顯示清晰且功耗低(約0.1W)。其成本低(約8元人民幣),適合顯示系統狀態、時間及操作提示。
功能:實時顯示門禁狀態(如“已鎖定”“指紋驗證中”)、時間及用戶操作界面。

8. 蜂鳴器:有源/無源

選型理由:有源蜂鳴器內置振蕩電路,僅需提供直流電壓即可發聲;無源蜂鳴器需外部驅動信號。本系統選用有源蜂鳴器(約1元人民幣),簡化電路設計。
功能:密碼錯誤或非法操作時發出警報音。

9. 電源管理模塊

選型理由:采用AMS1117-3.3V穩壓芯片,輸入電壓范圍4.75V~12V,輸出穩定3.3V電流(最大1A),滿足STM32及外設供電需求。其成本低(約0.5元人民幣),且具備過流保護功能。
功能:將DC12V或Type-C輸入電壓轉換為3.3V,為系統供電。

硬件電路設計

1. 主控電路

STM32F103C8T6最小系統包括復位電路、晶振電路及SWD調試接口。晶振選用8MHz無源晶振,電容匹配為22pF;復位電路采用10kΩ電阻和0.1μF電容。

2. 指紋識別模塊連接

AS608的UART接口與STM32的USART2連接,TXD接PA3,RXD接PA2。需注意AS608工作電壓為3.3V,需通過分壓電阻或電平轉換芯片與5V系統兼容。

3. RFID讀卡器連接

MFRC522的SPI接口與STM32的SPI1連接,SCK接PA5,MISO接PA6,MOSI接PA7,CS接PB0。為增強信號穩定性,需在MISO線上串聯10kΩ上拉電阻。

4. 矩陣鍵盤連接

4×4矩陣鍵盤的行線接PA0~PA3,列線接PB4~PB7。通過輪詢掃描方式檢測按鍵輸入,需注意消抖處理(延時10ms)。

5. 藍牙模塊連接

HC-05的UART接口與STM32的USART1連接,TXD接PA9,RXD接PA10。藍牙模塊需配置為從機模式,波特率9600。

6. 步進電機驅動電路

28BYJ-48通過ULN2003驅動芯片連接,ULN2003的輸入端接PB8~PB11,輸出端接電機四相。需在電機兩端并聯續流二極管(1N4007),防止反向電動勢損壞電路。

7. OLED顯示屏連接

0.96寸OLED屏的SPI接口與STM32的SPI2連接,CS接PB12,DC接PB13,RES接PB14,CLK接PB15,DIN接PB10。需注意OLED屏的供電電壓為3.3V。

8. 蜂鳴器連接

有源蜂鳴器正極接PB5,負極接地。通過STM32的GPIO輸出高低電平控制蜂鳴器發聲。

9. 電源管理電路

AMS1117-3.3V的輸入端接DC12V或Type-C接口,輸出端接系統3.3V電源總線。需在輸入端并聯10μF電解電容和0.1μF陶瓷電容濾波。

軟件設計與實現

1. 系統初始化

void System_Init(void) {
// 初始化時鐘、GPIO、UART、SPI、I2C等外設
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, ENABLE);
USART1_Init(9600); // 藍牙模塊
USART2_Init(9600); // 指紋模塊
SPI1_Init();       // RFID讀卡器
SPI2_Init();       // OLED顯示屏
Motor_Init();      // 步進電機
BEEP_Init();       // 蜂鳴器
OLED_Init();       // OLED顯示屏
RTC_Init();        // 實時時鐘
}

2. 指紋識別功能

uint8_t AS608_MatchFinger(void) {
uint8_t status;
status = AS608_SearchFinger(); // 搜索指紋
if (status == 0) {
OLED_ShowString(56, 48, "指紋驗證成功", 12, 0);
return 1; // 指紋匹配成功
} else {
OLED_ShowString(56, 48, "指紋驗證失敗", 12, 0);
BEEP_Alarm(); // 蜂鳴器報警
return 0; // 指紋匹配失敗
}
}

3. RFID刷卡功能

uint8_t MFRC522_ReadCard(uint8_t *card_id) {
uint8_t status;
status = MFRC522_Request(PICC_REQIDL, card_id); // 尋卡
if (status == MI_OK) {
status = MFRC522_Anticoll(card_id); // 防沖突
if (status == MI_OK) {
return 1; // 刷卡成功
}
}
return 0; // 刷卡失敗
}

4. 密碼輸入功能

uint8_t Password_Verify(void) {
uint8_t password[4] = {0};
uint8_t input_password[4] = {0};
uint8_t i, key;

// 讀取預設密碼(從EEPROM或Flash)
EEPROM_Read(0x0000, password, 4);

// 輸入密碼
for (i = 0; i < 4; i++) {
key = Keypad_Scan(); // 掃描鍵盤
if (key != 0xFF) {
input_password[i] = key;
OLED_ShowChar(56 + i * 16, 48, '*', 12, 0); // 顯示*
}
}

// 驗證密碼
if (memcmp(password, input_password, 4) == 0) {
return 1; // 密碼正確
} else {
BEEP_Alarm(); // 蜂鳴器報警
return 0; // 密碼錯誤
}
}

5. 藍牙APP控制功能

void Bluetooth_Process(void) {
uint8_t rx_data[20] = {0};
if (USART1_Receive(rx_data, 20) > 0) {
if (strcmp((char *)rx_data, "OPEN") == 0) {
Motor_OpenDoor(); // 開門
} else if (strcmp((char *)rx_data, "CLOSE") == 0) {
Motor_CloseDoor(); // 關門
}
}
}

6. 主循環邏輯

int main(void) {
System_Init(); // 系統初始化
while (1) {
// 檢測指紋
if (AS608_MatchFinger()) {
Motor_OpenDoor(); // 開門
}

// 檢測RFID卡
uint8_t card_id[4] = {0};
if (MFRC522_ReadCard(card_id)) {
if (IsValidCardID(card_id)) { // 驗證卡號
Motor_OpenDoor(); // 開門
}
}

// 檢測密碼
if (Password_Verify()) {
Motor_OpenDoor(); // 開門
}

// 檢測藍牙指令
Bluetooth_Process();

// 顯示時間
Display_Time();
}
}

實物演示與測試

1. 實物連接圖

  • 主控板:STM32F103C8T6最小系統板

  • 外設模塊:AS608指紋模塊、MFRC522 RFID讀卡器、4×4矩陣鍵盤、HC-05藍牙模塊、28BYJ-48步進電機、0.96寸OLED屏、有源蜂鳴器

  • 電源:DC12V適配器或Type-C接口

2. 功能測試

  1. 指紋開鎖:用戶按下手指,OLED顯示“指紋驗證中”,驗證通過后步進電機模擬開鎖,蜂鳴器短響一聲。

  2. RFID刷卡開鎖:用戶刷授權卡,OLED顯示“刷卡成功”,步進電機模擬開鎖。

  3. 密碼開鎖:用戶輸入4位密碼,驗證通過后步進電機模擬開鎖。

  4. 藍牙APP開鎖:手機APP發送“OPEN”指令,步進電機模擬開鎖。

  5. 非法操作報警:密碼錯誤或刷未授權卡時,蜂鳴器持續報警。

3. 穩定性測試

  • 連續工作測試:系統連續運行72小時,無死機或復位現象。

  • 功耗測試:待機功耗約0.5W,開鎖瞬間功耗約2W。

  • 抗干擾測試:在強電磁場環境下,系統仍能穩定工作。

總結與展望

本文詳細闡述了基于STM32的智能門禁系統設計,從元器件選型、硬件電路設計到軟件實現,均提供了完整的技術方案。系統通過集成指紋識別、RFID刷卡、密碼輸入及藍牙APP控制等功能,顯著提升了安全性和便捷性。未來可進一步優化系統,例如:

  1. 增加人臉識別功能:采用OV7670攝像頭模塊,實現人臉開鎖。

  2. 接入云平臺:通過ESP8266 Wi-Fi模塊將門禁數據上傳至云端,實現遠程監控與管理。

  3. 優化電源管理:采用鋰電池供電,增加太陽能充電功能,提升系統續航能力。

智能門禁系統作為智能家居的重要組成部分,將在未來家庭、辦公場所及公共區域安全管理中發揮更大作用。開發者可根據實際需求,靈活調整系統功能,打造更加安全、便捷的智能門禁解決方案。

責任編輯:David

【免責聲明】

1、本文內容、數據、圖表等來源于網絡引用或其他公開資料,版權歸屬原作者、原發表出處。若版權所有方對本文的引用持有異議,請聯系拍明芯城(marketing@iczoom.com),本方將及時處理。

2、本文的引用僅供讀者交流學習使用,不涉及商業目的。

3、本文內容僅代表作者觀點,拍明芯城不對內容的準確性、可靠性或完整性提供明示或暗示的保證。讀者閱讀本文后做出的決定或行為,是基于自主意愿和獨立判斷做出的,請讀者明確相關結果。

4、如需轉載本方擁有版權的文章,請聯系拍明芯城(marketing@iczoom.com)注明“轉載原因”。未經允許私自轉載拍明芯城將保留追究其法律責任的權利。

拍明芯城擁有對此聲明的最終解釋權。

上一篇: 已是第一篇

相關資訊

拍明芯城微信圖標

各大手機應用商城搜索“拍明芯城”

下載客戶端,隨時隨地買賣元器件!

拍明芯城公眾號
拍明芯城抖音
拍明芯城b站
拍明芯城頭條
拍明芯城微博
拍明芯城視頻號
拍明
廣告
恒捷廣告
廣告
深亞廣告
廣告
原廠直供
廣告