#include <SPI.h>
#include <DHT.h>
#include <SD.h>
#define DHTPIN 2 // connect "DHT22 SDA" to "Arduino D2"
#define DHTTYPE DHT22 // Specify DHT22 sensor type
#define CSPIN 10 //connect "SDcards CS" to "Arduino D10"
DHT dht(DHTPIN, DHTTYPE);
File dataFile;
void setup() {
Serial.begin(9600);
dht.begin();
// Initialising the SD card
if (!SD.begin(CSPIN)) {
Serial.println("SD card initialisation failed.");
return;
}
Serial.println("SD card has been initialised.");
}
void loop() {
// Read temperature and humidity
float h = dht.readHumidity();
float t = dht.readTemperature();
// Check that the data has been successfully read
if (isnan(h) || isnan(t)) {
Serial.println("Sensor readings failed!");
return;
}
// show data
Serial.print("temperature: ");
Serial.print(t);
Serial.print("°C ");
Serial.print("humidity: ");
Serial.print(h);
Serial.println("%");
// Save data to SD card
dataFile = SD.open("datalog.txt", FILE_WRITE);
if (dataFile) {
dataFile.print("temperature: ");
dataFile.print(t);
dataFile.print("°C ");
dataFile.print("humidity: ");
dataFile.print(h);
dataFile.println("%");
dataFile.close();
Serial.println("Data has been saved.");
} else {
Serial.println("Could not open data file.");
}
delay(1000); // wait for 1sec
}