@iOT_India

// FOR CONNECTIONS GO THROUGH THE CODE ONCE...

//CODE :
// Libraries
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <DHT.h>

// OLED display settings
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET    -1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

// DHT sensor settings
#define DHTPIN D10
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);

// Variables
int h;  // Stores humidity value
int t;  // Stores temperature value

void setup() {
    Serial.begin(9600);
    Serial.println("Temperature and Humidity Sensor Test");
    
    pinMode(LED_BUILTIN, OUTPUT); // initialize digital pin LED_BUILTIN as an output.

    dht.begin();
    
    if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
        Serial.println(F("SSD1306 allocation failed"));
        for(;;); // Don't proceed, loop forever
    }
    
    display.display();
    delay(2000); // Pause for 2 seconds
    display.clearDisplay();
}

void loop() {
    // Read data and store it to variables h (humidity) and t (temperature)
    h = dht.readHumidity();
    t = dht.readTemperature();
    
    // Print temp and humidity values to serial monitor
    Serial.print("Humidity: ");
    Serial.print(h);
    Serial.print(" %, Temp: ");
    Serial.print(t);
    Serial.println(" °C");

    // Display the temperature and humidity on the OLED
    display.clearDisplay();
    
    display.setTextSize(2);      // Normal 1:1 pixel scale
    display.setTextColor(SSD1306_WHITE); // Draw white text
    display.setCursor(0, 0);     // Start at top-left corner
    display.print("@iOT_India");

    display.setCursor(0, 30);
    display.print("TEMP.: ");
    display.print(t);
    display.println("C");
    
    display.print("HUMI.: ");
    display.print(h);
    display.println("%");

    display.display();
    
    
    digitalWrite(LED_BUILTIN, HIGH);  // turn the LED on (HIGH is the voltage level)
    delay(500);                      
    digitalWrite(LED_BUILTIN, LOW);   // turn the LED off by making the voltage LOW
    delay(500);                     
}