ayuda con sensores que al presionar el botón funcionen

hola tengo un problema que me cuesta se supone que al apretar un botón funcione pero aunque no apriete el botón se activa el de vibración y los demás botones si funcionan bien aquí esta mi código
#include <Ethernet.h>
#include <SPI.h>

// Configuracion del Ethernet Shield
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFF, 0xEE}; // Direccion MAC
byte ip[] = { 192,168,1,100 }; // Direccion IP del Arduino
byte server[] = { 192,168,1,70 }; // Direccion IP del servidor
EthernetClient client;
float temperatura;
int analog_pin = 0;
int analogValue2;
int analogValue1;
int calcu;
int calcu1;
const int boton=7;
const int boton1=6;
const int boton2=5;
int val;
int val1;
int val2;

void setup(void) {
Ethernet.begin(mac, ip); // Inicializamos el Ethernet Shield
delay(1000); // Esperamos 1 segundo de cortesia
pinMode(boton,INPUT);
pinMode(boton1,INPUT);
pinMode(boton2,INPUT);
}

void loop(void) {
val1=digitalRead(boton);
if (val1==HIGH){
Serial.println ("vibracion");
}
analogValue2 = analogRead(A3);
calcu=1023-analogValue2;
calcu1= calcu*50;
Serial.println(calcu);//Return temperature to Monitor
Serial.println(" oC");
// Proceso de envio de muestras al servidor
Serial.println("Connecting...");
if (client.connect(server, 80)>0) { // Conexion con el servidor
client.print("GET /tutoiot1/iot2.php?valor="); // Enviamos los datos por GET
client.print(calcu1);
client.println(" HTTP/1.0");
client.println("User-Agent: Arduino 1.0");
client.println();
Serial.println("Conectado");
} else {
Serial.println("Fallo en la conexion");
}
if (!client.connected()) {
Serial.println("Disconnected!");
}
client.stop();
client.flush();
delay(5000); // Espero un minuto antes de tomar otra muestra

//----------------------------------------------------------------------------------
val=digitalRead(boton1);
if (val==HIGH){
temperatura = analogRead(analog_pin);
temperatura = 5.0temperatura100.0/1024.0;
//Display in Serial Monitor
Serial.print(temperatura); //Return temperature to Monitor
Serial.println(" oC");
// Proceso de envio de muestras al servidor
Serial.println("Connecting...");
if (client.connect(server, 80)>0) { // Conexion con el servidor
client.print("GET /tutoiot1/iot.php?valor="); // Enviamos los datos por GET
client.print(temperatura);
client.println(" HTTP/1.0");
client.println("User-Agent: Arduino 1.0");
client.println();
Serial.println("Conectado");
} else {
Serial.println("Fallo en la conexion");
}
if (!client.connected()) {
Serial.println("Disconnected!");
}
client.stop();
client.flush();
delay(5000); // Espero un minuto antes de tomar otra muestra
}
//------------------------------------------------------------------------------------
val2=digitalRead(boton2);
if (val2==HIGH){
Serial.println("lluvia");
for (int i = 0; i < 15; i++) {
analogValue1 = analogRead(A2);
calcu=1023-analogValue1;
calcu1=calcu*35;
Serial.println(calcu);
Serial.println(" oC");
// Proceso de envio de muestras al servidor
Serial.println("Connecting...");
if (client.connect(server, 80)>0) { // Conexion con el servidor
client.print("GET /tutoiot1/iot1.php?valor="); // Enviamos los datos por GET
client.print(calcu1);
client.println(" HTTP/1.0");
client.println("User-Agent: Arduino 1.0");
client.println();
Serial.println("Conectado");
} else {
Serial.println("Fallo en la conexion");
}
if (!client.connected()) {
Serial.println("Disconnected!");
}
client.stop();
client.flush();
delay(5000); // Espero un minuto antes de tomar otra muestra

}

}
}

I suspect that you have floating inputs. If so, you can either use pulldown resistors on your buttons or use INPUT_PULLUP in your pinmode calls and consider LOW to be a button press.