ESP8266实现按键K1按下后,当温度大于等于25 oC亮绿灯状态,小于25 oC亮红灯状态;当湿度大于60蜂鸣器响,湿度小于等于60蜂鸣器不响代码。
时间: 2023-11-08 21:59:20 浏览: 143
以下是ESP8266实现按键K1按下后,当温度大于等于25 oC亮绿灯状态,小于25 oC亮红灯状态;当湿度大于60蜂鸣器响,湿度小于等于60蜂鸣器不响的代码:
```
#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <ESP8266WiFi.h>
#define DHTPIN D4
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
const int buzzerPin = D3;
const int greenLedPin = D1;
const int redLedPin = D2;
const int buttonPin = D0;
boolean buttonState = 0;
void setup() {
pinMode(buzzerPin, OUTPUT);
pinMode(greenLedPin, OUTPUT);
pinMode(redLedPin, OUTPUT);
pinMode(buttonPin, INPUT);
WiFi.mode(WIFI_OFF);
WiFi.forceSleepBegin();
delay(1);
}
void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
if (temperature >= 25) {
digitalWrite(greenLedPin, HIGH);
digitalWrite(redLedPin, LOW);
} else {
digitalWrite(greenLedPin, LOW);
digitalWrite(redLedPin, HIGH);
}
if (humidity > 60) {
tone(buzzerPin, 1000, 1000);
} else {
noTone(buzzerPin);
}
} else {
digitalWrite(greenLedPin, LOW);
digitalWrite(redLedPin, LOW);
noTone(buzzerPin);
}
delay(100);
}
```
在上面的代码中,我们首先包含了DHT和ESP8266WiFi库。然后定义了DHT11传感器的引脚和类型,以及蜂鸣器、绿灯、红灯和按钮的引脚。
在setup()函数中,我们将蜂鸣器、绿灯、红灯和按钮的引脚设置为输出或输入,并关闭了WiFi模块。
在loop()函数中,我们首先读取按钮的状态。如果按钮被按下,我们读取温度和湿度,并根据温度和湿度的值控制绿灯、红灯和蜂鸣器的状态。如果按钮没有被按下,我们将绿灯、红灯和蜂鸣器的状态设置为关闭。
最后,我们在loop()函数中添加了一个延迟,以避免程序过于频繁地运行。
阅读全文