
上記は5秒スリープの実験結果である。53時間45分8秒、ブート31604回となった。これは、試験結果(前編)で推定した駆動時間から8時間近く、ブート回数から5千回近く少なくなっている。これには、次の3つの理由がある。
1つ目はプロトコル時間が増えたこと。53時間45分8秒 = 193508秒、193508 / 31604 ≒ 6.123秒。スリープ時間5秒を引くと、プロトコル時間は1.123秒であり、3秒スリープの1.062秒に対して61msec増加した。この増加理由として、サーバーに接続するPCへのデータ転送時間が要因として考えらる。駆動試験では、ブラウザを起動状態のままにし、3秒スリープと5秒スリープの状況を続けて数日間表示した。ブラウザのメモリ使用領域が徐々に増え、転送時間が長くなったと思われる。
サーバーは1秒間隔でPCへデータ転送しているため、その転送時間内にセンサデバイスから接続要求あった場合は、転送終了まで待たされることになる。ただし、61 / 1062 ≒ 0.57%の増加なので、全体の消費電力に対するインパクトはそれほど大きくない。
2つ目はバッテリーの実容量である。一般的に、実利用上の容量はスペックの7割に満たないと言われている。ここでは70%と見なすことにする。
3つ目は、周辺回路消費電流の仮設定値10mAの見積もりが、少なすぎたと思われる。バッテリー容量を3200 x 0.7 = 2240mAhとし、周辺回路電流Base、駆動時間Total、小型有機LED駆動を含むプロトコル電流Prot、ブート回数Boots、スリープ時間Sleepとすれば、次の式となる。
- 2240 x 3600 [mAsec] = Base x Total + Prot x (Total – Boots x Sleep)
この式に、3秒スリープと5秒スリープの試験結果を代入し、BaseとProtを求める。
- 8064000 = Base x 158466 + Prot x (158466 – 39065 x 3) = Base x 158466 + Prot x 41271
- 8064000 = Base x 193508 + Prot x (193508 – 31604 x 5) = Base x 193508 + Prot x 35488
⇒ Base ≒ 19.7mA, Prot ≒ 119.6mA
プロトコル時間を3秒スリープと5秒スリープの中間値 (1.062 + 1.123) / 2 = 1.0925秒 ≒ 1.1秒と仮設定する。10秒スリープの予測値は以下となる。
- 8064000 = (19.7 x (10 + 1.1) + 119.6 x 1.1) x Boots = 350.23 x Boots
- Boots ≒ 23025, Total = 23025 x (10 + 1.1) ≒ 255578sec = 70時間59分38秒

上記は10秒スリープの実験結果である。71時間31分8秒、ブート23484回となった。計算から求めた予測値( 70時間59分38秒、23025回)に、かなり近いことが分かる。なお、プロトコル時間を求めると0.962秒であった。
試験結果をまとめると以下のようになる。試験に用いたESP32開発キットは、周辺回路の消費電流が予想外に大きく、思ったほど長い連続駆動時間とはならなかった。アプリケーションに応じた周辺回路の設計が、重要なポイントであることが分かる。
| スリープ(秒) | ブート回数 | 駆動時間(秒) | 駆動時間(日時分) |
| 3 | 39065 | 158682 | 1日20時間05分 |
| 5 | 31604 | 193508 | 2日05時間45分 |
| 10 | 23484 | 257433 | 2日23時間31分 |