什么是 PIR 传感器?

PIR 传感器,全称为“Passive Infrared Sensor”,又称“人体红外线传感器”,是一种可以探测人体热量的电子元件。它通过探测周围环境中的红外线辐射来感知人体的存在,因此通常被用作安防领域中的移动侦测器。

python rc5红外 pir红外_硬件工程

 

PIR 传感器一般由红外线探测器、信号处理器、镜头等部件组成。当有物体(通常是人体)进入传感器感知范围时,红外线探测器会感知到周围环境中的红外线辐射的变化,并将这个信号传递给信号处理器进行处理。如果处理器检测到辐射的变化达到了设定的阈值,它就会触发警报或其他预定的操作。

PIR 传感器广泛应用于各种领域,包括安防、智能家居、自动化控制等。在安防领域,PIR 传感器常常被用于探测入侵者,可以配合其他安防设备,如报警器、监控摄像头等,提高整个安防系统的效能。

PIR 传感器能检测到什么?

PIR 传感器主要用于检测人体的存在,具体来说,它可以检测到发出红外线辐射的物体,包括人体、动物、车辆等。当一个物体进入传感器的感知范围内,它就会感知到这个物体发出的红外线辐射的变化,并据此判断是否有人体或动物等物体进入。

python rc5红外 pir红外_python rc5红外_02

 

需要注意的是,PIR 传感器对红外线辐射的灵敏度非常高,因此它还可以检测到一些在室温下发出的较强的红外线辐射的物体,例如热水器、电视等电器设备。这些设备在运行时会产生较大的热量,PIR 传感器可以通过感知它们发出的辐射来判断它们的状态。

需要注意的是,PIR 传感器并不会直接探测物体的形状、大小或颜色等特征,而是仅仅依靠红外线辐射的变化来判断物体的存在。因此,在使用 PIR 传感器时需要合理安置和调节,以避免误判和漏判。

Grove – mini PIR 人体运动传感器

python rc5红外 pir红外_嵌入式硬件_03

 

Grove – mini PIR 人体运动传感器是一种紧凑、低功耗且经济高效的 PIR 传感器(尺寸:20mmx20mmx12mm),适用于检测距离要求相对较小的应用场景。

理论检测距离可达3m至5m,但是,推荐最佳检测距离2m,最佳温度25°C。

传感器的灵敏度是可调的,电路板背面有一个预留的引脚,以便您可以焊接滑动变阻器来调整灵敏度。如果您认为灵敏度不够,这里有一个技巧,将塑料盖向上拖动一点将有助于增强灵敏度。

案例:防盗入侵监测

功能介绍:利用Mini IR 运动传感器可以检测特定区域是否有人,如果有人经过则触发警报装置!

硬件清单如下:

python rc5红外 pir红外_python rc5红外_04

Seeeduino Lotus

python rc5红外 pir红外_硬件工程_05

 Grove - mini PIR motion sensor

python rc5红外 pir红外_单片机_06

 Grove - Piezo Buzzer

python rc5红外 pir红外_硬件工程_07

Grove - Red LED

第一部分,硬件安装

  • 将Grove-mini PIR 运动传感器连接到 Lotus主控板D2接口上,
  • 将Grove - Red LED 模块连接到 Lotus主控板D4接口上,
  • 将Grove - Piezo Buzzer 模块连接到Lotus主控板D5接口上,如下图所示。

python rc5红外 pir红外_硬件工程_08

 

第二部分,编写Arduino程序

编写Arduino程序,当有人经过时蜂鸣器和Led灯报警,代码如下:

#define PIR_MOTION_SENSOR 2 //Use pin 2 to receive the signal from the module

int BuzzerPin = 5;     // set D5 as buzzer
int LED_RAD = 4;       // set D4 as LED

void setup() {
    Serial.begin(9600);
    pinMode(PIR_MOTION_SENSOR, INPUT); 
    pinMode(BuzzerPin, OUTPUT); 
    pinMode(LED_RAD, OUTPUT); 
}

void loop() {

    if (digitalRead(PIR_MOTION_SENSOR)) { //判断如果有人经过
        analogWrite(BuzzerPin, 100);  // 让蜂鸣器发声
        digitalWrite(LED_RAD, HIGH);  // 让Led灯为高电平状态,并保持3秒钟
        delay(3000);
        analogWrite(BuzzerPin, 0); // 让蜂鸣器停止发声
        digitalWrite(LED_RAD, LOW); // 让Led灯为低电平状态,并保持4秒钟
        delay(4000);
    }

}

这是一个简单的Arduino程序,使用一个PIR运动传感器来探测运动并使用一个蜂鸣器和LED灯来发出声音和光信号。

#define PIR_MOTION_SENSOR 2 //Use pin 2 to receive the signal from the module

 

此代码,定义PIR运动传感器引脚,常量PIR_MOTION_SENSOR 为2号引脚,

int BuzzerPin = 5;     // set D5 as buzzer
int LED_RAD = 4;       // set D4 as LED

接下来定义了两个输出引脚:一个是变量BuzzerPin,用于连接蜂鸣器,另一个是变量LED_RAD,用于连接LED灯。

void setup() {
    Serial.begin(9600);
    pinMode(PIR_MOTION_SENSOR, INPUT); 
    pinMode(BuzzerPin, OUTPUT); 
    pinMode(LED_RAD, OUTPUT); 
}

在setup()函数中,通过调用pinMode()函数来设置每个引脚的模式。将PIR_MOTION_SENSOR引脚设置为INPUT输入模式,将BuzzerPin和LED_RAD引脚设置为OUTPUT输出模式。

void loop() {

    if (digitalRead(PIR_MOTION_SENSOR)) { //判断如果有人经过
        analogWrite(BuzzerPin, 100);  // 让蜂鸣器发声
        digitalWrite(LED_RAD, HIGH);  // 让Led灯为高电平状态,并保持3秒钟
        delay(3000);
        analogWrite(BuzzerPin, 0); // 让蜂鸣器停止发声
        digitalWrite(LED_RAD, LOW); // 让Led灯为低电平状态,并保持4秒钟
        delay(4000);
    }

}

在loop()函数中,使用digitalRead()函数读取PIR运动传感器引脚的状态。如果引脚状态为HIGH,则表示检测到人的运动。

在这种情况下,程序会执行以下操作:

  • 使用analogWrite()函数向BuzzerPin引脚发送PWM信号,以便控制蜂鸣器的音量(在这里是100)。
  • 将LED_RAD引脚设置为HIGH,点亮LED灯。
  • 使用delay()函数暂停3秒钟。
  • 使用analogWrite()函数将BuzzerPin引脚的PWM信号设置为0,停止蜂鸣器发声。
  • 将LED_RAD引脚设置为LOW,关闭LED灯。
  • 使用delay()函数延时4秒钟,然后重复检测运动。

因此,当检测到运动时,程序将发出声音和光信号,以警示用户。