#include <Arduino.h>
#include <DHT.h>
// 定义引脚
#define DHTPIN 22 // DHT11 数据引脚连接到 22 号引脚
#define PIR 24 // HC-SR501 数据引脚连接到 24 号引脚
#define BUZZER 26 // 蜂鸣器引脚连接到 26 号引脚
// 定义DHT传感器类型
#define DHTTYPE DHT22
// 创建DHT对象
DHT dht(DHTPIN, DHTTYPE);
// 温度阈值
int temp_limit = 30;
void setup()
{
// 初始化串口
Serial.begin(115200);
// 初始化DHT传感器
dht.begin();
// 设置引脚模式
pinMode(DHTPIN, INPUT);
pinMode(PIR, INPUT);
pinMode(BUZZER, OUTPUT);
// 蜂鸣器初始化为关闭状态
digitalWrite(BUZZER, LOW);
}
void loop()
{
// 读取DHT11传感器的温度
int temperature = dht.readTemperature();
// 读取PIR传感器的状态
int pirState = digitalRead(PIR);
// 打印温度值到串口监视器
Serial.print("温度为: ");
Serial.print(temperature);
Serial.println(" *C");
// 检查温度是否超过阈值 并且 PIR传感器是否检测到人体
if (temperature > temp_limit && pirState == HIGH) {
// 触发蜂鸣器
digitalWrite(BUZZER, HIGH);
Serial.println("蜂鸣器报警!");
} else {
// 关闭蜂鸣器
digitalWrite(BUZZER, LOW);
}
// 延时1秒
delay(1000);
}