基于STM32F103单片机智能门禁热释人体感应报警设计

1 系统功能介绍

本设计基于 STM32F103C8T6 单片机,通过多种传感器、执行器以及通信模块实现智能门禁和安防报警功能。其主要功能是检测门外人员情况,结合环境光照强度判断是否需要照明,同时结合 GSM 模块在异常情况下发送报警信息,为家庭安全提供保障。整个系统不仅具备基础的门禁迎宾功能,还增加了夜间照明、主人状态设置、门铃提示、逗留报警等智能化特性。

系统整体由以下部分组成:

  1. 核心控制电路:以 STM32F103C8T6 单片机为核心,负责对各模块的数据采集与逻辑控制。
  2. 人体感应电路:采用热释红外传感器 E18,用于检测是否有人靠近门口。
  3. 光照检测电路:通过光敏电阻检测环境光照强度,结合逻辑控制自动开关 LED 灯。
  4. 照明模块:由 9 个高亮 LED 灯组成,夜间有人靠近自动点亮,白天或无人时自动关闭。
  5. 液晶显示模块:采用 LCD1602 显示系统状态、提示欢迎语、门禁状态等信息。
  6. 蜂鸣器电路:作为门铃提示装置和报警提示装置,结合主人状态设置实现不同功能。
  7. 拨动开关与按键电路:主人可通过拨动开关设置家庭状态(有人/无人),客人通过按键(门铃)触发提示。
  8. 状态指示灯:用于直观显示当前系统处于有人模式还是无人模式。
  9. GSM 通信模块:通过 SIM800A 模块在检测到人员逗留过久时发送报警短信给主人。
  10. 电源电路:为系统稳定供电,提供 5V 和 3.3V 电压输出。

整体功能概括如下:

  • 迎宾与照明功能:当热释红外传感器检测到人员靠近,LCD 显示“Welcome to home!”,若为夜间,自动点亮 LED 灯。
  • 门禁状态切换:主人可通过拨动开关选择“有人”或“无人”模式,LCD1602 实时显示对应状态。
  • 门铃提示:当系统处于“有人”模式时,按下门铃,蜂鸣器鸣叫提示;若处于“无人”模式,门铃按下无效。
  • 逗留报警功能:若检测到人员在门口停留超过设定时间,系统通过蜂鸣器报警并向主人手机发送短信提示。
  • 状态指示:通过 LED 指示灯明确显示当前系统模式。

该系统集成了门禁、照明与报警功能,结合 GSM 短信远程报警,具备实用性和智能化特点。


2 系统电路设计

2.1 单片机最小系统电路

STM32F103C8T6 作为核心控制芯片,主要负责:

  • 与传感器通信,获取人体感应与光照数据;
  • 驱动 LCD1602 显示状态;
  • 控制继电器或驱动电路点亮高亮 LED;
  • 控制蜂鸣器进行提示与报警;
  • 与 GSM 模块通信实现短信发送。

其最小系统包括:

  • 晶振电路:采用 8MHz 外部晶振,保证系统稳定运行。
  • 复位电路:上电复位和手动复位功能,保证系统可靠性。
  • 电源电路:单片机工作电压 3.3V,由电源电路转换得到。

2.2 热释红外传感器电路(E18)

  • 工作原理:E18 热释红外传感器能够检测人体红外辐射变化,从而判断是否有人进入监控区域。

  • 功能作用:当检测到人员时,单片机接收到高电平信号,触发 LCD 提示与灯光控制逻辑。

  • 应用逻辑

    • 白天有人:LCD 显示欢迎词,不点亮灯。
    • 夜间有人:LCD 显示欢迎词,并点亮 9 个高亮 LED 灯。
    • 无人:灯光关闭,LCD 显示默认状态。

2.3 光敏电阻电路

  • 工作原理:光敏电阻阻值随光照强度变化。通过与电阻分压,将电压信号送入 ADC 通道,单片机即可判断环境亮度。
  • 功能作用:用于判断当前是否为夜间环境。若光照低于设定阈值,则认定为夜间,触发照明逻辑。

2.4 高亮 LED 灯照明电路

  • 电路构成:9 个高亮 LED 灯,通常通过 MOSFET 或三极管驱动,以避免单片机直接承受过大电流。
  • 功能作用:为夜间来访人员提供照明,提高安全性与便利性。

2.5 液晶显示模块电路(LCD1602)

  • 接口方式:采用 4 位数据接口模式节省 IO 口资源。

  • 显示内容

    • 人体检测提示:Welcome to home!
    • 状态显示:Somebody! 或 Nobody!
    • 报警提示:Alarm!
  • 功能作用:直观显示门禁系统当前状态,提升人机交互体验。


2.6 蜂鸣器电路

  • 电路构成:采用有源蜂鸣器,单片机通过 IO 口输出高低电平控制。

  • 功能作用

    • 当处于“有人”模式且有人按下门铃时,发出提示音。
    • 当检测到逗留超时,发出报警音。
    • 在无人模式时,按下门铃无提示音。

2.7 拨动开关与按键电路

  • 拨动开关:用于设置家庭状态。

    • 拨上:LCD 显示 Somebody!,进入有人模式。
    • 拨下:LCD 显示 Nobody!,进入无人模式。
  • 按键:模拟门铃功能,当处于有人模式时触发蜂鸣器鸣叫。


2.8 状态指示灯电路

  • 功能作用:直观显示系统状态。

    • 有人模式:状态指示灯常亮。
    • 无人模式:状态指示灯熄灭。

2.9 GSM 通信模块电路(SIM800A)

  • 功能作用:通过 AT 指令与 STM32F103 通信,当检测到有人逗留超过设定时间,自动发送报警短信。
  • 通信方式:UART 串口通信,波特率设置为 9600bps。
  • 应用场景:增强安防功能,使用户在外也能第一时间获知异常情况。

2.10 电源电路

  • 功能作用:为单片机及外围模块提供稳定电压。
  • 电路构成:采用 AMS1117-3.3 稳压芯片提供 3.3V 电压,继电器、蜂鸣器与 GSM 模块则由 5V 供电。

3 程序设计

3.1 主程序框架

#include "stm32f10x.h"
#include "lcd1602.h"
#include "dht11.h"
#include "esp8266.h"
#include "relay.h"
#include "sim800a.h"
#include "led.h"
#include "key.h"int main(void)
{SystemInit();LCD_Init();LED_Init();Key_Init();Buzzer_Init();GSM_Init();Sensor_Init();while(1){HumanDetect_Task();LightControl_Task();DoorBell_Task();Alarm_Task();}
}

主程序完成各模块初始化,并在循环中调用任务函数,实现模块化运行。


3.2 人体感应检测程序

void HumanDetect_Task(void)
{if(E18_Detected()){LCD_ShowString(0,0,"Welcome to home!");if(Light_Level() < THRESHOLD) LED_On();}else{LCD_Clear();LCD_ShowString(0,0,"Nobody!");LED_Off();}
}

通过红外传感器检测是否有人,并结合光照强度自动开灯或关灯。


3.3 门禁状态设定程序

void Mode_Set(void)
{if(SWITCH_STATE == 1){LCD_ShowString(1,0,"Somebody!");MODE = 1;StatusLED_On();}else{LCD_ShowString(1,0,"Nobody!");MODE = 0;StatusLED_Off();}
}

通过拨动开关切换家庭状态,LCD 显示相应内容。


3.4 门铃控制程序

void DoorBell_Task(void)
{if(MODE == 1 && KEY_Pressed()){Buzzer_On();Delay_ms(500);Buzzer_Off();}
}

仅在“有人”模式下,按下门铃才有提示音。


3.5 逗留报警程序

int stay_time = 0;void Alarm_Task(void)
{if(E18_Detected()){stay_time++;if(stay_time > STAY_LIMIT){Buzzer_On();GSM_SendSMS("Alarm! Someone stays too long at the door!");}}else{stay_time = 0;Buzzer_Off();}
}

当检测到人员停留超过设定阈值时间,触发蜂鸣器报警并通过 GSM 发送短信。


3.6 GSM 短信发送程序

void GSM_SendSMS(char *msg)
{USART_SendString("AT+CMGF=1\r\n");    // 设置短信为文本模式Delay_ms(100);USART_SendString("AT+CMGS=\"+8613812345678\"\r\n"); // 目标手机号Delay_ms(100);USART_SendString(msg);USART_SendData(0x1A);  // 发送Ctrl+Z结束
}

利用 SIM800A 模块,通过 AT 指令实现短信发送。


4 总结

本设计基于 STM32F103 单片机,实现了一个功能完备的智能门禁系统。其特点包括:

  1. 人体感应与迎宾功能:通过热释红外传感器检测人员靠近,并通过 LCD 显示欢迎信息。
  2. 智能照明控制:结合光敏电阻实现夜间自动照明,提高便利性。
  3. 门禁状态切换:通过拨动开关区分“有人/无人”模式,提升系统灵活性。
  4. 智能门铃提示:仅在有人模式下生效,避免无效干扰。
  5. 逗留报警功能:检测到门外人员逗留过久时,蜂鸣器报警并通过 GSM 模块发送短信。
  6. 状态直观:通过 LCD 和 LED 指示灯实时显示系统运行状态。
  7. 可靠性与扩展性:采用模块化设计,便于后续功能扩展,如增加人脸识别、摄像头监控等。

该系统集成了安防、照明、门禁三大功能,为家庭安全提供了一个实用、低成本且可扩展的解决方案。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/93962.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/93962.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

imx6ull-驱动开发篇33——platform 平台驱动模型

目录 Linux 驱动的分离与分层 驱动的分隔与分离 驱动的分层 platform 平台驱动模型 platform 总线 bus_type 结构体 platform 总线 platform_match函数 platform 驱动 platform_driver 结构体 device_driver 结构体 platform_driver_register 函数 platform_drive…

Win/Linux笔记本合盖不睡眠设置指南

在 笔记本电脑上&#xff0c;当你合上屏幕时&#xff0c;默认系统可能会进入“睡眠”或“休眠”状态。如果你希望合上屏幕时系统继续正常运行&#xff08;例如后台下载、运行程序、远程访问等&#xff09;&#xff0c;需要修改系统的电源设置。 一、以下是 Windows 10 / Windo…

(栈)Leetcode155最小栈+739每日温度

739. 每日温度 - 力扣&#xff08;LeetCode&#xff09; while要把stack的判断放在前面&#xff0c;否则stack[-1]可能报错 class Solution(object):def dailyTemperatures(self, temperatures):""":type temperatures: List[int]:rtype: List[int]""…

【NLP(01)】NLP(自然语言处理)基础

目录NLP基础一、基本概念1. 自然语言处理的基本介绍1.1 与语言相关的概念1.2 为什么使用NLP2. NLP的应用方向2.1 **自然语言理解**2.2 自然语言转换2.3 自然语言生成3. NLP基础概念4. NLP的发展历史5. NLP的基本流程二、NLP中的特征工程0. 引入1. 词向量2. 传统NLP中的特征工程…

Python工程师进阶学习道路分析

本文将分为以下几个核心部分&#xff1a; 心态与基础重塑&#xff1a;从“会用”到“精通”核心语言深度&#xff1a;窥探Python的奥秘编程范式与设计模式&#xff1a;写出优雅的代码并发与异步编程&#xff1a;释放多核时代的威力性能分析与优化&#xff1a;让代码飞起来深入…

IntelliJ IDEA中Maven的“Sync“与“Reload“详解:小白的避坑指南

在IntelliJ IDEA中使用Maven时&#xff0c;Sync All Maven Projects&#xff08;同步&#xff09;和 Reload All Maven Projects&#xff08;重新加载&#xff09;是两个最常用的操作按钮。它们看似相似&#xff0c;实则承担着完全不同的职责。本文将通过通俗易懂的对比和场景分…

网络地址的详细计算说明

IP地址分类与计算 IP地址分5类A类 &#xff1a;0开头&#xff0c;适用于大型网络 B类 &#xff1a;10开头&#xff0c;适用于中型网络 C类 &#xff1a;110开头&#xff0c;适用于小型网络 D类 &#xff1a;1110开头&#xff0c;用于组播 E类 &#xff1a; 1110开头&#xff0c…

人工智能驱动的现代电商前端开发:从基础到智能体验

引言&#xff1a;AI如何重塑电商体验电子商务行业正在经历一场人工智能革命。从个性化推荐到视觉搜索&#xff0c;从智能客服到预测分析&#xff0c;AI技术正在彻底改变用户与电商平台的交互方式。作为前端开发者&#xff0c;了解如何集成AI功能已成为必备技能。本文将带您深入…

mimic数据统计

是否能联通 psql -h 127.0.0.1 -U Shinelon-d mimic --password pgadmin建库 psql -d mimiciv -f mimic-iv/buildmimic/postgres/create.sql 也可以pgadmin直接运行create.sql 导入csv.gz数据 psql -d mimic -v ON_ERROR_STOP1 -v mimic_data_dirH:/mimic-iv-2.2 -f C:\Users\S…

孟德尔随机化小试 从软件安装数据下载到多种检验

孟德尔随机化&#xff08;Mendelian Randomization, MR&#xff09;作为一种利用基因数据推断因果关系的强大工具&#xff0c;在流行病学研究中应用广泛。本文将详细讲解MR的核心原理、完整分析流程&#xff0c;并附上关键代码实现&#xff0c;帮助你从零开始完成一次MR分析。1…

记一次:postman请求下载文件的使用方法

前言&#xff1a;笔者的后端接口是swagger&#xff0c;遇到像文件导出下载的功能就实现不了。然后使用postman工具就可以了。注&#xff1a;postman工具使用send下拉选项中有请求下载&#xff0c;如图完美解决。后续有其它方法在补充。

快速搭建项目(若依)

RuoYi-Vue 是一个 Java EE 企业级快速开发平台&#xff0c;低代码的框架。 1.环境要求&#xff1a; 其中MySQL和Redis放在服务器上或者本机上。 2.代码搭建&#xff1a; 代码下载地址&#xff1a;https://gitee.com/y_project/RuoYi-Vue&#xff0c;在官方文档里面可下载若依…

iOS开发之UICollectionView为什么需要配合UICollectionViewFlowLayout使用

1. UICollectionView 的职责分离UICollectionView 本质上只是一个容器&#xff0c;用来展示一系列的 cell&#xff08;单元格&#xff09;。 它本身 不关心 cell 的摆放方式&#xff0c;只负责&#xff1a;Cell 的复用&#xff08;避免性能浪费&#xff09;Cell 的增删改查滚动…

一、部署LNMP

一、准备环境操作系统&#xff1a;CentOS 7.x&#xff08;最少 2 核 CPU 2GB 内存 20GB 磁盘&#xff09;网络&#xff1a;能访问公网&#xff08;用于下载包&#xff09;软件版本&#xff1a;Nginx 1.20MySQL 5.7/8.0PHP 7.4WordPress 6.x&#xff08;商城插件 WooCommerce&…

【时时三省】vectorCAST 便捷使用技巧

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 目录 1,工程的共享 2,工程的关键文件保存 2,工作环境目录下,各个文件夹的作用 1,build 和 environment 的区别 2,vcm的作用 3,tst 文件的妙用 4,配置文件的妙用 5,复制测试环境 6,vectorCAST…

TOPSIS 优劣解距离法总结

TOPSIS 优劣解距离法总结 1. 基本思想 TOPSIS&#xff08;Technique for Order Preference by Similarity to Ideal Solution&#xff09;方法通过计算方案与正理想解&#xff08;最优值&#xff09;和负理想解&#xff08;最劣值&#xff09;的距离&#xff0c;来评价方案的优…

机器学习笔试题

人工智能与机器学习单选题&#xff08;50道&#xff09;1. 机器学习的核心目标是&#xff1a;A. 通过硬编码规则解决问题 B. 从数据中自动学习模式 C. 提高计算机硬件性能 D. 优化数据库查询速度2. 以下属于监督学习任务的是&#xff1a;A. 聚类分析 B. 图像分类 C. 异常检测 D…

CISP-PTE之路--10文

1.TCP/UDP 工作在 OSI 哪个层? 应用层 传输层 数据链路层 表示层 答案:传输层 解析:TCP(传输控制协议)和 UDP(用户数据报协议)是 OSI 模型中传输层的核心协议,负责端到端的数据传输管理,如可靠性(TCP)、实时性(UDP)等。 2.下列哪种设备可以隔离 ARP 广播帧? …

接口性能测试工具 - JMeter

1. 下载和运行JMeter 是由 Java 语言编写的, 因此 JMeter 的使用依赖于 Java 环境 - JRE.前往 oracle 官网下载 JMeter 压缩包.Mac 用户解压完成后, 在包内的 bin 目录下运行 sh jmeter:Windows 用户直接运行 bin 目录下的 jmeter.bat:即可进入 JMeter 主页面:1.1 添加环境变量…

Go语言实战案例-数据库事务处理

在实际业务中&#xff0c;很多操作需要保证 要么全部成功&#xff0c;要么全部失败&#xff0c;否则可能造成数据不一致。比如&#xff1a;• 用户转账&#xff08;A 账户扣款&#xff0c;B 账户加款&#xff09;• 下单支付&#xff08;生成订单、扣减库存、记录支付&#xff…