More information is needed. Can you post a simple schematic or block diagram. What phone are you using. Check your serial parameters, it sounds like they are set wrong. I think the default is 8,n,1. If the baud is correct which I assume it is this setting can give you some weird stuff and I would also guess the phone is getting non printable characters. You might consider one of the 24Mhz logic analyzers, they are under $10.00 delivered from china and with the appropriate freeware they will decode your async serial message. They save me a lot of time and cost a lot less then a night at the pub discussing it with my buddies.
At first glance, it looks like buffer overrun on one end or the other.
try increasing the delay to say
delay(5000);
and see if that solves the problem. If it does you can try decreasing it.
I too am thinking its a baud rate issue. For some weird reason AT, no matter what I tell it, returns 4800, 0, 0...if I send it a new parm like AT+UART=9600,0,0 it returns OK. but then stops communicating with AT commands. unless I power off and on, at which point AT+UART? returns 4800,0,0 again. I think the module is stuck in 4800 baud. Even resetting to default through AT I get OK and then no coms until power cycle and AT+UART? returns 4800,0,0. Here is the diagram with the change of Rx and Tx pins to the mentioned pins above.
Do you see the same serial issues if you place the HC05 on hardware serial like in the posted image? There can be subtle timing issues with software serial.
You will need to load the code onto the board without the HC05 attached to the Serial pins, but when the load is complete you can connect as shown Tx>Rx and Rx>Tx. .
With this connection to hardware serial, the Arduino Serial.print() will send output to both the monitor and bluetooth module for transmission to the phone, but Serial.read() input can only come from the phone over bluetooth.
Since your issue appears to be with the Arduino Tx going to the module Rx, and the HC05 is a 3.3v device, perhaps try adding the voltage divider on the line.
Here is an image of the divider, but its on a software serial connection instead of the hardware serial.
I have tried that also with multiple different resistor sized I have found in similar articles. I just used the same code on an old Crius BT module I had laying around and it worked perfectly. Im starting to think it is a hardware issue.