Temperature and Humidity Data Logger From Arduino to Android Phone With SD Card Module Via Bluetooth

Introduction: Temperature and Humidity Data Logger From Arduino to Android Phone With SD Card Module Via Bluetooth

About: Automation Engineer with always a zest to learn.

Hello All, This is my first Instructable ever, Hope i help the maker community as i have been benefited with it.

Often we use sensors in our projects but finding a way to collect the data, store it and transfer it Phones or other devices immediately and wireless were not a ready made process. This Instructable will guide you through

  • Acquiring Data from Sensor (DHT 11) - temperature and humidity sensor.
  • Storing the acquired data in SD card with SD card module.
  • Transferring the data wireless using Bluetooth to a custom made Android App.
  • Storing the received sensor values as text file (.txt file).

Step 1: Component List

Let's get down to gather the troops to make this awesome project.

  • Arduino Uno (any other arduino also will be suitable)
  • micro SD card module.
  • SD card module (the one i am using is 8 GB, it is advised to use >=32 GB)
  • HC05 - Bluetooth module
  • DHT11 (Temperature and Humidity Sensor)
  • Bunch of jumpers.
  • Android Phone

Step 2: Connections:

Putting together and connecting components is halfway done for the project. The products mentioned are easily available in most retail electronic stores and online sites like Amazon.

Arduino - HC05 connection(Bluetooth):

  • +5V - Vcc
  • Gnd - Gnd
  • Pin 0 - Tx
  • Pin 1 - Rx

Arduino - SDcard module connection:

  • +5V - Vcc
  • Gnd - Gnd
  • Pin 11 - MOSI (Master Out Slave In)
  • Pin 12 - MISO (Master In Slave Out)
  • Pin 13 - SCk (Clock synchronous)
  • Pin 4 - CS (Chip Select)

Arduino - HC05 connection(Bluetooth):

  • +5V - Vcc
  • Gnd - Gnd
  • Pin A0 - Signal

Step 3: Procedure

Connect all the parts as mentioned in the previous step, With this we can write code in the Arduino Ide to reach our goal.

The second part of our project is to have an Android app toreceive the sensor values , display the values and store it in a file in the mobile. I have used Thunkable to make the Android Application and also have provided the apk and aia for it.

Step 4: Arduino Code:

The Arduino Code has been given and explained below.

The arduino code is mostly self explanatory with SD card library and DHT11 library. The bluetooth uses hardware serial which is pin0 and pin1 of the arduino hence bluetooth transfer happens with the Serial print() functions which uses up the I2C protocol and the SD card module uses up the SPI protocol for communicating with it.


* SD card attached to SPI bus as follows: ** MOSI - pin 11 ** MISO - pin 12 ** CLK - pin 13 ** CS - pin 4 (for MKRZero SD: SDCARD_SS_PIN) * *HC 05 module connection: ** TX - pin 0 (default)[can be changed if Softwareserial is being used ] ** RX - pin 1 (default) [can be changed if Softwareserial is being used ]


#include #include #include

File myFile; dht DHT; #define DHT11_PIN A0

void setup() { // Open serial communications and wait for port to open: Serial.begin(9600); Serial.println("Type,\tStatus,\tHumidity(%),\tTemperature(C)"); while (!Serial) { ; // wait for serial port to connect. Needed for native USB port only } DHTAcq(); sdCardWrite("test3.txt"); sdCardRead("test3.txt");


void DHTAcq() { Serial.println("DHT11, \t"); int chk = DHT.read11(DHT11_PIN); Serial.print(DHT.humidity, 1); Serial.print(",\t"); Serial.print(DHT.temperature, 1); delay(2000); }

void sdCardWrite(String fileNameStr ) { Serial.println("Initializing SD card"); if (!SD.begin(4)) { Serial.println( "Initilization failed."); return; } Serial.println("Initilization done!"); // open the file. note that only one file can be open at a time, // so you have to close this one before opening another. myFile = SD.open(fileNameStr, FILE_WRITE); // if the file opened okay, write to it: if (myFile) { myFile.println("DHT11, \t"); int chk = DHT.read11(DHT11_PIN); myFile.print(DHT.humidity, 1); myFile.print(",\t"); myFile.print(DHT.temperature, 1); myFile.close(); Serial.println("done!"); delay(200); /*Serial.print("Writing to test.txt..."); myFile.println("testing 1, 2, 3."); // close the file: myFile.close(); Serial.println("done."); */ } else { // if the file didn't open, print an error: Serial.println("error opening test.txt"); } }

void sdCardRead(String fileName) { // re-open the file for reading: myFile = SD.open(fileName); if (myFile) { Serial.println("test.txt:"); // read from the file until there's nothing else in it: while (myFile.available()) { Serial.write(myFile.read()); } // close the file: myFile.close(); } else { // if the file didn't open, print an error: Serial.println("error opening test.txt"); } }

void loop() { // nothing happens after setup //Serial.println("test 1.. 2.. 3"); //delay(1000); }

Step 5: Android App:

The Android app has been made with Thunkable application with drag and drop programming. It will log the data on to the label on the screen and once the Store Data button is pressed on the location AppInventor/Data with the filename that has been given the code.

The project can be extended to have offline storage of whatever the sensor data we want to by replacing with desired sensor modules and the app can be extended to retrieve the data from the storage and manipulate to suit the application.

Be the First to Share


    • Battery Powered Contest

      Battery Powered Contest
    • Plywood Challenge

      Plywood Challenge
    • Plastic Contest

      Plastic Contest

    7 Discussions


    9 months ago on Step 5

    Very cool project! Can you share .AIA file? I'd like to modify your application front end.
    Thank you in advance for your reply.

    Vishwa looks curious
    Vishwa looks curious

    Reply 9 months ago

    Thank you, I would love to share but I have lost the .aia file but since its a simple application you can reproduce it with the given screenshots


    Reply 9 months ago

    Without main complete display image i think that I cannot replicate It ( there are missings button or text list on the left).


    Question 1 year ago on Step 4

    so basically what the project do it stores sensor data into sdcard and then send the file from sdcard to androit device via Bluetooth?

    DIY Hacks and How Tos

    Cool design. I need to make one of these for my greenhouse.

    Vishwa looks curious
    Vishwa looks curious

    Reply 2 years ago

    Thank you so much and that's interesting.