This goes great with what I've been learning at school. I'm a student at UC Davis. I'm no expert but I'll try to help you. Firstly, about the protein shake for breakfast, you really should only drink that right after a work out because the Amino acids will be delivered through the increased blood flow by the exercise. Your body will turn extra protein to carbs and then stored that as fat, the extra nitrogen from the amino acids will beexcreted through urine. The daily value for protein is 50 grams if you didn't know. Instead of the protein shake, just drink some milk.
Your diet doesn't actually look that bad, just make sure you are eating lots of fiber (from veggies, fruits, salad) about 25 grams of fiber a day is good. Minimize how much fat (fast food, butter, mayo etc) you eat.
Homemade dinners are usually healthy unless your eating lots of fried stuff with high fat.
In general: add milk (1% or skim) for breakfast. If you want more protein, milk and meat should be your main source through out the day. Drink protein shakes directly after your exercise workout. You could also eat some boiled eggs. Don't worry about the cholestrol from eggs, we learned that cholestrol FROM EGGS is not linked to heart disease. Eggs have tons of good nutrients in them.
Lunch: add more fruits and veggies. The sandwhich is fine, just dont overload it with mayo. Also, whole grain bread is good.
You also should be exercising. Go out and play some basketball, soccer, or something fun with your friends. Exercise makes you feel better, and its a good way to socialize. "without exercise, humans will slowly sicken and die."