I think that the problem is this. Here you program the timer to execute the sendSensor function once per second:
// Setup a function to be called every second
timer.setInterval(1000L, sendSensor);
}
And here you start up everything and go to sleep inmediatly, so nothing is sent.
void loop()
{
Blynk.run();
timer.run();
ESP.deepSleep(600e6); // Sleep for 10 minutes (600 seconds)
}
Timer.run() returns inmediatly and the MCU goes to sleep. There is no time to send anything.
When the MCU comes back from sleep it will do the same again.
Maybe this method is not the best method. You have to send the data directly and then go to sleep, instead of programming a timer to do it.