1.硬件
1.1 硬件组成
1. 正点原子STM32F407探索者开发板
2. RC522模块
3. HC05蓝牙模块
4. 继电器+5V小灯
5. 3.5寸电阻触摸屏
1.2 硬件连接
1,DS0(LED0)(连接在PF9),DS1(LED1)(连接在PF10)
2,蜂鸣器(连接在PF8)
3,按键KEY1(PE3)开锁/KEY2(PE2)关锁
4.继电器(连接在PE1)
5.RC522连线说明
*1--SDA <----->PF0
*2--SCK <----->PF1
*3--MOSI <----->PF2
*4--MISO <----->PF3
*5--悬空
*6--GND <----->GND
*7--RST <----->PF4
*8--VCC <----->VCC
6.HC05蓝牙模块
TX------PB11
RX------PB10
VCC-----3.3V
GND-----GND
串口3(波特率:9600,PB10/PB11)与HC05蓝牙模块连接
2.功能实现
2.1概述
用继电器加一个5V小灯来模拟门禁的开关,用K1和K2按键外部中断的方式来模拟钥匙开锁关锁,K1按下继电器吸合小灯亮代表门禁打开,K2按下继电器弹开小灯灭代表门禁关闭。手机APK蓝牙助手连接上蓝牙模块,发送OPEN DOOR开启门禁,发送CLOSE DOOR关闭门禁。RFID卡刷RCC522读卡板开启门禁。
2.2触摸屏解锁主界面
3.主要代码
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
delay_init(168); //初始化延时函数
uart_init(115200); //串口初始化
LED_Init(); //初始化LED端口
BEEP_Init(); //初始化蜂鸣器端口
RELAY_Init(); //初始化继电器
EXTIX_Init(); //初始化外部中断输入
LCD_Init(); //初始化LCD FSMC接口
RC522_Init(); //初始化射频卡模块
//初始化界面
POINT_COLOR=BLACK; //画笔颜色:红色
LCD_Clear(WHITE);
LCD_ShowString(50,100,200,24,24,"ACCESS");
LCD_ShowString(50,130,200,24,24,"STATE:");
LCD_ShowString(140,130,200,24,24,"OFF");
delay_ms(1000); //等待蓝牙模块上电稳定
while(HC05_Init()) //初始化ATK-HC05模块
{
LCD_ShowString(50,160,200,16,16,"ATK-HC05 Error!");
delay_ms(500);
LCD_ShowString(50,180,200,16,16,"Please Check!!!");
delay_ms(100);
}
LCD_Fill(50,160,200,200,WHITE);
LCD_ShowString(50,200,200,24,24,"HC05 Standby!");//HC05初始化成功
LCD_ShowString(50,230,200,24,24,"RECEIVE:");
LCD_Fill(50,260,320,290,WHITE);
LCD_ShowString(50,260,210,16,16,"Please Put Your Card!!!");//提示请刷卡
POINT_COLOR=RED;
delay_ms(100);
USART3_RX_STA=0;
while(1)
{
//01蓝牙开启门禁
HC05_Control();
//02RFID开启门禁
RC522_Control();
LED0=!LED0;
delay_ms(500); //每隔1s打印一次
}
}