9464| 10
|
[项目] 入侵防御系统 |
【项目介绍】 这个项目的名称为入侵防御系统,功能是用来检测房屋四周是否有人靠近。如果有人靠近,系统会发出警报声,并点亮红色警报灯,提示入侵。该入侵系统还具备遥控开关功能,可以在不需要使用的时候关闭。 【解决方案】 入侵探测用到的是红外热释电运动传感器,可以在房屋各个方向都装上这个传感器,这样就可以不留死角地检测到所有靠近房屋的人。红外热释电运动传感器能检测运动的人或动物身上发出的红外线,从而判断是否有生物靠近。 我们的入侵防御系统需要实现以下功能: 1.检测各个方向是否有人入侵。 2.如有人入侵发出警报。 3.统计入侵发生的人次。 4.系统可以开启和关闭。 为了便于操作,这里选用了遥控开关来开启或关闭防御入侵系统。同时为了节约成本,我们选择掌控板作为主控,免去了显示屏、蜂鸣器及 LED 灯的配备。具体用到的器材如下: 材料清单
【制作过程】 步骤1 设备连线 我们需要用到若干个红外热释电运动传感器,放在房屋四周。我手头只有两个,就都用上了,其中一个是 BOSON 的传感器,效果是一样的。 红外接收模块接到 P0。两个红外热释电运动传感器分别接在 P1 和 P2 即可。注意这款扩展板需要反插掌控板!连接好如下所示: 步骤2 加载扩展 打开 Mind+ 软件,切换到上传模式。选择左下角的“扩展”,在“主控板”类别下选择“掌控板”。 选择“通信模块”下的“红外接收模块”。 将“功能模块”下的“多线程”也添加到项目中。 步骤3 编写代码 我们首先编写最核心的入侵检测功能。因为有多个红外热释电运动传感器,任何一个检测到入侵都需要发出警报。所以我们用“或”这个条件。当 P1 与 P2 两个任何一个检测到入侵都发出警报,即播放警报音符,点亮红色警报灯。如果没有检测到入侵就把 LED 灯熄灭。我们用子线程来实现入侵检测的功能。 因为要统计入侵的次数,所以需要创建一个数字类型的变量“次数”来统计。另外红外接收模块接收到的信息也需要进行判断,因此也创建一个字符串类型的变量“按钮值”。 次数统计功能是这样实现的。在子线程开启时先清零,这样统计的就是开启入侵探测器到目前为止入侵的次数,而不是一直累加。然后每当检测到入侵就把“次数”加一,这样就能统计出入侵人次了。 接着编写主程序。 主程序很简单,不停接收红外接收模块收到的值并进行判断。如果按钮 ON 按下,则打开入侵探测器,即启动子线程。如果按钮 OFF 按下则关闭系统。因为系统关闭状态下是不进行检测的,所以需要提醒用户是关掉的,用绿色 LED 来提示用户系统已经关闭。 为什么要用子线程?因为入侵检测是要不停进行的,在一个循环里。如果直接把循环放在主程序中,那就不能一直处理红外接收模块接收到的信息了。也就是无法关闭探测器。而子线程是相对独立运行的一段程序,不会受到影响。 步骤4 设计造型 找一个合适大小的纸盒,挖几个孔。一个给掌控板屏幕和LED,一个放红外接收模块,一个放红外热释电运动传感器。 把器材都装进盒子里。这里用充电宝供电。 完成后的造型是这样的: 红外热释电运动传感器需要放在不同方向,这样能最大限度检测各个方位的入侵。 附件 入侵防御系统.sb3 【总结】 1.入侵检测的基本功能已经实现。但是红外热释电运动传感器无法区分是人还是动物,运动的动物也会触发警报。所以可能还需要辅助人工观察,或者加个摄像头。 2.造型方面有改进的空间。这个显示屏应该是放在室内的。后期可以用激光切割设计一个大一点的房间造型,这样呈现效果会好一些。 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed