基于esp8266+DHT11实现温湿度报警
时间: 2023-12-24 14:05:39 浏览: 156
1. 硬件准备:
- ESP8266开发板
- DHT11温湿度传感器
- 蜂鸣器
- 杜邦线
- 面包板
2. 软件准备:
- Arduino IDE
- ESP8266库
- DHT库
3. 接线:
将DHT11的VCC接到ESP8266的3.3V,将DHT11的GND接到ESP8266的GND,将DHT11的DATA接到ESP8266的D1口,将蜂鸣器的正极接到ESP8266的D2口,将蜂鸣器的负极接到ESP8266的GND。
4. 代码编写:
```
#include <ESP8266WiFi.h>
#include <DHT.h>
#define DHTPIN D1 // DHT11 DATA引脚连接ESP8266的D1口
#define DHTTYPE DHT11 // DHT11传感器类型
#define buzzerPin D2 // 蜂鸣器连接ESP8266的D2口
const char* ssid = "你的WiFi名称"; // WiFi名称
const char* password = "你的WiFi密码"; // WiFi密码
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
pinMode(buzzerPin, OUTPUT);
digitalWrite(buzzerPin, HIGH);
delay(1000);
digitalWrite(buzzerPin, LOW);
delay(1000);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
}
void loop() {
delay(2000);
float h = dht.readHumidity(); // 读取湿度
float t = dht.readTemperature(); // 读取温度
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
Serial.print("Humidity: ");
Serial.print(h);
Serial.print("% Temperature: ");
Serial.print(t);
Serial.println("°C");
if (t > 28) { // 温度超过28°C时触发报警
digitalWrite(buzzerPin, HIGH);
delay(1000);
digitalWrite(buzzerPin, LOW);
delay(1000);
}
}
```
5. 上传代码:
将ESP8266通过USB连接到计算机,打开Arduino IDE,选择正确的开发板和端口,将代码上传到ESP8266中。
6. 测试:
将DHT11放置在需要检测的环境中,开启串口监视器,可以看到ESP8266每隔2秒钟会读取一次温湿度数据并打印到串口中,当温度超过28°C时,蜂鸣器会响起一次,表示触发了报警。
阅读全文