SD Card Data Recorder

We always try to know the physical and electrical data like temperature, pressure, current, ac voltage etc. In this project, I'm going to display these data in the real time as well as I'ill record it to a memory card(SD/microSD/MMC card). Here the project can display four different things; ac voltage, environment temperature, relative humidity and the real time in 12 hrs format.


We can display more physical & electrical data by adding more sensors to the project. The project is made by arduino programming hardware. I am using "arduino uno R3".

Required components :

Any arduino board(UNO/pro/mini/nano/duemilanove etc.),

power supply kit,

DHT11(temp. & humidity sensor),

IC DS1307(Real Time Clock),

Crystal 32.768kHz,

3V battery(for RTC back-up),

transformer 6V/200mA,

LCD 16x2,

SD/microSD/MMC card,

card holder,

diode bridge,

zener diode 5V,

capacitor 100uF,

10k resistance(1/4W) x 6,

10k variable resistance x 2,

toggle switch x 4

For achieving the value of ac voltage we need a 6V transformer. This transformer is not for the power supply of the project but it is used to measure ac voltage in terms of low secondary voltage as shown in the figure below. Secondary voltage is rectified, filtered and limited to a range of 5 Volts with a zener diode then it is applied to the analog pin 0(AN0/pin14) of the arduino board. 

arduino data measurement

For achieving the value of temperature we are using DHT11 sensor which provides a single data line. It is connected to analog pin 1(AN1/pin15) of the arduino board.

Circuit diagram :

data recorder schematic

A card holder holds the card and it communicates with harware SPI port of the arduino.

SD card attachements : MOSI = arduino pin 11, MISO = arduino pin 12, CLK = arduino pin 13, CS = arduino pin 10 
LCD connections : RS = arduino pin 7, EN = arduino pin 6, D4 = arduini pin 5, D5 = arduino pin 4, D6 = arduino pin 3, D7 = arduino pin 2, D0 to D3 = ground.

DS1307 connections : SCL = arduino pin 19(AN5), SDA = arduino pin 18(AN4)

Button connections : Up = arduino pin 8, Down = arduino pin 9, Menu = arduino pin 16(AN2), OK = arduino pin 17(AN3)

Operation : The whole data is recorded to the memory card as a text file. A 1GB card is sufficient to record many years of data. In the below figure, you can see the snapshot of the recorded data.

recorded data

There are four functional buttons on the project :

MENU : By pressing a long time you'ill enter the setting zone.

UP : To increase the value.

UP : To decrease the value.

OK : To save/select the value.

When you enter the setting zone, you can set different things as shown in the LCD picture below.


The time is for 12 hrs format but during the setting it is set as 24 hrs of format. For example, if you want to save 3:00pm then it is set to be 15:00. The interval is the time delay between each recording of data. The recording interval setting is from 1 to 300 seconds. By refreshing the card, all past data are erased.

Instead of buying a new arduino board, you can also make your own arduino board by using a pre-programmed chip.

Front view 1Front view 2

side view

side view 2

Download the program and upload it to the arduino chip.

The program is written for the older version of arduino software so use arduino 1.0.6 or lower version and do not use the latest arduino 1.6.4 or higher version software. Since the program takes approximately 23kB so use ATmega328 or higher flash memory chip based arduino hardware.

Add comment

Security code


ogled women
#2 ogled women 2016-11-27 13:25
I am in fact grateful to the owner of this website who has shared this fantastic post at at this place.
256 micro sd
#1 256 micro sd 2016-08-16 07:13
You've made some really good points there. I looked on the internet to find out more
about the issue and found most people will go along with your views on this site.

Visitors Today46
Visitors Yesterday113

  • Your IP Address :


SG Templetes by Sameer Gupta