feat: WiFiManager captive portal provisioning

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-14 06:44:06 -07:00
parent 988443f207
commit 29737d735a
2 changed files with 31 additions and 0 deletions

View File

@@ -0,0 +1,24 @@
// firmware/src/provisioning.cpp
#include "provisioning.h"
#include "config.h"
#include <WiFiManager.h>
bool provisioning_run(uint32_t timeout_ms) {
WiFiManager wm;
wm.setConfigPortalTimeout(timeout_ms / 1000);
wm.setTitle("DoorCounter Setup");
wm.setCustomHeadElement(
"<style>"
"body{font-family:sans-serif;max-width:400px;margin:40px auto;padding:0 16px}"
"h1{font-size:1.2em;color:#333}"
"p{color:#666;font-size:.9em}"
"</style>"
);
bool connected = wm.startConfigPortal("DoorCounter-Setup");
if (connected) {
config_save_wifi(wm.getWiFiSSID(), wm.getWiFiPass());
}
return connected;
}

View File

@@ -0,0 +1,7 @@
// firmware/src/provisioning.h
#pragma once
#include <stdint.h>
// Start WiFi captive portal AP and block until user submits credentials
// or timeout_ms elapses. Returns true if WiFi credentials were saved.
bool provisioning_run(uint32_t timeout_ms = 5 * 60 * 1000);