一、基本介紹
功能簡介:
1、通過掃碼槍進行掃描二維碼,當二維碼識別成功,10s內需觸發紅外避障管,並通過紅外測温模塊進行測温,如果温度正常,則自動開鎖,如果温度異常,則聲光報警3次,鎖不打開
2、通過RFID進行刷卡,當卡識別成功,10s內需觸發紅外避障管,並通過紅外測温模塊進行測温,如果温度正常,則自動開鎖,如果温度異常,則聲光報警3次,鎖不打開
3、通過指紋模塊,當指紋識別成功,10s內需觸發紅外避障管,並通過紅外測温模塊進行測温,如果温度正常,則自動開鎖,如果温度異常,則聲光報警3次,鎖不打開
4、通過內部RTC時鐘同步時間,從而獲取年月日時分秒星期
5、通過按鍵可以修正時間、設置温度上下限值、添加刪除二維碼、RFID卡、指紋
6、通過OLED顯示測量數據
二、32實物圖
單片機型號:STM32F103C8T6
板子為綠色PCB板,兩層板,厚度1.2,上下覆銅接地。元器件基本上為插針式,個別降壓芯片會使用貼片式。
供電接口:TYPE-C
三、資料預覽
四、原理圖
軟件版本:AD2013
電路連線方式:網絡標號連線方式
注意:原理圖只是畫出了模塊的引腳圖,而並不是模塊的內部結構原理圖
五、PCB圖
由原理圖導出,封裝很大一部分都是作者自己繪製,不提供封裝庫,只提供連接好的源文件。中間有一個項目編號,隱藏在單片機底座下,插入單片機後不會看到。
兩層板,上下覆銅接地。
六、系統框圖
本設計以STM32單片機為核心控制器,加上其他模塊一起組成此次設計的整個系統,其中包括控制部分、輸入部分和輸出部分。控制部分採用了STM32單片機控制器,其主要作用是獲取輸入部分的數據,經過內部處理,邏輯判斷,最終控制輸出部分。輸入由四部分組成,第一部分是非接觸温度檢測模塊,通過該模塊檢測指紋識別信息;第二部分是紅外避障模塊,通過該模塊對人體温度進行測量;第三部分是按鍵模塊,通過按鍵可以修正時間、設置温度上下限值、添加刪除二維碼、RFID卡、指紋;第四部分是供電模塊,通過該模塊可給整個系統進行供電。輸出由七部分組成,第一部分是OLED顯示模塊,通過該模塊可以顯示監測的數據以及設置的閾值;第二部分是RFID刷卡模塊,通過RFID進行刷卡,當卡識別成功,10s內需觸發紅外避障管,並通過紅外測温模塊進行測温,如果温度正常,則自動開鎖,如果温度異常,則聲光報警3次,鎖不打開;第三部分是掃碼槍模塊,通過掃碼槍進行掃描二維碼,當二維碼識別成功,10s內需觸發紅外避障管,並通過紅外測温模塊進行測温,如果温度正常,則自動開鎖,如果温度異常,則聲光報警3次,鎖不打開;第四部分是指紋模塊,通過指紋模塊,當指紋識別成功,10s內需觸發紅外避障管,並通過紅外測温模塊進行測温,如果温度正常,則自動開鎖,如果温度異常,則聲光報警3次,鎖不打開;第五部分是存儲模塊,通過存儲模塊對數據進行存儲;第六部分是繼電器模塊,通過繼電器控制系統對應的功能;第七部分是聲光報警模塊,當監測值不在設置的閾值內時進行聲光報警。具體系統框圖如圖3.1所示。
八、軟件設計流程
九、部分程序展示
軟件版本: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;
}