无线通信用按键S1按下检测dht11数据,当温度高于20°,LED为呼吸灯状态。LCD屏幕温度低显示温度,湿度,当温度高于20度显示报警两字,低于20度显示正常状态四个字完整代码
时间: 2024-10-23 11:17:08 浏览: 9
DHT11.zip_DHT11_温度湿度检测
这是一个基于DHT11温湿度传感器、LED灯和LCD屏幕的简单物联网项目示例,使用单片机(如Arduino)控制,并通过按键S1触发数据获取。以下是伪代码形式的大致框架:
```cpp
#include <Wire.h> // DHT11库
#include <LiquidCrystal.h> // LCD库
#include <Keypad.h> // 键盘库
// 定义硬件连接
const int DHT_PIN = 2; // DHT11数据线
const int LED_BREATH_PIN = 9; // 呼吸灯
const int LCD_RS = 7; // LCD数据线
const int LCD_EN = 6; // LCD使能信号
const int LCD_D4 = 5; // LCD第4根数据线
const int LCD_D5 = 4; // LCD第5根数据线
const int LCD_D6 = 3; // LCD第6根数据线
const int LCD_D7 = 2; // LCD第7根数据线
const int KEY_S1 = 10; // 按键S1
// 初始化硬件
DHT dht(DHT_PIN);
LiquidCrystal lcd(LCD_RS, LCD_EN, LCD_D4, LCD_D5, LCD_D6, LCD_D7);
Keypad keypad(KEY_S1, KEYPAD_ROWS, KEYPAD_COLS, ROW_PINS, COL_PINS);
void setup() {
Serial.begin(9600); // 开启串口调试
pinMode(LED_BREATH_PIN, OUTPUT); // 设置LED为输出
}
void loop() {
if (keypad.getKey()) { // 如果按键S1被按下
float temperature = dht.readTemperature(); // 读取DHT11数据
int humidity = dht.readHumidity();
if (temperature > 20) { // 温度超过20℃
lcd.setCursor(0, 0); // 清屏
lcd.print("ALARM!"); // 显示"ALARM!"
blinkLED(LED_BREATH_PIN); // LED开启呼吸灯模式
} else {
lcd.clear(); // 温度低于20℃,显示正常状态
lcd.print("正常:");
lcd.print(temperature, 1);
lcd.print("°C");
lcd.setCursor(0, 1);
lcd.print("湿度:");
lcd.print(humidity, 1);
blinkLED(LED_BREATH_PIN, false); // LED关闭呼吸灯模式
}
}
delay(1000); // 等待一段时间再检查一次
}
void blinkLED(int pin, bool on = true) {
for (int i = 0; i <= 5; ++i) {
digitalWrite(pin, on);
delay(100);
digitalWrite(pin, !on);
delay(100);
}
}
```
注意,这段代码是一个简化的版本,实际编写时需要将库文件引入并确保硬件连接正确。如果你正在使用Python或其他语言,代码会有所不同。
阅读全文