Arduino 与DHT11和0.98寸OLED握手,Arduino代码
时间: 2024-08-10 19:00:46 浏览: 55
attiny85使用arduino在SSD1306上显示dht11的温湿度和锂电池的电量
当你想让Arduino(一种开源电子平台)与DHT11温湿度传感器和0.98英寸OLED显示屏交互,首先你需要确保已安装了必要的库,如`Adafruit_DHT`用于处理DHT11数据,以及`Adafruit_SSD1306`库用于操作OLED显示。
以下是一个简单的示例代码片段,展示了如何读取DHT11的数据并将其显示在OLED上:
```cpp
#include <Adafruit_DHT.h>
#include <Adafruit_SSD1306.h>
// DHT11连接配置
const int dhtPin = A0; // 连接到DHT11的数据引脚
Adafruit_DHT dht(DHT11, dhtPin);
// OLED屏幕配置
Adafruit_SSD1306 oled(0x3c, 128, 64); // SSD1306 OLED I2C地址
oled.begin();
void setup() {
Serial.begin(9600);
if (!dht.begin()) {
Serial.println("Failed to initialize DHT sensor!");
return;
}
oled.clearDisplay();
oled.display();
}
void loop() {
float humidity, temperature;
if (dht.read_retry(dht, temperature, humidity)) { // 尝试读取数据
oled.setCursor(0, 0); // 设置光标位置
oled.print("Temperature: ");
oled.print(temperature, 1); // 保留一位小数
oled.print("°C");
oled.setCursor(0, 15); // 移动到下一行
oled.print("Humidity: ");
oled.print(humidity, 1); // 保留一位小数
oled.print("%");
oled.display(); // 更新屏幕
delay(2000); // 每隔两秒读取一次
} else {
Serial.println("Failed to read data from DHT sensor.");
}
}
```
在这个例子中,`setup()`函数初始化硬件,然后在`loop()`函数里定期尝试从DHT11获取温度和湿度数据。如果成功,会将数据显示在OLED屏的两个行上。失败时会在串口打印错误信息。
阅读全文