FreeRTOS小項(xiàng)目實(shí)戰(zhàn)
基于FreeRTOS和stm32的門禁系統(tǒng)
????該系統(tǒng)采用STM32F407ZGT6為主控芯片,在FreeRTOS下與分別通過as608指紋模塊,RFID射頻識別卡模塊,LCD觸屏模塊以及esp8266WIFI模塊完成解鎖,配合顯示模塊,舵機(jī),用蜂鳴器進(jìn)行提示共同組成整個門禁系統(tǒng),系統(tǒng)的整體框架圖如下所示:

????首先指紋模塊提前采取好需要識別的指紋到模塊內(nèi)置的芯片里面,將手指放到指紋識別模塊上,系統(tǒng)會檢測到指紋按下并且會采取當(dāng)前的指紋圖像與芯片內(nèi)部的指紋圖像進(jìn)行識別,若識別成功,蜂鳴器響兩下,并且LCD屏幕會顯示指紋識別成功,舵機(jī)會轉(zhuǎn)動180°模擬解鎖成功,當(dāng)指紋識別到的圖像與模塊存儲的指紋識別不一致,則蜂鳴器會響3下,LCD屏幕會顯示指紋識別失敗,舵機(jī)不會轉(zhuǎn)動。
????RFID射頻識別功能是當(dāng)使用者使用識別卡靠近RC522 RFID射頻模塊,此模塊會識別到當(dāng)前卡的卡號,若卡號與我寫入的卡號一致則解鎖成功,并且LCD屏幕會顯示識別卡成功,舵機(jī)會轉(zhuǎn)動180°模擬解鎖成功;LCD觸屏密碼鎖的功能是當(dāng)使用者在屏幕輸入密碼,密碼正確則解鎖成功,并且LCD屏幕會顯示指紋識別成功,舵機(jī)會轉(zhuǎn)動180°模擬解鎖成功。WIFI遠(yuǎn)程解鎖則是ESP8266模塊設(shè)置成AP+TCP服務(wù)器端,手機(jī)連接其熱點(diǎn)并且在TCP客戶端輸入正確ip地址和端口號,輸入正確的命令后解鎖成功。當(dāng)每一次解鎖失敗則會記錄下這一次解鎖失敗,當(dāng)累計(jì)3次后則舵機(jī)鎖死。
????由基于FreeRTOS操作系統(tǒng)下創(chuàng)建了一個開始任務(wù)和四個控制任務(wù)。
????任務(wù)與任務(wù)之間使用事件標(biāo)志組進(jìn)行通信,當(dāng)TFTLCD屏幕觸屏輸入密碼的時,當(dāng)密碼輸入正確,則向舵機(jī)任務(wù)發(fā)送一個事件標(biāo)志位;當(dāng)指紋識別成功時,則向舵機(jī)任務(wù)發(fā)送一個事件標(biāo)志位;當(dāng)射頻識別卡識別成功卡號時候;則向舵機(jī)任務(wù)發(fā)送一個事件標(biāo)志位;當(dāng)藍(lán)牙從手機(jī)串口發(fā)生密碼時,當(dāng)密碼識別成功,則向舵機(jī)任務(wù)發(fā)送一個事件標(biāo)志位。舵機(jī)任務(wù)只要接收到其中一個事件標(biāo)志位時候,舵機(jī)就會轉(zhuǎn)動180°來模擬解鎖成功。當(dāng)如果每解鎖失敗一次之后,err全局變量加一,當(dāng)err等于3的時候,則舵機(jī)任務(wù)被掛起。
????
具體程序?qū)崿F(xiàn)
創(chuàng)建事件組
開始任務(wù)函數(shù)
舵機(jī)任務(wù)(利用舵機(jī)模擬門鎖轉(zhuǎn)動)
LCD觸摸屏輸入密碼任務(wù)
RC522識別卡任務(wù)
AS608指紋識別任務(wù)
ESP8266任務(wù)
鏈接:https://pan.baidu.com/s/1d_hQY91rDy5VRq5E4HCYZg?
提取碼:dpfr
————————————————
本文為CSDN博主「喝杯子的水」的原創(chuàng)文章,轉(zhuǎn)載用于學(xué)習(xí)
原文鏈接:https://blog.csdn.net/hbzdsXCV/article/details/128265500