一、项目介绍:
本项目设计的是一款基于esp32的自动化家庭安全系统,家庭安全系统是一种集成了多种智能设备、传感器和通信技术的智能家居解决方案,旨在提供家庭安全、监控和远程控制功能。可以提高家庭的安全性、便捷性和智能化水平
二、市场应用介绍:
此项目的市场应用广泛,不仅适用于普通家庭的场景,还适用于仓库、中小型公司的安全管理等等方面,来保障个人以及公众的财产安全。例如:
1.商业和所企业场:办公大楼、公司大门或者特定区域的安全门可以采用这一设计。这种系统可确保只有授权人员能够进出,同时保持门窗在必要时自动关闭。
2.住宅和私人领域:家庭安全系统可以采用类似的设计,保护住宅免受未经授权的入侵。这对于家庭主人在外时能提供额外的安全保障。
3.商店和零售业:特定货架区域或存储室可以使用这种系统,以确保只有授权人员能够进入。这在避免盗窃和确保特定物品安全存放方面有很大的帮助。
4.安全敏感的环境:例如实验室、医院内部区域、金融机构的特定区域等。这些地方通常需要特殊权限的人员才能进入。
动物园或特定动物管理区域:此类地方需要保护动物免受未经授权的人员干扰,该系统可以帮助监测并确保只有授权人员能够进入。
三、项目设计思路:
当系统授权人员进入时,自动门窗会打开。系统将实时监测门窗状态,确保它们在需要时自动关闭。
系统还能识别授权人员离开时门窗未关闭的情况,并自动完成关闭过程。当室内最后一个人离开时,系统将自动关闭门窗。
一旦系统探测到室内无人,超声波传感器将被启用以监测环境。此传感器的选择是出于区分人和动物的目的,只有当人或大型动物进入时才会触发系统的紧急响应。这种设计能够确保只有未经授权的入侵才会引发警报和门窗锁定,使得闯入者无处可逃。合法授权的人员进出不会导致这样的紧急响应。
四、:项目方案框图和原理图解释
五、设计中用到规定厂商的元器件介绍:
1.乐鑫 ESP32 :
乐鑫 ESP32(Espressif Systems ESP32)是一款非常流行的低功耗、高性能的无线系统芯片,广泛用于物联网(IoT)设备和嵌入式系统。
双核处理器:ESP32 配备了两个处理核心,其中一个主核和一个协处理核,可分别用于应用程序处理和 Wi-Fi/蓝牙通信。这有助于提高系统性能和响应速度。
Wi-Fi和蓝牙:ESP32 集成了802.11 b/g/n Wi-Fi和经典蓝牙(Bluetooth Classic)以及低功耗蓝牙(Bluetooth Low Energy,BLE)通信功能,使其成为构建联网设备的理想选择。
丰富的外设:ESP32 支持多种数字和模拟接口,包括GPIO引脚、SPI、I2C、UART、PWM等,使其适用于各种传感器和外围设备的连接。
低功耗:ESP32 设计用于低功耗应用,具有多种节能模式,可延长电池寿命,适用于移动设备和电池供电的 IoT 设备。
丰富的开发生态:乐鑫提供了 ESP-IDF(ESP32 IoT Development Framework)作为官方开发工具,同时也支持Arduino IDE,Micropython和其他流行的开发平台,使开发者可以根据自己的需求选择合适的开发工具。
安全性:ESP32 提供了安全引导启动和硬件加密引擎等安全功能,有助于保护设备免受恶意攻击。
广泛的应用:ESP32 被广泛应用于物联网设备、智能家居、工业自动化、智能城市、传感器网络等各种领域,其灵活性和可扩展性使其适用于各种项目。
2.红外传感器
红外传感器是一种电子器件,用于检测和测量物体发出或反射的红外辐射。红外辐射是位于可见光和微波之间的电磁辐射波段,其波长通常在0.75微米到1000微米之间。红外传感器通过捕捉这些红外光线的特定频率和强度来执行各种任务,通常用于自动化、安全、通信、遥感和医疗领域。
3.超声波传感器
超声波传感器是一种电子设备,利用超声波的特性来探测、测量物体的距离、位置和特征。它们是通过发送超声波脉冲,并监听其回波来工作的,通常用于各种自动化、测距、避障和测量应用。以下是关于超声波传感器的简要介绍:
1.工作原理:超声波传感器工作原理类似于蝙蝠或海豚的生物声纳系统。传感器发送超声波脉冲,这些脉冲以速度固定的声速传播,然后反射回来。通过测量发射和接收之间的时间差,可以计算出物体与传感器之间的距离。
2.组件:一个标准的超声波传感器通常包括以下主要组件:
发射器(超声波发射器):用于生成和发射超声波脉冲。
接收器(超声波接收器):用于接收并检测回波。
控制电路:用于计算距离或执行其他相关功能。
应用领域:超声波传感器在各种应用中得到广泛使用,包括但不限于:
距离测量:用于测量物体到传感器的距离,例如自动门、汽车停车辅助系统和机器人导航。
避障:用于检测在物体或障碍物接近时,以避免碰撞或发出警告。
液位测量:用于监测液体(如水或油)的水平,例如在油罐、水箱和水井中。
游戏控制:用于交互式游戏设备,例如体感游戏控制器。
医疗影像:用于医疗超声成像,如超声波检查和胎儿监测。
优点:超声波传感器具有测距精度高、反射面物体不受颜色或透明度影响、无辐射、非接触等优点,使其在各种环境下都能稳定工作。
易于使用: 它使用简单,通过发送一个触发脉冲并监听回波脉冲即可测量距离。
数字输出:传感器提供数字输出,通常是脉冲宽度模块(PWM)信号,可以通过微控制器轻松读取距离信息。
4.SG90舵机:
SG90是一种小型的塑料齿轮舵机,通常用于各种小型机械、模型和电子项目。它有以下一些特点和规格:
尺寸小巧:SG90舵机尺寸较小,适合用于有空间限制的应用场景。
轻量级:重量较轻,适合用于对重量有要求的项目。
工作电压:通常在4.8V至6V范围内工作。
扭矩:在小型项目中有适中的扭矩,能够推动小型机械结构。
可控范围:Typical角度范围一般是0°到180°之间,但是实际范围可能因制造商和具体型号有所不同。
用途广泛:常用于遥控模型、舵机控制系统、小型机械结构等。
- 有源蜂鸣器:
有源蜂鸣器是一种带有内置振荡器的蜂鸣器,能够通过给定的电压或信号直接发出声音。相比于无源蜂鸣器,有源蜂鸣器更易于使用,因为它已经包含了驱动器和发声元件,只需提供电源即可发出声音。
六、PCB绘制介绍及遇到的问题和解决方法
PCB 绘制介绍:
PCB 绘制是将电路设计转化为实际产品的关键步骤,它主要包括以下几个步骤:
- 原理图绘制:根据电路设计,绘制原理图。
- PCB 布局:根据原理图,在 PCB 上布置元器件和走线。
- DRC 检查:对 PCB 进行设计规则检查,确保 PCB 满足设计要求。
- 生成 Gerber 文件:将 PCB 设计文件转换为 Gerber 文件,用于 PCB 厂商生产 PCB。
遇到的问题和解决方法:
元器件走线冲突:在布置元器件和走线时,可能会出现元器件走线冲突,导致 PCB 无法正常工作。解决方法是调整元器件的位置和走线的走向,避免出现冲突。
信号干扰: 上的信号线可能会相互干扰,导致系统性能下降或失效。解决方法是采用合理的走线布局,减少信号干扰。
过孔设计:过孔是 PCB 上连接不同层的通路,过孔设计不当可能会导致 PCB 性能下降。解决方法是采用合适的过孔尺寸和过孔类型,确保过孔性能满足要求。
电源设计:PCB 上的电源线路需要进行合理的设计,确保电源能够满足系统需求。解决方法是采用合适的电源滤波电路,确保电源稳定可靠。
七、关键代码及说明:
void loop(){
static uint people=0;//计数器
volatile bool serson_out_state=digitalRead(serson_out);//此传感器感应物体为低电平
volatile bool serson_door_state=digitalRead(serson_door);//此传感器感应到物体为高电平
volatile bool serson_window_state=digitalRead(serson_window);//此传感器感应到物体为低电平
//进门操作:
if(serson_out_state==LOW){
people++;
bee(speaker,220,1);
delay(1000);
bobato(door,1500);
delay(1000);
if((serson_window_state)==LOW)
bobato(window,450);
delay(2000);
bobato(door,800);
delay(5000);
}
//出门操作:
if(serson_door_state==HIGH){
delay(2000);
if(serson_door_state==HIGH){
bobato(door,800);
if(people>0)
people--;
bee(speaker,714,1);
}
if(serson_window_state==HIGH&&people==0)
{
bobato(window,1500);
}
}
if(people==0){
stance=ultrasounds(trig,ehoc);
Serial.print(stance);
Serial.print("CM");
Serial.println();
delay(2000);
if(stance<(ROOM-BODY)){
bee(speaker,714,10);
if(serson_door_state==HIGH)
bobato(door,800);
if((serson_window_state)==HIGH)
bobato(window,1500);
delay(1000);
}
}
}
首先对传感器状态声明为volatile,确保系统每次都是在使用它的最新状态减少误判,通过对传感器状态的读取来判断要完成的动作,声明一个static计数器来计算人数,进门加一,出门减一。各个外设的操作均放入了自定义头文件“head.h”中。
void bobato(const int pin, uint pwm) {
if(pwm>770){
for (uint i = 770; i < pwm; i+=2) {
digitalWrite(pin, HIGH);
delayMicroseconds(i);
digitalWrite(pin, LOW);
delay(10);
}}
else
{
for (uint i=400; i<pwm; i+=2) {
digitalWrite(pin, HIGH);
delayMicroseconds(i);
digitalWrite(pin, LOW);
delay(10);
}
}
}
舵机函数这样写是因为我发现直接给舵机脉冲他会用力过猛,动作不协调,为了看上去协调,做了一个渐进的效果。
八、功能展示及说明:
默认状态下:
许可人员识别成功时:
室内变为无人时:
九、对本活动的心得体会:
通过这次活动,我对自动化家庭安全系统有了更深入的了解。在设计过程中,我遇到了一些困难,但最终还是克服了这些困难,完成了项目。
在设计过程中,我遇到的最大困难是如何实现门窗的自动开关。我最终采用了电机驱动的方式,通过控制电机的转速来实现门窗的开关。在实现人员识别功能时,我采用了红外传感器的方式,通过检测红外信号来判断是否有人进入。在实现室内无人监控功能时,我采用了超声波传感器的方式,通过检测物体距离来判断是否有人进入。
在设计过程中,我还遇到了一些技术细节的问题,例如如何减少信号干扰、如何提高系统性能等。我通过查阅资料和请教老师,最终解决了这些问题。
通过这次活动,我学到了很多东西,也提高了自己的动手能力和解决问题的能力。我相信,这些技能将对我未来的学习和工作有所帮助。
在设计过程中,要注意系统的整体性和可靠性。在实现某个功能时,要考虑到它对其他功能的影响,确保系统能够稳定运行。
要注意技术细节。在设计和实现过程中,要注意各种技术细节,避免出现误判或失效的情况。
要善于查阅资料和请教老师。在遇到困难时,不要轻易放弃,要通过多种途径寻找解决办法。
我希望在今后的学习和工作中,能够继续学习和提高,为社会做出更大的贡献。