基于STM32单片机智能门牌门禁布防撤防防盗报警光强感应灯光系统原理图PCB

功能:
0.本系统采用STM32F103C8T6作为单片机
1.可通过一个拨动开关设防和撤防,当拨到无人时开始设防,若此时检测到有人则报警
2.当拨到有人时,光强传感器会根据环境光的强度大小而决定开灯,若无人情况,无论如何都不开灯。
3.人体感应模块采用的是HC-SR501模块,显示液晶LCD1602实时显示工作状态
4.采用DC002作为电源接口可直接输入5V给整个系统供电

原理图:
在这里插入图片描述

PCB :
在这里插入图片描述

主程序:

#include "delay.h"
#include "sys.h"
#include "key.h"
#include "led.h"
#include "bsp_lcd1602.h"

u8 baojFlag = 0;	// 报警 标志
u16 manDelay = 0; //有人计时

int main(void)
{
	u32 time10ms = 0;

	delay_init(); // 延时函数初始化

	KEY_Init(); // 初始化 按键
	LED_Init(); // 初始化电机引脚 作为输出 类似led
	delay_ms(1);
	LCD_GPIO_Init(); // 初始化lcd引脚
	LCD_Init();		 // 初始化lcd屏幕
	delay_ms(20);

	LCD_DispStr(0, 0, "Waitting for you"); // 初始化显示
	LCD_DispStr(0, 1, "Nobody!         ");

	BUZZER = 1; // 打开 上电开关一下 方便检测
	LIGHT = 1;
	LED_STATUS = 0;
	delay_ms(200);
	LED_STATUS = 1; // 关闭 用于测试
	BUZZER = 0;
	LIGHT = 0;

	while (1)
	{
		delay_ms(10);
        
        if (IR_PIN == 0) // 检测到有人
		{
			manDelay = 500; //设定计时
			LED_STATUS = 0; // 标志
		}
		else
		{
			if (manDelay>0) 
			{
				manDelay--; //倒计时
			}
			LED_STATUS = 1;
		} // 否则复位标志
        
		if (manDelay > 0) //持续有人
		{
			LCD_DispStr(0, 0, "Welcome to home!"); // 显示有人
			if (LIGHT_IN == 1)					// 有人情况查看是否需要开灯
			{
				LIGHT = 1; // 打开 灯
			}
			else
			{
				LIGHT = 0;
			} // 关闭
			time10ms++;
			if (time10ms >= 3000) // 有人超过30s 报警
			{
				BUZZER = 1;	  // 打开蜂鸣器
				baojFlag = 1; // 报警
			}
		}
		else //持续一段时间未检测到人
		{
			LCD_DispStr(0, 0, "Waitting for you"); // 没有人情况 显示等待
			LIGHT = 0;							// 没有人关闭led
			time10ms = 0;						// 清零紧急报警
			baojFlag = 0;
		}

		if (STATUS_PIN == 1) //家中有人
		{
			LCD_DispStr(0, 1, "Somebody!       "); // 家中有人
			if (baojFlag == 0)					// 非紧急情况
			{
				if (DOORBELL_PIN == 0) // 门铃键按下
				{
					BUZZER = 1; // 打开蜂鸣器
				}
				else
				{
					BUZZER = 0;
				} // 关闭蜂鸣器
			}
		}
		else
		{
			LCD_DispStr(0, 1, "Nobody!         "); // 家中无人
			if (baojFlag == 0)					// 非紧急情况
			{
				BUZZER = 0;
			}
		}
	}
}

实物演示视频:

https://www.bilibili.com/video/BV1z14y1H7Ct/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值