Introduction: DIY Bluetooth Display Hub

About: I am a student eager to learning anything about Arduino and Raspberry Pi programming! I have a YouTube channel and a website with videos and tutorials about the subjects of electronics and robotics. I enjoy re…

Hello there everyone! Here is an Instructable about... You guessed it; how to build a Bluetooth Display Hub with the Arduino Uno.

Visit My YouTube Channel For more videos on the Arduino

This project is an Arduino Uno connected to a few components and is programmed to react to certain Bluetooth signals you will be sending to the Arduino from a mobile phone running Android.

The main purpose of this project is to make a beautiful decoration for your house, but you can also use this project to display values from a temperature sensor; as I will be explaining soon.

(Click on any image throughout this article if you want to see / examine the image; as the images throughout this page are enlarged)

Step 1: Parts You Will Need

    (click on the above image to enlarge it)

    For the DIY Bluetooth Display Hub, you will need the following components:

    • Arduino Uno
    • 4-8 bit LCD(must use the Hitachi HD4470 driver)
    • DHT11 temperature & humidity sensor breakout module
    • HC-05 / HC-06 Bluetooth module
    • Mini Solderless breadboard
    • Tape
    • DC Desk light / lamp
    • 2 alligator clips
    • 2.1 mm barrel plug AC - DC adaptor
    • Mobile phone running the Android OS
    • A laptop/desktop PC with the Arduino IDE already downloaded (latest version is preferred)
    • USB Type-A to Type-B cable
    • USB Type-A to Micro USB cable (Android phone charger)
    • And a bunch of jumper wires!

    Once you have the above parts available for your project, you are ready to proceed in building it!

    Step 2: The Circuit

    Above is the circuit for the Bluetooth Display Hub. It incorporates many concepts that all work together with the Arduino to provide a useful working device you can control with your trusty mobile phone.

    (if the image is too enlarged, click on it to see the whole thing)

    (the white sensor on the left of the image is a DHT11 temperature/humidity sensor)

    These are the connections:

    (D* = a digital pin; A* = an analog pin)

    LCD:

    • Pin 1: Gnd
    • Pin 2: 5V
    • Pin 3: A0
    • Pin 4: D8
    • Pin 5: Gnd
    • Pin 6: D9
    • ---------
    • Pin 11: D10
    • Pin 12: D11
    • Pin 13: D12
    • Pin 14: D13
    • Pin 15: D6
    • Pin 16: Gnd

    HC-06 / HC-05:

    • VCC: 5V / 3.3V
    • GND: Gnd
    • TX: Arduino RX pin
    • RX: Arduino TX pin

    DHT11 temperature and humidity sensor:

    • VCC: 5V
    • GND: Gnd
    • S (Signal): A0

    LED / DC powered lamp:

    • Anode (positive connection): D5
    • Cathode (negative connection): Gnd

    Step 3: Connecting the Hardware

    If you understand the schematic displayed in the previous step; you shouldn't have a hard time assembling the Bluetooth Display Hub, but the shape of your lamp/light might cause you difficulty. So here are some tips:

    1. Use a DC lamp (or light) with a large surface area to mount all your components. Mount your LCD and DHT11 sensor to the front and keep the control electronics to the back.
    2. Do not use lamps that do not have simple means for connecting components.
    3. Remember, the main purpose of this project is for house decoration, so be sure to tuck in the wires into a non-visible place!
    4. Hack into the lamp using a simple trick: Use two alligator clips and attach them to the lamp's connections. Attach the other ends of the alligator clips to jumper wires which in turn; can connect to the Arduino.
    5. Use tape to fully secure any loose or dangling components onto the project

    Hopefully, these tips can make the process of completing this project simpler and less confusing.

    Step 4: Programming the Arduino

    Below is the code for the Arduino Uno to be used for this project (respectively).

    The code for this project executes many actions while the project is on, which are:

    • Waits for button presses from the Android mobile app you will be making/using shortly
    • Turns on the LCD and displays a message (if you press a specific button on the mobile app)
    • Displays the value of the DHT11 sensor on the LCD (if you press a specific button on the mobile app)
    • Turns on the main LED/Light/Lamp (if you press a specific button on the mobile app)

    As you can see from the list above, this project circulates around the Android mobile app that you will use to control the Arduino. Programming the Arduino is relatively simple as I have provided the code below.

    (There are 2 libraries used below. Here are the links for downloading them: DHT11 sensor library and Adafruit sensor library)

    The Code:

    (for use with the Arduino IDE)

    /*
    * Made By momohb2007
    * Credit for a portion of the code goes to an example provided with the DHT.h sensor library
    */
    
    #include <LiquidCrystal.h>
    #include <Adafruit_Sensor.h>
    #include <DHT.h>
    #include <DHT_U.h>
    
    LiquidCrystal lcd(8,9,10,11,12,13);
    DHT_Unified dht(7,DHT11);
    
    uint32_t delayMS
    
    #define lampPin 5
    #define lcdBacklight 7
    #define lcdContrast A0
    
    int state = 0;
    
    void setup(){
    lcd.begin(16,2);
    Serial.begin(38400); //default communications rate of the Bluetooth Module
    dht.begin();
    sensor_t sensor;
    dht.temperature().getSensor(&sensor);
    dht.humidity().getSensor(&sensor);
    delayMS = sensor.min_delay / 1000;
    pinMode(lampPin,OUTPUT);
    pinMode(lcdBacklight,OUTPUT);
    analogWrite(lcdContrast,255);
    }
    
    void loop(){
    if(Serial.available() > 0){
    state = Serial.read();
    }
    if(state == '48'){ // turn off light
    digitalWrite(lampPin,LOW);
    }
    else if(state == '49'){ // turn on light
    digitalWrite(lampPin,HIGH);
    }
    else if(state == '50'){ // display "Welcome" on LCD display
    lcd.clear();
    digitalWrite(lcdBacklight,HIGH);
    lcd.print("Welcome");
    }
    else if(state == '51'){ // read DHT11 sensor temp and humidity value and display result on LCD
    lcd.clear();
    digitalWrite(lcdBacklight,HIGH);
    delay(delayMS);
    sensors_event_t event;
    dht.temperature().getEvent(&event);
    int hum = event.relative_humidity;
    int temp = event.temperature;
    lcd.print("Humidity:" + hum);
    lcd.print("%");
    lcd.setCursor(0,1);
    lcd.print("Temp:" + temp);
    lcd.print("°C");<br>
    }
    // To see any output on your display hub, press some buttons on the Android app
    
    } // end of program

    Copy this code into your Arduino IDE and upload. Remember to remove the wires from the TX and RX pins before uploading. Just one more thing left to do before your Bluetooth Display Hub is ready to use: The Android App!

    Step 5: The Android App

    Using the Android app won't be relatively hard; considering that I have provided the app's file below.

    There are a few steps you must fulfill before you can connect your phone to the Arduino.

    1. Connect your phone to your PC using a USB cable.
    2. Transfer the app file (provided below) to your phone.
    3. Navigate to the app file on your phone and press it; you will then be prompted to install it.
    4. After installation, go to settings and turn on Bluetooth.
    5. Scan for nearby (Turned on) devices and connect to your Bluetooth Module (it will say HC-05 or HC-06).
    6. Enter the PIN. (for the HC-05 and HC-06, the PIN is 1234).
    7. Open the app.
    8. Connect to your HC-05 / HC-06

    Now, all you've got to do is press some buttons in the app and get some results!

    Step 6: It's Done!

    You're finished! Now you have your own DIY Bluetooth Display Hub. Congratulations! You can use your display hub just for a little shine on your shelf or you can use it for your own needs, as I showed by displaying the readings from a DHT11 temperature and humidity sensor. I hope you learned something new by making this project. Good job and thanks for reading!

    Arduino Contest 2019

    Participated in the
    Arduino Contest 2019