Warning: count(): Parameter must be an array or an object that implements Countable in /home/green-rabbit/rabbit-note.com/public_html/wp-content/plugins/wordpress-ping-optimizer/cbnet-ping-optimizer.php on line 533

ESP32 で WiFi 常時接続する方法

ESP32 で無線 LAN を常に接続する方法を紹介します.

背景

ESP32 の特長である低消費電力を生かして乾電池駆動で使う場合,必要な時のみ無線 LAN に使うのがセオリーです.一方,ESP32 を無線 LAN 内蔵の単電源小型マイコンとしてフル活用する場合,無線 LAN の常時接続をしたくなります.

そこで,できる限り無線 LAN の接続を維持するサンプルを作ってみました.

方針

次の方針としました.

  • 無線 LAN の接続状態を監視するタスクを走らせ、切断されたらすぐに再接続
  • 監視タスクの動作は WatchDogTimer で監視
  • 無線 LAN の接続が連続して一定回数失敗したら一端リセットして再起動

コード

コード全体は次のようになります.

使い方

無線 LAN に接続するには次のようにします.

wifi_start は無線 LAN 接続が完了したことを示すセマフォです.

HTTP サーバー等,無線 LAN 接続が完了してから走らせたいタスクを走らせたい場合に次のようにして使います.必要ない場合 wifi_start は NULL に置き換えて OK です.