#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <DHT.h>
#define type DHT22
#define pin 7
// Canvas size
const int a = 128;
const int b = 64;
const int reset = -1;
// Create display
DHT dht(type,pin);
Adafruit_SSD1306 display(a, b, &Wire, reset);
void setup() {
Serial.begin(115200);
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println("SSD1306 allocation failed");
for (;;)
; // Don't proceed, loop forever
}
display.display();
dht.begin();
delay(500);
display.clearDisplay();
delay(200);
}
void display_text(String text, int x, int y) {
display.setTextSize(1); // Normal 1:1 pixel scale
display.setTextColor(WHITE); // Draw white text
display.setCursor(x, y); // Start at top-left corner
display.println(text);
display.display();
display.clearDisplay();
}
void loop() {
float T =dht.readTemperature();
float H =dht.readHumidity();
if(isnan(T) || isnan(H)){
display_text("Error getting data!!!",0,0);
}
else{
display_text("DHT22 data:",0,0);
display_text("Temperature:"+String(T)+"c",0,15);
display_text("Humidity:"+String(H)+"%",0,30);
}
}