Por mais de cinco anos, os módulos WiFi baseados no ESP8266 SOC (ESP8285) têm sido usados com sucesso em dispositivos autônomos para medir vários parâmetros de objetos e do ambiente com a transmissão dos dados recebidos via WiFi.
No artigo "Como reduzir o consumo de módulos wi-fi em dez ou mais vezes", ele falou sobre algumas maneiras de reduzir o tempo de atividade da sessão Wi-Fi de tais módulos, o que pode reduzir significativamente o consumo de energia durante a transferência de dados. Nesse caso, o tempo típico de uma sessão de transmissão de mensagem curta pode ser reduzido de 1 a 4 segundos para 0,12 a 0,3 segundos.
Porém, em dispositivos com sensores lentos ou com grande número deles, o tempo de obtenção das informações dos sensores aumenta significativamente. Nesse caso, o consumo de energia ao pesquisar os sensores torna-se compatível com o consumo de energia para transmissão de dados via WiFi.
Ao mesmo tempo, se os parâmetros monitorados pelos sensores não mudaram significativamente, ou os resultados da medição podem ser usados de forma autônoma, não há necessidade de transferir dados via WiFi. Por exemplo, se a temperatura medida de um objeto permanecer a mesma, não é necessário transmitir seu valor, o que economiza energia em uma sessão WiFi.
Além disso, o módulo de medição de temperatura baseado em ESP8266 pode alternar periodicamente para o modo de sono profundo, no qual o consumo de corrente é inferior a 20 μA. Ao acordar, o módulo lê as leituras do sensor, compara essas leituras com os dados anteriores. Se as leituras tiverem mudado insignificantemente ou estiverem dentro da faixa de temperatura operacional permitida, o módulo volta para o modo de espera sem uma sessão de comunicação.
Se as leituras do sensor mudarem perceptivelmente ou ultrapassarem o intervalo permitido, o módulo transmite dados e / ou um alarme via WiFi e muda para o modo de hibernação.
, , WiFi . 70 . , WiFi .
: WiFi , 15, 5 .
, WiFi SDK , . 1 , 0.3 . , WiFi WiFi .
WiFi . , , , .
, void user_pre_init(void), NONOS SDK, 3.0, 0x60000704 . WiFi , 15 .
, WiFi.
, 0x60000704. , WiFi .
WiFi SDK wifi_get_opmode(), / . , , WiFi .
:
uint32 *RT= (uint32_t *)0x60000700;
void user_pre_init(void)
{
uint32 xRT=RT[4]; RT[4]=0;
//
…
// , :
RT[4]=xRT;
}
:
.
WiFi .
UDP.

...
No próximo post, vou explicar como organizar o funcionamento dos módulos ESP8266 com sensores em modo de espera para interrupções de um temporizador ou GPIO, mas com um consumo de corrente de 2 mA em vez de 15 mA com o modem WiFi desligado (ou em vez de 70 mA quando ligado). Como resultado, reduzimos o consumo de ESP8266 ao trabalhar com sensores em 10 ou mais vezes.