Universal Bluetooth receiver with LCD display.

This project uses an Arduino UNO to act as a remote receiver for data sent via Bluetooth from a remote location. The data is displayed on an LCD display and although Bluetooth is used here it could just as easily be Infra Red (for short range communication) or radio (for long range communication). A suitable transmitter will be described in part 2.

Blogs for the Bluetooth unit can be found here and the Liquid Crystal display here.

The wiring for the Bluetooth unit is here, note a logic level shifting board is needed as the HC06 Tx/Rx pins are 3 volt logic. Only connect 3.3 volts to the Logic level shit board if it does not have a 3 volt regulator, otherwise you will burn out the regulator.

The wiring for the LCD display is here

All the components could be mounted on a single breadboard. After the circuit has been built upload the sketch below:
/*
Universal Bluetooth receiver with LCD Display
Uses a 1602a 2 line by 16 character display
and a HC06 Bluetooth Slave

void setup() {
Serial.begin(9600); // used to debug
// set up the LCD's number of columns and rows
lcd.begin(16, 2);
mySerial.begin(9600); // default baudrate for the HC06
lcd.setCursor(0,0); // set cursor at the start of the first line
lcd.print("Universal");
lcd.setCursor(0,1); // set cursor at the start of the first line
lcd.print("Serial Receiver");
}

void loop() {
if (mySerial.available()) {
// wait a bit for the entire message to arrive
delay(100);
// clear the screen
lcd.clear();
// Print a message to the LCD
lcd.setCursor(0,0); // set cursor at the start of the first line
lcd.print("Remote Temp:");
lcd.setCursor(0, 1); // first character line 2
// read all the available characters
while (mySerial.available() > 0) {
// display each character to the LCD
lcd.write(mySerial.read());
}
}
}

The sketch prints a string on the first line, in this case Remote Temp: and data sent via Bluetooth on the second line.

Testing the project:

I normally use BlueTerm on my Android phone to connect to the HC06, but it sends characters one at a time as they are typed in. I use BlueSerial that allows a sentance to be typed in, then sent. Connect your device to the HC06, you should find it listed as linvor unles you have changed it. Send a sentance of less than 16 characters and it will appear on the second line.