Depuis plus de cinq ans, les modules WiFi basés sur le SOC ESP8266 (ESP8285) sont utilisés avec succès dans des appareils autonomes pour mesurer divers paramètres d'objets et de l'environnement avec la transmission des données reçues via WiFi.
Dans l' article «Comment réduire la consommation des modules wifi de dix fois ou plus», il a évoqué quelques moyens de réduire le temps d'activité de session WiFI de ces modules, ce qui peut réduire considérablement la consommation d'énergie lors du transfert de données. Dans ce cas, la durée typique d'une session de transmission de messages courts peut être réduite de 1 à 4 secondes à 0,12 à 0,3 seconde.
Cependant, dans les appareils avec des capteurs lents ou avec un grand nombre d'entre eux, le temps d'obtention des informations des capteurs augmente considérablement. Dans ce cas, la consommation d'énergie lors de l'interrogation des capteurs devient proportionnelle à la consommation d'énergie pour la transmission de données via WiFi.
Dans le même temps, si les paramètres surveillés par les capteurs n'ont pas changé de manière significative ou si les résultats de mesure peuvent être utilisés de manière autonome, il n'est pas nécessaire de transférer des données via WiFi. Par exemple, si la température mesurée d'un objet reste la même, alors il n'est pas nécessaire de transmettre sa valeur, ce qui économise de l'énergie sur une session WiFi.
De plus, le module de mesure de température basé sur l'ESP8266 peut passer périodiquement en mode veille profonde, pour lequel la consommation de courant est inférieure à 20 μA. Au réveil, le module lit les lectures du capteur, compare ces lectures avec les données précédentes. Si les lectures ont changé de manière insignifiante ou sont dans la plage de température de fonctionnement autorisée, le module repasse en mode veille sans session de communication.
Si les lectures du capteur changent sensiblement ou dépassent la plage acceptable, le module transmet des données et / ou une alarme via WiFi et passe en mode veille prolongée.
, , 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.
...
Dans le prochain article, je vous dirai comment organiser le fonctionnement des modules ESP8266 avec des capteurs en mode veille pour les interruptions d'un timer ou GPIO, mais avec une consommation de courant de 2 mA au lieu de 15 mA avec le modem WiFi éteint (ou au lieu de 70 mA lorsqu'il est allumé). En conséquence, nous réduisons la consommation d'ESP8266 lorsque vous travaillez avec des capteurs de 10 fois ou plus.