arduino用温湿度,显示屏,风扇,水位器,led.做创新实验代码
时间: 2024-01-11 20:02:27 浏览: 19
好的,下面是一个简单的Arduino程序,可以读取温湿度传感器数据并将其显示在LCD屏幕上。当温度超过一定阈值时,将打开风扇。同时,当水位器检测到水位过高时,将打开LED灯。
```C++
#include <DHT.h> // 导入DHT库
#include <LiquidCrystal.h> // 导入LCD库
// DHT传感器引脚和类型定义
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
// LCD屏幕引脚定义
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
// 风扇和水位器引脚定义
int fanPin = 8;
int waterSensorPin = 9;
int ledPin = 10;
void setup() {
// 初始化串口
Serial.begin(9600);
// 初始化DHT传感器
dht.begin();
// 初始化LCD屏幕
lcd.begin(16, 2);
// 初始化风扇和水位器引脚
pinMode(fanPin, OUTPUT);
pinMode(waterSensorPin, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop() {
// 读取温湿度传感器数据
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
// 如果读取失败,则返回错误信息
if (isnan(humidity) || isnan(temperature)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
// 在串口和LCD屏幕上显示温湿度数据
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.print("% ");
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println("C ");
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Humidity: ");
lcd.print(humidity);
lcd.print("%");
lcd.setCursor(0, 1);
lcd.print("Temp: ");
lcd.print(temperature);
lcd.print("C");
// 如果温度超过30度,则打开风扇
if (temperature > 30) {
digitalWrite(fanPin, HIGH);
} else {
digitalWrite(fanPin, LOW);
}
// 如果水位器检测到水位过高,则打开LED灯
if (digitalRead(waterSensorPin) == HIGH) {
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}
// 延迟2秒
delay(2000);
}
```
注意,这只是一个简单的示例程序,您需要根据您的硬件配置进行修改。您还需要确保您已正确安装所需的库。