No title

 #include <Wire.h>

#include <Adafruit_GFX.h>

#include <Adafruit_SSD1306.h>  

#include <Adafruit_Sensor.h>

#include "DHT.h"

#include <SPI.h>

#include <SD.h>


#define SCREEN_WIDTH 128

#define SCREEN_HEIGHT 64

#define OLED_RESET 4


Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT);


#define DHTPIN 2

#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);


// SD card CS pin

#define SD_CS 10


File dataFile;


void setup() {

  Serial.begin(115200);


  dht.begin();


  // OLED init

  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);

  display.clearDisplay();

  display.setTextColor(SSD1306_WHITE);


  // SD card init

  Serial.println("Initializing SD card...");

  if (!SD.begin(SD_CS)) {

    Serial.println("SD card failed or not present!");

  } else {

    Serial.println("SD card ready.");

    

    // Create file header (optional)

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

    if (dataFile) {

      dataFile.println("Temperature,Humidity");

      dataFile.close();

    }

  }

}


void loop() {

  delay(2000);


  float t = dht.readTemperature();

  float h = dht.readHumidity();


  if (isnan(h) || isnan(t)) {

    Serial.println("Failed to read from DHT sensor!");

    return;

  }


  Serial.print("Temp: ");

  Serial.print(t);

  Serial.print(" C  Humidity: ");

  Serial.println(h);


  // ================= OLED DISPLAY =================

  display.clearDisplay();


  display.setTextSize(1);

  display.setCursor(0,7);

  display.print("Temperature:");


  display.setTextSize(2);

  display.setCursor(0,16);

  display.print(t);

  display.print(" C");


  display.setTextSize(1);

  display.setCursor(0,37);

  display.print("Humidity:");


  display.setTextSize(2);

  display.setCursor(0,50);

  display.print(h);

  display.print(" %");


  display.display();


  // ================= SD CARD SAVE =================

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


  if (dataFile) {

    dataFile.print(t);

    dataFile.print(",");

    dataFile.println(h);

    dataFile.close();


    Serial.println("Data saved to SD card.");

  } else {

    Serial.println("Error opening file!");

  }

}

Post a Comment

Previous Post Next Post

Contact Form