采用ESP32微控制器构建一个安防监控系统
1. 项目目标与宗旨
1.1 项目目标
本项目的目标是为新建物业创建一个功能完善的安防监控系统原型。该系统采用ESP32微控制器、两个HLK-LD2410S毫米波运动传感器、LED指示灯、声音报警器、UPS电源监测以及蓝牙移动应用程序,用于系统控制和状态显示。
该系统旨在检测房间内的移动情况,并向用户报告安全系统的状态、传感器状态以及电源供应情况。
1.2 项目目标
•创建一个能够容纳ESP32、传感器、LED元件、蜂鸣器及其他所需组件的3D模型。
•设计一个电气电路,用于连接两个HLK-LD2410S传感器、ESP32、可寻址LED灯带、声光报警装置、UPS电源系统以及电源状态检测电路。
•开发ESP32软件,用于读取传感器数据、控制报警操作、LED指示灯、蜂鸣器、UPS状态,并与移动应用程序进行蓝牙数据交换。
•创建一个移动应用程序,允许用户对安全系统进行开启和关闭,并显示传感器、报警器和UPS的状态。
2. 理论背景
HLK-LD2410S 是一种毫米波雷达传感器,利用高频电磁波检测房间内物体的存在及其运动状态。该传感器发射无线电波,并接收来自人体或其他物体的反射信号。通过分析反射信号的变化,传感器可判断区域内是否存在移动或静止的物体。
通过多普勒效应检测运动。当人移动时,反射信号的频率会略有变化。该传感器即使在人几乎静止不动时也能检测到其存在,因为它能够感知到非常微小的动作,例如呼吸或身体的细微移动。
传感器处理接收到的信号,并确定物体与传感器之间的大致距离。该信息被发送到ESP32微控制器,程序会检查传感器状态。如果安防系统处于启用状态且任一传感器检测到移动,ESP32将触发警报、LED指示灯,并向移动应用程序发送状态信息。
这些传感器可在约8米范围内以及60度角度内检测运动。为了覆盖新建物业所需区域,需要使用三个此类原型。
因此,在使用传感器之前,需要先进行校准。校准通过UART USB接口连接到官方应用程序来完成。之后,您就可以生成阈值、设置参数并进行调整。
3. 实践部分
3.1 3D模型
在这个项目中,我制作了一个定制的3D模型——即设备的外壳,用于容纳所有必要的组件。该模型经过专门设计,以确保:
•LED灯带可安装在机箱的顶部和底部。
•可安装ESP32控制器、UPS模块和降压转换器的空间。
•底部会有一个孔,用于安装直流插头。
•外壳将分为两部分,以便一侧可以拆卸。我还规划了螺丝的螺孔以及插入金属螺纹嵌件的精确位置。
最后,我将外壳分为三个部分,以便于3D打印,并在之后将所有部件内部组装。外壳使用Autodesk Fusion软件进行设计,随后用Bambu Lab X2D 3D打印机以白色PLA塑料线材打印成型。
3.2 设备电路
设备通过一个12伏直流电源接口供电,电压经由降压转换器降至5伏。这5伏电压随后供给一个UPS模块,该模块连接了两块18650锂离子电池。即使外部电源中断,UPS也能为系统提供稳定的5伏电源。
在UPS输出端与电路其余部分之间插入一个开关。该开关可将UPS电源与ESP32断开连接。这样做是为了当ESP32通过USB连接到计算机时,避免USB供电与UPS供电之间产生冲突。
系统的主控元件是ESP32微控制器。两个HLK-LD2410S毫米波传感器连接到它上面,这些传感器通过串行通信发送有关运动和物体距离的数据。两个传感器均使用3.3V供电,其信号分别连接到ESP32上的独立RX/TX引脚。
两条可寻址的LED灯带也连接到ESP32上。两条LED灯带共用一个ESP32引脚的数据线,因此两者的显示效果相同。这些LED灯带用于指示系统状态和报警状态。
两个5V蜂鸣器用于声音报警。由于ESP32的引脚无法直接安全驱动较大的负载,因此每个蜂鸣器都通过一个2N2222 NPN晶体管进行控制。ESP32向晶体管发送控制信号,使晶体管开启,从而让蜂鸣器从5V电源获得供电。
该电路还包括UPS输入电压监测功能。通过一个2N2222晶体管实现,其基极通过电阻连接到12V输入端。ESP32的输入引脚通过上拉电阻连接到3.3V。当12V电源接通时,晶体管导通,将ESP32输入端拉低;当12V电源断开时,晶体管截止,输入端保持高电平。
通过这种方式,ESP32 可以检测 UPS 是否正在从外部电源充电,或系统是否正在使用电池供电。
3.3 软件
ESP32 软件
开始时,蓝牙以名称SS-01启动,并初始化HLK-LD2410S传感器、LED灯带、蜂鸣器以及UPS检查引脚。
在主循环中,ESP32会持续更新传感器数据、检查蓝牙指令、检测运动、查看UPS状态,并将数据发送至移动应用程序。
当应用程序接收到ARM命令时,系统将处于待命状态;当接收到DISARM命令时,警报将停止,LED灯带关闭,蜂鸣器也将被禁用。
系统通过两个传感器监测运动。当系统处于警戒状态,且其中一个传感器首次检测到运动时,就会触发警报。警报期间,LED灯会呈现波浪或闪烁效果,同时两个蜂鸣器交替响起。警报将持续最长5分钟,或直到用户解除系统警戒为止。
UPS监控通过独立的ESP32输入引脚进行。当外部电源中断时,ESP32会检测到并定期以黄色闪烁LED灯带,提示系统正在使用电池供电。
安卓应用
该安卓应用程序是在MIT App Inventor环境中创建的。程序启动时,会显示可用的蓝牙设备。用户选择ESP32设备后,应用程序将尝试建立蓝牙连接。
如果连接成功,应用程序会显示设备已连接。应用程序有两个主要按钮:启动和关闭。按下启动按钮时,会向ESP32发送ARM命令;按下关闭按钮时,则会发送DISARM命令。
应用程序使用定时器,每5秒检查一次是否从ESP32接收到新数据。接收到的文本行通过分号进行分割,然后将每个部分分别放入对应的字段中:报警状态、UPS状态、第一个传感器状态和距离,以及第二个传感器状态和距离。
根据接收到的数据,应用程序还会更改状态字段的颜色。如果未建立连接,则会显示最后接收到的数据。
本文编译自hackster.io





