Arduino Based Wireless Notice Board using Bluetooth

The project based on HC-05 Bluetooth module which Controlling 16x2 LCD SCROLLING display using android application.

Things used in this project

Hardware components

HC-05 Bluetooth Module
Breadboard (generic)
Jumper wires (generic)

Software apps and online services

Story

The stuff you will need:

First, pin your LCD with I2C board on the breadboard and power the breadboard by connecting a wire from "5V" (Positive) on your Arduino to the positive row on the breadboard and another one from "GND" (ground or 0V) to the negative row.

Then connect the LCD to the I2C module and I2C to Arduino:

I2C SCL pin 4 - Arduino pin A5

I2C SDA pin 3 - Arduino pin A4

I2C GND pin 2 – 0V

I2C VCC pin 1 – 5V

Then connect the Tx(Transmit) pin on your Bluetooth module to the Rx (Receive) on the Arduino, and connect the Rx pin on your BT module to the Tx on the Arduino.

Finally, power the BT module by connecting the VCC (or 5V) to the positive row on the breadboard and connect the GND to the negative one on the breadboard.

Now open android app and goto Bluetooth setting and connect to Bluetooth is “ON” and select HC-05. Then simply write your text in L1 & L2 row in the app through mobile and press send text Button and text should be printed on the LCD.

Trouble shooting of Bluetooth issue:

Step 1: To print text to the LCD, the LCD I2C address should be 0x27 or 0x3F.

LiquidCrystal_I2C lcd(0x27, 16, 2); // set the LCD address to 0x27 for a 16 chars and 2 line display

lcd.init(); // initialize the lcd

// Print a message to the LCD.

Here the Final output

Download Code Here:

Step 2: To print Scroll text to the LCD, the LCD I2C address should be 0x27 or 0x3F.

// set the LCD number of columns and rows

int lcdColumns = 16;

// set LCD address, number of columns and rows

// if you don't know your display address, run an I2C scanner sketch

LiquidCrystal_I2C lcd(0x27, lcdColumns, lcdRows);

String messageStatic = "Dofbot.com";

String messageToScroll = "arduino, IoT, NODEMCU Projects done here";

// Function to scroll text

// The function acepts the following arguments:

// row: row number where the text will be displayed

// message: message to scroll

// delayTime: delay between each character shifting

// lcdColumns: number of columns of your LCD

void scrollText(int row, String message, int delayTime, int lcdColumns)

lcd.print(message.substring(pos, pos + lcdColumns));

// turn on LCD backlight

// set cursor to first column, first row

// print static message

// print scrolling message

scrollText(1, messageToScroll, 250, lcdColumns);

Download Code Here:

Step 3: To print text to the LCD using android app, the LCD I2C address should be 0x27 or 0x3F.

// Project by G Ramesh

int lcdColumns = 16;

LiquidCrystal_I2C lcd(0x27, lcdColumns, lcdRows);

void scrollText(int row, String message, int delayTime, int lcdColumns)

lcd.print(message.substring(pos, pos + lcdColumns));

lcd.init(); // initialize the lcd

// Print a message to the LCD.

lcd.begin(16, 2);// Columnas y filas de LCD

Word = Word + Display;

messageStatic = Word.substring(0, L1);

L2 = Word.indexOf(', ', L1+1);

messageToScroll = Word.substring(L1+1, L2);

// scrollText(1, messageToScroll, 250, lcdColumns);

Download Code Here:

Here the Final output

Download Android App Here:

Wireless LCD application:

Updating New Menu list in Remote LCD.

The notice board is used to update with new information.

Schematics

android_lcd_tDgWrYjB7I.png

Code

HelloWorld.ino

//YWROBOT //Compatible with the Arduino IDE 1.0 //Library version:1.1 #include LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display  void setup()   lcd.init(); // initialize the lcd  // Print a message to the LCD.  lcd.backlight();  lcd.setCursor(0,0);  lcd.print("Hello world!");  lcd.setCursor(0,1);  lcd.print("Hello World");  >  void loop()  > 

Scroll_LCD.ino

#include // set the LCD number of columns and rows int lcdColumns = 16; int lcdRows = 2;  // set LCD address, number of columns and rows // if you don't know your display address, run an I2C scanner sketch LiquidCrystal_I2C lcd(0x27, lcdColumns, lcdRows);  String messageStatic = "Dofbot.com"; String messageToScroll = "arduino, IoT, NODEMCU Projects done here";  // Function to scroll text // The function acepts the following arguments: // row: row number where the text will be displayed // message: message to scroll // delayTime: delay between each character shifting // lcdColumns: number of columns of your LCD void scrollText(int row, String message, int delayTime, int lcdColumns)   for (int i=0; i  lcdColumns; i++)   message = " " + message;  >  message = message + " ";  for (int pos = 0; pos  message.length(); pos++)   lcd.setCursor(0, row);  lcd.print(message.substring(pos, pos + lcdColumns));  delay(delayTime);  > >  void setup()  // initialize LCD  lcd.init();  // turn on LCD backlight  lcd.backlight(); >  void loop()  // set cursor to first column, first row  lcd.setCursor(0, 0);  // print static message  lcd.print(messageStatic);  // print scrolling message  lcd.setCursor(0,1);  scrollText(1, messageToScroll, 250, lcdColumns); > 

Wireless_Notice_board.ino

// Project by G Ramesh // dofbotindia@gmail.com // dofbot.com  #include #include int lcdColumns = 16; int lcdRows = 2; LiquidCrystal_I2C lcd(0x27, lcdColumns, lcdRows);  char Display; String Word; String messageStatic; String messageToScroll;  int L1; int L2;  void scrollText(int row, String message, int delayTime, int lcdColumns)   for (int i=0; i  lcdColumns; i++)   message = " " + message;  >  message = message + " ";  for (int pos = 0; pos  message.length(); pos++)   lcd.setCursor(0, row);  lcd.print(message.substring(pos, pos + lcdColumns));  delay(delayTime);  > >  void setup()   lcd.init(); // initialize the lcd  // Print a message to the LCD.  lcd.backlight();  lcd.begin(16,2);// Columnas y filas de LCD  Serial.begin(9600); >  void loop()   if(Serial.available())    Display = Serial.read();  Word = Word + Display;  if (Display == '*')   Serial.println(Word);  Serial.println();  L1 = Word.indexOf(',');  messageStatic = Word.substring(0, L1);  L2 = Word.indexOf(',', L1+1);  messageToScroll = Word.substring(L1+1, L2);  Serial.print("messageStatic");  Serial.println(messageStatic);  Serial.print("messageToScroll");  Serial.println(messageToScroll);  Word = "";  lcd.setCursor(0,0);  lcd.print(messageStatic);  lcd.setCursor(0,1);  lcd.print(messageStatic);  // lcd.setCursor(0,1);  // scrollText(1, messageToScroll, 250, lcdColumns);  >  > >