#include <GxEPD2_BW.h> // GxEPD2 library for black/white displays
#include <DHT.h> // DHT sensor library
#include <Adafruit_GFX.h> // Graphics library required by GxEPD2
// Pin definitions for 2.9-inch e-Paper (adjust as needed)
#define EPD_CS 10 // Chip Select
#define EPD_DC 9 // Data/Command
#define EPD_RST 8 // Reset
#define EPD_BUSY 7 // Busy
// DHT22 configuration
#define DHTPIN 2 // DHT22 data pin
#define DHTTYPE DHT22 // Sensor type
// Initialize e-Paper display (GxEPD2_290 is for 2.9" 296x128 BW display)
GxEPD2_BW<GxEPD2_290, GxEPD2_290::HEIGHT> display(GxEPD2_290(EPD_CS, EPD_DC, EPD_RST, EPD_BUSY));
// Initialize DHT sensor
DHT dht(DHTPIN, DHTTYPE);
void setup() {
// Start serial communication
Serial.begin(9600);
// Initialize DHT sensor
dht.begin();
// Initialize e-Paper display
display.init(115200); // Serial baud rate for debug, can be omitted
display.setRotation(1); // Adjust rotation: 0-3 (1 = landscape)
display.setTextColor(GxEPD_BLACK);
display.setTextSize(2);
display.setFullWindow(); // Set full refresh mode
}
void loop() {
// Read temperature and humidity
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
// Check if readings are valid
if (isnan(humidity) || isnan(temperature)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
// Clear display buffer
display.fillScreen(GxEPD_WHITE);
// Display temperature
display.setCursor(10, 20);
display.print("Temp: ");
display.print(temperature);
display.print(" C");
// Display humidity
display.setCursor(10, 50);
display.print("Hum: ");
display.print(humidity);
display.print(" %");
// Update display
display.display(); // Full refresh
// Print to serial monitor for debugging
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.print(" C, Humidity: ");
Serial.print(humidity);
Serial.println(" %");
// Wait 10 seconds before next reading
delay(10000);
}
Loading
epaper-2in9
epaper-2in9