5年以上にわたり、ESP8266 SOC(ESP8285)に基づくWiFiモジュールは、WiFiを介して受信データを送信することで、オブジェクトや環境のさまざまなパラメーターを測定するためのスタンドアロンデバイスで正常に使用されてきました。
「wifiモジュールの消費を10倍以上減らす方法」の記事で、彼はそのようなモジュールのWiFIセッションアクティビティ時間を短縮するいくつかの方法について話しました。これにより、データ転送中のエネルギー消費を大幅に削減できます。この場合、短いメッセージ送信セッションの通常の時間は、1〜4秒から0.12〜0.3秒に短縮できます。
ただし、センサーが遅いデバイスやセンサーの数が多いデバイスでは、センサーから情報を取得する時間が大幅に長くなります。この場合、センサーをポーリングするときのエネルギー消費量は、WiFiを介したデータ送信のエネルギー消費量に比例します。
同時に、センサーによって監視されるパラメーターが大幅に変更されていない場合、または測定結果を自律的に使用できる場合は、WiFiを介してデータを転送する必要はありません。たとえば、オブジェクトの測定温度が同じままである場合、その値を送信する必要がないため、WiFiセッションのエネルギーを節約できます。
さらに、ESP8266ベースの温度測定モジュールは、消費電流が20μA未満のディープスリープモードに定期的に切り替えることができます。ウェイクアップすると、モジュールはセンサーの読み取り値を読み取り、これらの読み取り値を以前のデータと比較します。読み取り値の変化がわずかであるか、許容動作温度範囲内にある場合、モジュールは通信セッションなしでスリープモードに戻ります。
センサーの読み取り値が著しく変化するか、許容範囲を超えると、モジュールはデータやアラームをWiFi経由で送信し、ディープスリープモードに切り替わります。
, , 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.
...
次の投稿では、タイマーまたはGPIOからの割り込みに対してスタンバイモードのセンサーを備えたESP8266モジュールの動作を整理する方法を説明しますが、WiFiモデムをオフにした場合の15mAではなく2mAの消費電流(またはオンにした場合は70 mA)を使用します。その結果、センサーを使用する場合のESP8266の消費量を10倍以上削減できます。