在本篇文章中,我们将讨论在夜间使用PIR传感器和Arduino制作家庭安全警报系统。夜间安全灯仅在天黑且检测到运动时才会打开。灯和蜂鸣器在黑暗和活动时会亮起。有光时,即使检测到运动,灯也会关闭。
所需的组件 ● Arduino UNO开发板 ● PIR传感器HC-SR501 ● LED指示灯 ● 蜂鸣器 ● 9V电池
连接电路图
PIR传感器 被动红外传感器(PIR Sensor)比这类系统中介绍的许多其他传感器(例如光电管、FSR和倾斜开关)要复杂得多,因为有多个变量会影响传感器的输入和输出。
PIR传感器本身具有两个插槽,每个插槽均由对IR敏感的特殊材料制成。这里使用的镜帽并没有做太多事情,因此我们看到两个插槽可以“看到”一定距离(基本上是传感器的灵敏度)。当传感器闲置时,两个插槽都检测到相同量的IR,即从房间或墙壁或室外辐射的环境量。当像人或动物这样的温暖物体经过时,它首先会拦截PIR传感器的一半,这会在两半之间产生正的差分变化。当身体离开感应区域时,情况发生相反的变化,从而传感器产生负的差分变化。这些变化脉冲是检测到的。
项目工作过程 该电路实际上是一个暗度有效的开关,用于测量环境光水平,并且仅在环境光水平低于阈值时才启用系统。这里,LDR(光敏电阻)用于测量光强度。当在其传感器输入端口上检测到“逻辑高(H)”电平信号时,将触发警报系统。
可以用来检测入侵的最佳传感器是被动红外(PIR)传感器。当人体经过时,PIR传感器通过周围环境温度的变化来检测人体的运动,并当它检测到移动目标时,有效地控制开关。
源代码/程序 下面给出了使用PIR传感器和Arduino进行夜间家庭安全警报系统的代码。复制代码并将其粘贴到您的Arduino IDE,然后编译并最终将其上传到Arduino开发板。 - int ledPin = 5; // choose the pin for the LED
- int Buzzer = 6; // choose the pin for the Buzzer
- int inputPin = 2; // choose the input pin (for PIR sensor)
- int pirState = LOW; // we start, assuming no motion detected
- int val = 0; // variable for reading the pin status
- void setup() {
- pinMode(ledPin, OUTPUT); // declare LED as output
- pinMode(Buzzer, OUTPUT); // declare Buzzer as output
- pinMode(inputPin, INPUT); // declare sensor as input
- Serial.begin(9600);
- }
- void loop(){
- val = digitalRead(inputPin); // read input value
- int value_ldr = analogRead(A0); // read LDR value
- if((300>value_ldr) && ( val==HIGH) ){
- if (val == HIGH) { // check if the input is HIGH
- digitalWrite(ledPin, HIGH); // turn LED ON
- digitalWrite(Buzzer, 1); // turn Buzzer ON
- delay(5000);
- if (pirState == LOW) {
- // we have just turned on
- Serial.println("Motion detected!");
- // We only want to print on the output change, not state
- pirState = HIGH;
- }
- } else {
- digitalWrite(ledPin, LOW); // turn LED OFF
- digitalWrite(Buzzer, 0); // turn Buzzer OFF
- if (pirState == HIGH){
- // we have just turned of
- Serial.println("Motion ended!");
- // We only want to print on the output change, not state
- pirState = LOW;
- }
- }
- }
- }
复制代码
|