No title

 #include <Wire.h>

#include <SPI.h>

#include <SD.h>

#include <Adafruit_GFX.h>

#include <Adafruit_SSD1306.h>

#include <DHT.h>


// ===== OLED Settings =====

#define SCREEN_WIDTH 128

#define SCREEN_HEIGHT 64


Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);


// ===== DHT Sensor =====

#define DHTPIN 2

#define DHTTYPE DHT11      // Agar DHT22 use kar rahay ho to DHT22 likho


DHT dht(DHTPIN, DHTTYPE);


// ===== SD Card =====

#define SD_CS 10           // SD Card CS Pin


File dataFile;


void setup() {


  Serial.begin(9600);


  // ===== OLED Start =====

  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {

    Serial.println("OLED not found");

    while(1);

  }


  display.clearDisplay();

  display.setTextSize(1);

  display.setTextColor(WHITE);


  // ===== DHT Start =====

  dht.begin();


  // ===== SD Card Start =====

  if (!SD.begin(SD_CS)) {


    display.clearDisplay();

    display.setCursor(0,0);

    display.println("SD Card Failed");

    display.display();


    Serial.println("SD Card Failed");

    while (1);

  }


  // Create Header

  dataFile = SD.open("DATA.txt", FILE_WRITE);


  if (dataFile) {

    dataFile.println("Temperature , Humidity");

    dataFile.close();

  }


  display.clearDisplay();

  display.setCursor(0,0);

  display.println("System Ready");

  display.display();


  delay(2000);

}


void loop() {


  float humidity = dht.readHumidity();

  float temperature = dht.readTemperature();


  // Check Sensor

  if (isnan(humidity) || isnan(temperature)) {


    display.clearDisplay();

    display.setCursor(0,0);

    display.println("Sensor Error");

    display.display();


    Serial.println("Sensor Error");


    delay(2000);

    return;

  }


  // ===== OLED Display =====

  display.clearDisplay();


  display.setTextSize(2);

  display.setCursor(0,0);

  display.print("Temp:");

  display.print(temperature);

  display.println("C");


  display.setCursor(0,35);

  display.print("Hum:");

  display.print(humidity);

  display.println("%");


  display.display();


  // ===== Save to SD Card =====

  dataFile = SD.open("DATA.txt", FILE_WRITE);


  if (dataFile) {


    dataFile.print("Temperature: ");

    dataFile.print(temperature);

    dataFile.print(" C , ");


    dataFile.print("Humidity: ");

    dataFile.print(humidity);

    dataFile.println(" %");


    dataFile.close();


    Serial.println("Data Saved");

  }

  else {

    Serial.println("File Error");

  }


  delay(5000); // 5 seconds

}

Post a Comment

Previous Post Next Post

Contact Form