ESP32がモバイルWi-Fiルータに接続できない問題

スポンサーリンク
Timer Camera

Timer Cameraにて、一定時間間隔で「起動」→「静止画を撮影」→「モバイルWi-Fiルータに接続」→「Webサーバに画像データを送信」→「スタンバイ状態に移行」という処理を繰り返し実行しているのですが、これまで快調に動作していたデバイスが、急にデータ送信できなくなりました。
Timer Cameraを再起動したり、同じスケッチを書き込み直したりしても状況は変わりません。これまで長期間にわたり問題なく動作しており、また、同じスケッチを書き込んだ別のTimer Cameraデバイスは相変わらず順調に動作し続けていることから、スケッチの問題ではないように思います。

そのため、問題の発生しているTimer CameraをPCにつなぎ、シリアルモニタでメッセージを確認してみました。すると、Wi-Fi接続時に以下のようなエラーメッセージが表示され、Wi-Fiネットワークに接続できていないことが分かりました。

E (XXXXX) wifi:Set status to INIT
E (XXXXX) wifi:sta is connecting, return error

確認のため、Wi-Fiの接続先を別のWi-Fiルータに変更したところ、正常にデータ送信できました。しかし、接続先を元のモバイルWi-Fiルータに戻すと、相変わらずエラーメッセージが表示され、Wi-Fi接続できません。

問題のモバイルWi-Fiルータには複数台のIoTデバイス(いずれもESP32)が接続しているのですが、今回問題が生じたTimer Camera以外のデバイスはいずれも問題なく接続できており、ルータの通信機能自体が停止している訳ではなさそうです。
ただ、ネット検索すると「ルータを再起動しなさい」というようなコメントが見つかり、他に良い対策も思い浮かばないことから、問題のモバイルWi-Fiルータを再起動してみました。
すると、上記のエラーメッセージは表示されなくなり、正常に画像データをWebサーバに送信できるようになりました。

結局、原因はよく分からないままですが、上記のエラーはルータの再起動で解消できました。
なお、本件はTimer Cameraのみの問題ではなく、ESP32デバイスならいずれでも生じる可能性のある問題のようです。