ESP8266/ESP32用のネットワーク管理ライブラリ

組み込み系を初めた頃に作ったライブラリ。頻繁に仕様変更してきたのでコードにはまとまりがないがよく使う機能を集約したライブラリで基本機能としてSTA(マルチAP)/APモード、NTP、OTA、WEB、MQTTに対応している。各設定値はフラッシュに保存するため基本機能に関するプログラミングは必要なくWiFiやMQTTの通信切断に伴う再接続処理も自動で行う便利なライブラリだ。再接続時にはMQTTのsubscribe()の再設定も行っている。

最初はフラッシュに保存するログ機能もあったのだが頻繁に書き込むと直ぐにフラッシュが壊れてしまうため削除してしまった。でも少量であったとしてもオンメモリでログする機能くらいは欲しいところ。今後の検討課題としておこう。

なお、MQTTにはPubSubClientライブラリを利用しており、頻繁な切断を防ぐためタイムアウト値を規定の15秒からmosquittoサーバーを前提とした10秒に変更している。

設定画面については、画面設計が大の苦手な私ではこの程度が限界...誰かもっとかっこいいのを作ってくれないかなぁ。(笑)

【esp8266 – システム・ページ】

【esp8266 – プロパティ・ページ】

【esp32 – システム・ページ】

【esp32 – プロパティ・ページ】

【ライブラリ概要】

ライブラリを初期化する。wifi_apをfalse指定(省略時)した場合、フラッシュに接続情報が保存されていればSTAモード、保存されていなければAPモードでWiFiを開始し、true指定すると強制的にAPモードを開始する。APモードではWeb経由でAP情報(SSID/PASSWORD)が登録可能。AP情報が登録されていて3分経過しても接続できない場合はAPモードに移行するが、モバイル対応のため一度でも接続に成功すると無限に接続を試行する仕様となっている。

APモードのアドレスとパスワードは、192.168.119.1

基本機能をハンドリングし戻り値にWiFi接続状態を返す。但し、MQTTサーバーを登録している場合はMQTTサーバーへの接続状態を返す。可能な限り頻繁に呼び出す必要がある。

MQTT送信を行う。詳細はMQTT/PubSubClientのドキュメントを参照。

MQTT受信トピックの登録。詳細はMQTT/PubSubClientのドキュメントを参照。

MQTT受信トピックの登録を取り消す。

MQTT受信コールバック関数を登録する。詳細はMQTT/PubSubClientのドキュメントを参照。

Webルートページにリンクを登録する。アプリ用のページを追加するときに利用する。

Web再起動処理を実行する。urlは再起動完了後に表示するページを指定する。

Webのファイル・リクエスト(SPIFFS/LittleFS)を処理する。

再起動を行う。

再起動直前に呼び出されるコールバック関数を登録する。コールバック関数では、restart()呼び出し、Web操作による再起動、OTA開始など再起動直前に実行したい処理を行う。

ホスト名(mDNS名)を取得する。

ノード名(表示名)を取得する。

CPUチップIDを取得する。IDはMACアドレスの下位3バイト。

ESP8266のみ。CPUの電源電圧を取得する。スケッチにADC_MODE(ADC_VCC);の追加が必要。

初期値設定用。getVcc()用の補正値を設定する。

初期値設定用。ノード名を設定する。

初期値設定用。AP情報を追加する。

初期値設定用。NTPサーバーを追加する。

初期値設定用。タイムゾーンを設定する。

タイムゾーンを取得する。begin()呼び出し以降に利用可能。

初期値設定用。MQTTサーバーを登録する。

初期値設定用。ビルトインLEDの出力ポートを指定する。

【サンプル・スケッチ】

【ライブラリ】

【参照ライブラリ】
ESP8266/ESP32用のプロパティ・ライブラリを作ってみた。
ESP8266/ESP32用のMultiAPライブラリを作ってみた。
PubSubClient – Arduino Reference