Sistema de riego: La bomba de agua sigue funcionando con el depósito vacio

Si estas comandando la bomba simplemente con arduino tu problema es de potencia.

No veo que tiene que ver la velocidad que indicas acá

int water_pump = 3;         // Se declara el valor de la velocidad de la bomba de agua
int water_pump_speed = 200; //Velocidad de la minibomba de agua oscila entre 100 como mínimo y 255 como máximo. Yo he //elegido 255 pero ustedes pueden elegir la que estimen conveniente. A más velocidad, mayor //bombeo de agua

La variable water_pump_speed es si le das velocidad a tu bomba pero solo usas un control SI/NO o sea un control digital. Igualmente esto no explica tu problema.

Intenta explicarnos con un esquema como controlas la bomba desde el pin 3.

Espero que no sea directamente!!