使用arduino写一个温湿度监测系统代码,并添加一个灯,使其超过固定的阀值使灯进行闪烁
时间: 2024-02-15 13:03:10 浏览: 108
好的,我可以为您提供一个简单的Arduino代码,来实现温湿度监测和灯闪烁的功能。请注意,您需要连接一个DHT11温湿度传感器和一个LED灯到您的Arduino板上。以下是代码:
```
#include <DHT.h>
#define DHTPIN 2 // 定义DHT11数据引脚
#define DHTTYPE DHT11 // 定义DHT11型号
DHT dht(DHTPIN, DHTTYPE);
int ledPin = 13; // 定义LED灯引脚
int ledState = LOW; // LED灯状态变量
unsigned long previousMillis = 0; // 记录上一次LED灯状态变化的时间
const long interval = 1000; // LED灯状态变化的时间间隔
void setup() {
Serial.begin(9600); // 初始化串口通信
pinMode(ledPin, OUTPUT); // 设置LED灯引脚为输出模式
dht.begin(); // 初始化DHT11传感器
}
void loop() {
float humidity = dht.readHumidity(); // 读取湿度值
float temperature = dht.readTemperature(); // 读取温度值
// 检查DHT11传感器是否正常工作
if (isnan(humidity) || isnan(temperature)) {
Serial.println("无法读取DHT11传感器数据!");
return;
}
// 打印温湿度值到串口
Serial.print("湿度: ");
Serial.print(humidity);
Serial.print("%\t");
Serial.print("温度: ");
Serial.print(temperature);
Serial.println("℃");
// 检查温度是否超过阈值,并控制LED灯闪烁
if (temperature > 25) {
unsigned long currentMillis = millis(); // 获取当前时间
if (currentMillis - previousMillis >= interval) { // 检查时间间隔是否到达
previousMillis = currentMillis; // 记录当前时间
if (ledState == LOW) {
ledState = HIGH;
} else {
ledState = LOW;
}
digitalWrite(ledPin, ledState); // 控制LED灯状态
}
} else {
digitalWrite(ledPin, LOW); // 关闭LED灯
}
delay(2000); // 延迟2秒钟,以便DHT11传感器读取数据
}
```
请注意,以上代码仅供参考,您需要根据自己的具体需求进行修改。例如,您可以更改温度阈值和LED灯闪烁的时间间隔等参数。
阅读全文