#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <DHT.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
void updateDisplay(float temperature, float humidity){
// Очищаем дисплей
display.clearDisplay();
// Рисуем контуры
display.drawRect(0, 0, 128, 64, SSD1306_WHITE);
display.drawLine(0, 32, 128, 32, SSD1306_WHITE);
// Всё, что касается температуры
display.setTextSize(2);
display.setTextColor(SSD1306_WHITE);
display.setCursor(5, 10);
display.print(F("Temp: "));
display.setTextSize(1);
display.setCursor(75, 15);
display.print(F(String(temperature,1).c_str()));
display.drawCircle(110, 15, 2, SSD1306_WHITE);
display.setCursor(115, 15);
display.print(F("C"));
// Всё, что касается влажности
display.setTextSize(1);
display.setCursor(5, 48);
display.print(F("Humidity: "));
display.print(F(String(humidity,1).c_str()));
display.print(F(" %"));
// Обновляем дисплей
display.display();
}
void setup() {
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}
dht.begin();
}
void loop() {
float currentTemperature = dht.readTemperature();
float currentHumidity = dht.readHumidity();
updateDisplay(currentTemperature,currentHumidity);
delay(1000);
}
Loading
esp32-c3-devkitm-1
esp32-c3-devkitm-1