如何使用Arduino控制OLED显示屏显示温湿度数据?
时间: 2024-10-17 16:13:35 浏览: 44
MLX90614_with_OLED_SSD1351_Thermometer_Thermometer_arduino_MLX90
5星 · 资源好评率100%
在Arduino上控制OLED显示屏显示温湿度数据通常需要以下几个步骤:
1. **硬件准备**:
- Arduino开发板
- 一块支持I2C通信的OLED显示屏,例如SSD1306、 ili9341等
- 温湿度传感器,如DHT11、DHT22或AM2302
- 如果OLED不是I2C接口,可能还需要I2C扩展模块
2. **软件库安装**:
- 首先,在Arduino IDE中安装相应的库,比如Adafruit库(对于SSD1306)和DHT库(用于读取温湿度传感器的数据)。
3. **编写代码**:
```cpp
#include <Wire.h>
#include <Adafruit_SSD1306.h>
#include <DHT.h>
Adafruit_SSD1306 display = Adafruit_SSD1306(128, 32); // OLED屏幕尺寸,宽度128px,高度32px
DHT dht(DHTpin, DHT_TYPE_DHT11); // 根据使用的传感器选择DHT类型,DHT11 或 DHT22
void setup() {
Serial.begin(9600);
display.begin(SSD1306_I2C); // 初始化I2C连接
delay(1500); // 等待OLED稳定
clearDisplay(); // 清屏
}
void loop() {
float humidity, temperature;
if (dht.readData(&humidity, &temperature) == DHT_OK) { // 检查读取是否成功
String text = "温度: " + String(temperature) + "℃\n" +
"湿度: " + String(humidity) + "%";
setText(text);
} else {
Serial.println("读取失败");
}
delay(2000); // 每隔两秒更新一次数据显示
}
void clearDisplay() {
for(int i=0; i<display.width(); i++) {
display.pixel(i, 0, 0);
}
display.display();
}
void setText(String text) {
display.setTextSize(1);
display.setCursor(0, 0);
display.print(text);
display.display();
}
```
4. **程序运行**:
将这段代码上传到Arduino,它会在循环中每隔一段时间读取并显示温湿度数据。如果传感器读取失败,会打印错误信息。
阅读全文