采用DHT11、ESP8266和Blinker写段代码,实现对温湿度监控
时间: 2024-04-08 10:29:20 浏览: 122
当使用DHT11传感器、ESP8266模块和Blinker库时,你可以按照以下代码示例来实现温湿度监控:
```c
#include <Blinker.h>
#include <DHT.h>
#define DHTPIN 2 // DHT11连接到ESP8266的引脚
#define DHTTYPE DHT11 // DHT11型号
DHT dht(DHTPIN, DHTTYPE);
BlinkerButton btn;
char auth[] = "Your_Auth_Key"; // 替换为你的Blinker授权码
void button1_callback(const String &state)
{
if (state == BLINKER_CMD_ON) {
Serial.println("Button1 ON");
// 执行相应操作
} else if (state == BLINKER_CMD_OFF) {
Serial.println("Button1 OFF");
// 执行相应操作
}
}
void setup() {
Serial.begin(115200);
dht.begin();
Blinker.begin(auth);
btn.attach(button1_callback);
}
void loop() {
Blinker.run();
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
if (isnan(humidity) || isnan(temperature)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.print("%\t");
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println("°C");
Blinker.data("humidity").pub(humidity); // 发送湿度数据到Blinker云平台
Blinker.data("temperature").pub(temperature); // 发送温度数据到Blinker云平台
delay(2000);
}
```
上述代码中,我们使用了DHT库来读取DHT11传感器的温湿度数据。在`setup()`函数中,我们初始化了DHT传感器和Blinker库,并通过`btn.attach()`函数附加了一个按钮回调函数`button1_callback`。
在`loop()`函数中,我们首先运行`Blinker.run()`以保持与Blinker云平台的连接。然后,我们读取DHT11传感器的温湿度数据,并将其发送到Blinker云平台。最后,我们使用`delay(2000)`延迟2秒,以避免数据发送过于频繁。
请注意,你需要替换代码中的`Your_Auth_Key`为你在Blinker平台上获得的授权码。此外,还需要根据你的硬件连接修改`DHTPIN`为DHT11传感器连接到ESP8266的引脚。
这段代码将使你能够实时监控温度和湿度数据,并将其发送到Blinker云平台。希望对你有所帮助!
阅读全文