読者です 読者をやめる 読者になる 読者になる

知的好奇心 for IoT

IoT関連の知的好奇心を探求するブログです

WIO NODEで謎のリセットが繰り返される。USB電源には注意!

ESP8266 WIO NODE

秋葉原秋月電子の店頭で何気なくWIO NODEを見かけて、その場でスマホを取り出し仕様をチェックしたときには「これで、Raspberry Piよりずっと安くコンパクトにIoT機器が作れる!」っと喜び勇んでいました。

しかし、Arduino IDEでプログラミングして機器に組み込んで運用してみると...、取り付け時は動作しているのに時間が経つと動かなくなっている...。

最初はプログラミングの問題でメモリリーク的な事が発生しているのかと思ったのですが、トラ技に載っていた「ESPスタータ・キットXブレッドボードボードで作るIoT実験ボード」では問題が起きない...。WIO NODEでいったい何が起きているのだろう...。

そんなある時、ESP8266 core for Arduinoのドキュメントを眺めていたらESP-specific APIsという項目に前回のリセット理由を返すESP.getResetReason()を見つけました。

早速setup()の中に記述してみると...

記述例

Serial.println("/r/nReset Reason: " + ESP.getResetReason());

表示例

Reset Reason: Power on

「Power on ???」そう言えばトラ技の記事には電源に47μFのデカイ電解コンデンサが付いているのに、不安定な場合は470μFってカッコ書きがあった...。

手持ちのUSB電源アダプタ4種類では、リセット頻度が変わるだけで全滅でした。

試しに千石電商で購入していたリチウムイオンポリマー電池を繋げてみると...リセットが起きない!マジですかっ!!!

組み込もうとしていたIoT機器は常時動作している必要があってしかもAC電源がある場所であったため、電源にUSB電源アダプタを選択していました。

結局、USB電源アダプタとリチウムイオンポリマー電池の両方を繋げてバッテリーを充電する状態にしても安定して動作することがわかったので、費用がかさむのですがバッテリー交換を無くしてメンテナンスフリーにできる方法を選ぶことにしました。