本次WIFI門禁控制器的總體設計:首先通過ESP8266 WiFi模塊連接手機,然后利用RC-522模塊非接觸讀取IC卡的卡號,經過單片機判斷該卡號是否正確。如果正確,則繼電器閉合打開電子鎖開門,蜂鳴器通電提示開門;如果卡號錯誤,則繼電器斷開,蜂鳴器不響。通過OLED輸出卡號和提示信息。用戶可以通過WiFi連接手機對卡號進行查詢、刪除、添加等操作,卡號存儲在單片機內部flash,刷卡的提示信息通過串口傳送到電腦上,這樣就可以實時了解門禁控制器的情況。
單片機源程序如下:
- #include "stm32f10x.h"
- #include "bsp_gpio.h"
- #include "bsp_usart1.h"
- #include "bsp_usart2.h"
- #include "wifi_config.h"
- #include "wifi_function.h"
- #include "bsp_SysTick.h"
- #include "wifi_data.h"
- #include "flash.h"
- #include <string.h>
- #include "rc522_function.h"
- #include "rc522_config.h"
- #include "bsp_TiMbase.h"
- #include "OLED_I2C.h"
- #include "bsp_i2c_gpio.h"
- #include "codetab.h"
- #include <stdbool.h>
-
- extern char IC_id[20][8];
- extern char * Re_ID[3];
- void Oled_INIT(void)//初始化OLED界面
- {
- OLED_Fill(0x00);//全屏滅;
- for(i=0;i<4;i++)
- {
- OLED_ShowCN(30+i*16,0,F16x16,i);
- }
- for(i=0;i<3;i++)
- {
- OLED_ShowCN(i*16,3,F16x16_1,i);
- }
- }
- /**
- * @brief 主函數
- * @param 無
- * @retval 無
- */
- int main(void)
- {
- /* 初始化 */
- WiFi_Config(); //初始化WiFi模塊使用的接口和外設
- SysTick_Init(); //配置 SysTick 為 1ms 中斷一次
- i2c_CfgGpio(); /*I2C總線的GPIO初始化*/
- OLED_Init(); /* OLED初始化 */
- Oled_INIT(); //OLED界面初始化
- Beep_GPIO_Config();//蜂鳴器和繼電器初始化
- PC_Usart("\r\n即將進行的測試是:1.STA模式: TCP Client\r\n");
- ESP8266_STA_TCP_Client ();
- RC522_Init (); /*RC522模塊所需外設的初始化配置*/
- PcdReset ();
- M500PcdConfigISOType ( 'A' );/*設置工作方式*/
- Read_Flash();//讀取卡號
-
- BASIC_TIM_Init();//定時器3初始化
-
- while (1)
- {
- WIFI_operate_data();
- if( (strcmp( Re_ID[1],"1")==0)|(strcmp(Re_ID[1],"2")==0))//如果是刪除和添加就進行flash操作
- {
- InternalFlash_Test();//向flash寫入保存的數據
- }
- }
- }
- /*********************************************END OF FILE**********************/
復制代碼
所有資料51hei提供下載:
課設程序3.0.7z
(214.33 KB, 下載次數: 194)
2019-2-28 22:42 上傳
點擊文件名下載附件
單片機是F03C8T6,ESP8266,RC522射頻模塊,能夠識別IC卡的卡號,然后根據卡號單片機驅動電子鎖 下載積分: 黑幣 -5
|