一、基本介紹

功能簡介:

1、通過掃碼槍進行掃描二維碼,當二維碼識別成功,10s內需觸發紅外避障管,並通過紅外測温模塊進行測温,如果温度正常,則自動開鎖,如果温度異常,則聲光報警3次,鎖不打開
2、通過RFID進行刷卡,當卡識別成功,10s內需觸發紅外避障管,並通過紅外測温模塊進行測温,如果温度正常,則自動開鎖,如果温度異常,則聲光報警3次,鎖不打開
3、通過指紋模塊,當指紋識別成功,10s內需觸發紅外避障管,並通過紅外測温模塊進行測温,如果温度正常,則自動開鎖,如果温度異常,則聲光報警3次,鎖不打開
4、通過內部RTC時鐘同步時間,從而獲取年月日時分秒星期
5、通過按鍵可以修正時間、設置温度上下限值、添加刪除二維碼、RFID卡、指紋
6、通過OLED顯示測量數據

二、32實物圖
單片機型號:STM32F103C8T6

板子為綠色PCB板,兩層板,厚度1.2,上下覆銅接地。元器件基本上為插針式,個別降壓芯片會使用貼片式。

供電接口:TYPE-C

智能門禁_#stm32

三、資料預覽

智能門禁_#嵌入式硬件_02

四、原理圖

智能門禁_#課程設計_03


軟件版本:AD2013

電路連線方式:網絡標號連線方式

注意:原理圖只是畫出了模塊的引腳圖,而並不是模塊的內部結構原理圖

五、PCB圖
由原理圖導出,封裝很大一部分都是作者自己繪製,不提供封裝庫,只提供連接好的源文件。中間有一個項目編號,隱藏在單片機底座下,插入單片機後不會看到。

兩層板,上下覆銅接地。

智能門禁_#單片機_04

六、系統框圖
本設計以STM32單片機為核心控制器,加上其他模塊一起組成此次設計的整個系統,其中包括控制部分、輸入部分和輸出部分。控制部分採用了STM32單片機控制器,其主要作用是獲取輸入部分的數據,經過內部處理,邏輯判斷,最終控制輸出部分。輸入由四部分組成,第一部分是非接觸温度檢測模塊,通過該模塊檢測指紋識別信息;第二部分是紅外避障模塊,通過該模塊對人體温度進行測量;第三部分是按鍵模塊,通過按鍵可以修正時間、設置温度上下限值、添加刪除二維碼、RFID卡、指紋;第四部分是供電模塊,通過該模塊可給整個系統進行供電。輸出由七部分組成,第一部分是OLED顯示模塊,通過該模塊可以顯示監測的數據以及設置的閾值;第二部分是RFID刷卡模塊,通過RFID進行刷卡,當卡識別成功,10s內需觸發紅外避障管,並通過紅外測温模塊進行測温,如果温度正常,則自動開鎖,如果温度異常,則聲光報警3次,鎖不打開;第三部分是掃碼槍模塊,通過掃碼槍進行掃描二維碼,當二維碼識別成功,10s內需觸發紅外避障管,並通過紅外測温模塊進行測温,如果温度正常,則自動開鎖,如果温度異常,則聲光報警3次,鎖不打開;第四部分是指紋模塊,通過指紋模塊,當指紋識別成功,10s內需觸發紅外避障管,並通過紅外測温模塊進行測温,如果温度正常,則自動開鎖,如果温度異常,則聲光報警3次,鎖不打開;第五部分是存儲模塊,通過存儲模塊對數據進行存儲;第六部分是繼電器模塊,通過繼電器控制系統對應的功能;第七部分是聲光報警模塊,當監測值不在設置的閾值內時進行聲光報警。具體系統框圖如圖3.1所示。

智能門禁_#智能家居_05


八、軟件設計流程

智能門禁_#單片機_06


九、部分程序展示

軟件版本:keil5邏輯程序和驅動程序分開,分佈於main.c和其他.c文件

/****

*******處理函數

*****/if(temp_value > temp_max*10 || temp_value < temp_min*10)  //温度異常聲光報警

                {

                    if(beep_count == 0)

                        beep_count = 6;

                }

                else                                                                                                            //温度正常,開門

                {

                    RELAY_D = 1;

                    Delay_ms(1000);Delay_ms(1000);

                    RELAY_D = 0;

                }