Redução do consumo de energia

Completando a solução do tiagocamana, acho que a solução passará também por usar modos de baixo consumo (Sleep modes) no Arduino.

Terás talvez de controlar a alimentação dos diferentes componentes (ligando apenas quando necessário) e julgo que conseguirás melhorar isso. Outra coisa a ter em conta é que todo e qualquer LED que tenhas activo está a consumir energia e não é pouca.

Outra coisa a ter em atenção é o estado dos pinos, regra geral existe um estado (esquece-me se é input ou output) que torna o consumo menor.

O melhor projecto que vi realizado para estender o funcionamento de baterias foram os jeenodes (podes ver aqui http://jeelabs.net/projects/cafe/wiki).

Se apenas precisas de fazer leituras de hora a hora, podes poupar imensa bateria colocando o microcontrolador a dormir em ciclos de 8 segundos e verificando se já está na hora de fazer uma medição.
No teu caso, imagino que o sensor de nível seja o que consome mais... e poderá ajudar passares o código para um Arduino mais pequeno... se bem que a diferença, comparada a alguns dos componentes deve ser mínima.

Tens aqui mais informação sobre isto:

https://www.gammon.com.au/forum/?id=11497
https://openhomeautomation.net/arduino-battery/
https://learn.sparkfun.com/tutorials/reducing-arduino-power-consumption
http://www.home-automation-community.com/arduino-low-power-how-to-run-atmega328p-for-a-year-on-coin-cell-battery/