持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第14天,点击查看活动详情
介绍
近年来随着科技的逐渐发展,盗窃分子的作案手段也愈来愈高明,人们也逐渐认识到做好安防做的重要性。于是智能安防系统逐渐成为科技研究的重点,具有重要的应用价值和广阔的市场需求。本文针对智能安防系统展开研究,以 Arduino开发板为核心控制器结合相关传感器实现有电子密码门锁,智能窗帘,有害气体浓度实时检测以及自动报警功能。与传统的安防系统不同,我们所设计的智能安防系统的给用户提供了智能电子密码锁功能可以在输入密码的同时检测指纹是否匹配;有害气体浓度实时检测,当有害气体浓度超过指定值值时会自动打开换气装置;光感智能窗帘,当光的明亮度超过设定值自动打开窗帘,低于设定值自动拉上窗帘。本套装置价格低廉,性价比高,故具有较大的开发价值。而Arduino开发板由于其开源性,所以不仅是全球最流行的开发硬件,更是硬件开发的趋势。
系统结构
基于选择Arduino Uno开发板作为防逃课识别装置的核心,Arduino UNO是基于ATmega328P的Arduino开发板。它有14个数字输入/输出引脚(其中6个可用于PWM输出)、6个模拟输入引脚,一个16 MHz的晶体振荡器,一个USB接口,一个DC接口,一个ICSP接口,一个复位按钮。它包含了微控制器所需的一切,你只用简单地把它连接到计算机的USB接口,或者使用AC-DC适配器,再或者用电池,就可以驱动它,用方便且价格低廉。AS608模块为集成了光路和指纹处理部分的一体化指纹处理模块,该模块快速采集 图像并识别指纹特征。AS608模块采用8pin的控制接口,供电电压为3.3V(不能使用5 V供电),通信总线有两种,分别为串口通讯(TX、RX)和USB通讯(D+、D-);采用串口通讯,编程相对简单,也是比较常用的一种,但是兼容性不好;采用USB通讯,编程相对较难,但USB作为最常用的总线接口,有很好的兼容性。AS608模块为集成了光路和指纹处理部分的一体化指纹处理模块,该模块快速采集 图像并识别指纹特征。本系统中通过AS608模块实现指纹的录入。MQ-2烟雾浓度检测器可用于液化气、苯、烷、酒精、氢气、烟雾等的探测。具有灵敏度高、响应快、稳定性好、寿命长、驱动电路简单。MQ-2型烟雾传感器属于二氧化锡半导体气敏材料,属于表面离子式N型半导体。当与烟雾接触时,如果晶粒间界处的势垒受烟雾而变化,就会引起表面导电率的变化。利用这一点就可以获得这种烟雾存在的信息,烟雾的浓度越大,导电率越大,输出电阻越低,则输出的模拟信号就越大。本系统通过MQ-2烟雾传感器来检测空气中烟雾的浓度,当烟雾浓度达到一定值时开始报警并开启排烟装置。
#include <Servo.h> //库文件
int Sensor_0 = 9; //定义I/O口
int buzzer_0= 8;
Servo servo_1;
void setup() //执行一次
{
pinMode(Sensor_0, INPUT);
pinMode(buzzer_0,OUTPUT);
servo_1.attach(6);
}
void loop() { //无限循环
if (analogRead(Sensor_0) > 500) {
servo_1.write(180);
tone(buzzer_0,293)
delay(200);
} //读取烟雾传感器模拟值(气体浓度)大于500时,打开
排烟装置并用蜂鸣器发出声音频率为293的警报提示音
if (analogRead(Sensor_0) < 50) {
servo_1.write(0);
delay(200);
}
}//读取烟雾传感器模拟值(气体浓度)低于50时,关闭排烟装
置和蜂鸣器
光敏传感器是最常见的传感器之一,它在自动控制和非电量电测技术中占有非常重要的地位。我们选用的光敏传感器是光敏电阻,当光子冲击接合处就会产生电流。光敏电阻是基于半导体光电效应工作的。光敏电阻无极性,是一个电阻元件。使用时可以加直流电压,也可以加交流电压。光照时,光敏电阻很小;无光照时,光敏电阻很大。光照越强,电阻越小;光照停止,电阻又恢复原值。光谱范围是从紫外线区到红外线区。具有灵敏度高,体积小,性能稳定,价格较低等优点。本系统中通过光敏传感器实时检测当前光照强度是否高于设定值,当超过设定值时控制窗帘打开,低于设定值时控制窗帘拉上。
#include <Servo.h>
int infraredSensor_0 = 11;
int infraredSensor_1 = 10;
Servo servo_0;void setup() {
pinMode(infraredSensor_0, INPUT);
pinMode(infraredSensor_1, INPUT);
servo_0.attach(6);
}
void loop() {
if (analogRead(infraredSensor_0) > 500) {
servo_0.write(180);
delay(200);
}
if (analogRead(infraredSensor_0) < 50) {
servo_0.write(0);
delay(200);
}
}