Definir a duração da bateria (e talvez o tamanho da bateria) informará quanto tempo dura o seu equipamento. Isso pode levar você a decidir ativá-lo somente quando (a) você precisar fazer uma leitura e (b) quando transmitir dados.
Se você quer apenas acordar, digamos, de hora em hora, então quer algo com um relógio em tempo real (RTC) ou algo contando segundos ou a bordo, ou disponível como uma unidade escrava para dizer ao microcontrolador para começar a trabalhar.
O RTC pode então dizer ao wifi para ligar, detectar se está dentro do alcance de sua rede permitida, fazer logon e transmitir dados.
O outro lado dessa moeda é permitir que algo como um GPS constantemente conserte (a cada segundo) e faça pesquisas de opinião constantemente. Nesse cenário, uma bateria pequena pode durar apenas algumas horas, em vez de semanas ou meses, se você estiver usando a corrente atual com sabedoria.
Em poucas palavras, esse seria o seu dilema inicial.
Fiz o que achei que era uma diligência cuidadosa antes de iniciar esse tipo de coisa semelhante e recomendo que você olhe para o microcontrolador Espruino . Se você possui habilidades em JS, pode obter resultados rapidamente - você se sentirá em casa. Os Espruino têm RTCs, já são 3,3v e usam baixa corrente por design. Tocar em um GPS é ridiculamente fácil.
Eu sugiro que você pegue um Espruino verde normal para brincar e depois tente o novo Espruino Wifi em vez de lutar para adicionar um ESP8266 você mesmo (eu não tentei isso, aliás). Os espruinos não são os mais baratos, mas são bem feitos (IMO) e contam com um bom suporte. Em seu fórum, geralmente você pode obter reconhecimento do cara que os cria.
Essa informação provavelmente é mais útil para você se você tiver habilidades em JS e habilidades de EE insignificantes (como eu).