Introduction
An SD (Secure Digital) card is ideal for both data storage as well as for data transfer. However, by itself, an Arduino board is not able to use SD cards. With an SD card module, this is made possible.Â
In this guide, learn to hook up an SD card module to a Arduino Pro Mini 328 - 3.3V/8 MHz, and a DHT11 temperature and humidity sensor. Learn to gather humidity readings from the DHT11 sensor which will be recorded to a text file.Â
Complete this guide to start data-logging with an SD card module and an Arduino.
In this guide, learn to hook up an SD card module to a Arduino Pro Mini 328 - 3.3V/8 MHz, and a DHT11 temperature and humidity sensor. Learn to gather humidity readings from the DHT11 sensor which will be recorded to a text file.Â
Complete this guide to start data-logging with an SD card module and an Arduino.
Tools
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
#include <SPI.h> // Include SPI library (needed for the SD card) #include <SD.h> // Include SD library #include <DHT.h> // Include DHT sensor library
-
#include <SPI.h> // Include SPI library (needed for the SD card) #include <SD.h> // Include SD library #include <DHT.h> // Include DHT sensor library #define DHTPIN 9 // DHT11 data pin is connected to Arduino pin 9 #define DHTTYPE DHT11 // DHT11 sensor is used DHT dht(DHTPIN, DHTTYPE); // Initialise DHT library
-
#include <SPI.h> // Include SPI library (needed for the SD card) #include <SD.h> // Include SD library #include <DHT.h> // Include DHT sensor library #define DHTPIN 9 // DHT11 data pin is connected to Arduino pin 9 #define DHTTYPE DHT11 // DHT11 sensor is used DHT dht(DHTPIN, DHTTYPE); // Initialize DHT library File dataFile;
-
#include <SPI.h> // Include SPI library (needed for the SD card) #include <SD.h> // Include SD library #include <DHT.h> // Include DHT sensor library #define DHTPIN 9 // DHT11 data pin is connected to Arduino pin 9 #define DHTTYPE DHT11 // DHT11 sensor is used DHT dht(DHTPIN, DHTTYPE); // Initialize DHT library File dataFile; void setup() { // Start serial communications Serial.begin(9600); while (!Serial) ; // wait for serial port to connect. Serial.print("Initialising SD card..."); if (!SD.begin()) { Serial.println("initialisation failed!"); while (1); } Serial.println("initialisation done."); delay(1000); }
-
#include <SPI.h> // Include SPI library (needed for the SD card) #include <SD.h> // Include SD library #include <DHT.h> // Include DHT sensor library #define DHTPIN 9 // DHT11 data pin is connected to Arduino pin 9 #define DHTTYPE DHT11 // DHT11 sensor is used DHT dht(DHTPIN, DHTTYPE); // Initialize DHT library File dataFile; void setup() { // Start serial communications Serial.begin(9600); while (!Serial) ; // wait for serial port to connect. Serial.print("Initialising SD card..."); if (!SD.begin()) { Serial.println("initialisation failed!"); while (1); } Serial.println("initialisation done."); delay(1000); } uint16_t line = 1; void loop() { const unsigned long fiveMinutes = 5 * 60 * 1000UL; static unsigned long lastSampleTime = 0 - fiveMinutes; // initialise such that a reading is due the first time through loop() unsigned long now = millis(); if (now - lastSampleTime >= fiveMinutes) { lastSampleTime += fiveMinutes; // add code to take temperature reading here // Reading temperature or humidity takes about 250 milliseconds! // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor) // Read temperature in degree Celsius byte Temp = dht.readTemperature(); dataFile = SD.open("DHT11Log.txt", FILE_WRITE); // if the file opened okay, write to it: if (dataFile) { Serial.print(line); Serial.print(": Temperature = "); Serial.print(Temp); Serial.println("°C "); // Write data to SD card file (DHT11Log.txt) dataFile.print(line++); dataFile.print(": Temperature = "); dataFile.print(Temp); dataFile.println("°C "); dataFile.close(); } // if the file didn't open, print an error: else Serial.println("error opening DHT11Log.txt"); } // add code to do other stuff here }
-