2.5 KiB
2.5 KiB
| title | description | keywords | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| WiFi Network Settings | Configurable WiFi network settings for STA and AP modes on ESP-32 |
|
WIFI NETWORK SETTINGS
Path : src/profiles/WiFiNetworkSettings.h
Structure for managing WiFi network configuration for ESP-32 based industrial applications. Supports both STA (station) and AP (Access Point) modes.
REQUIREMENTS
- ESP-32 platform
- WiFi capability
- ArduinoJson library
- Arduino core libraries
- IPAddress class
FEATURES
- STA (WiFi station) configuration management
- AP (Access Point) configuration management
- Conditional APSTA mode support
- JSON serialization/deserialization
- IP address, gateway, and DNS configuration
- Configuration loading from file/storage
- Debugging and logging support
DEPENDENCIES
TODOS
PERFORMANCE
- Implement memory efficient JSON handling
- Optimize IP address parsing
- Add caching mechanism for settings
SECURITY
- Implement password encryption
- Add input validation for IP addresses
- Implement secure configuration storage
- Add configuration bup and restore functionality
COMPLIANCE
- Verify WiFiAlliance compliance
- Implement industrial WiFi best practices
- Add network security protocol support
EXAMPLE
Here an example how such component is being constructed and mounted:
// Initialize WiFi settings
WiFiNetworkSettings wifiSettings;
// Load settings from JSON configuration
If (LittleFS.exists("/network.json")) {
File configFile = LittleFS.open("/network.json", "r");
DynamicJsonDocument doc(1024);
deserializeJson(doc, configFile);
configFile.close();
wifiSettings.loadSettings(doc.as<JsonObject>());
}
// Configure WiFi based on settings
WiFi.config(
wifiSettings.sta_local_IP,
wifiSettings.sta_gateway,
wifiSettings.sta_subnet,
wifiSettings.sta_primary_dns,
wifiSettings.sta_secondary_dns
);
WiFi.begin(
wifiSettings.sta_ssid.c_str(),
wifiSettings.sta_password.c_str()
);
// In AP_STA moftAPAPaT mode, also configure AP
#ifdef ENABLE_AP_STA
WiFi.softAP(
wifiSettings.ap_ssid.c_str(),
wifiSettings.ap_password.c_str()
);
WiFi.softAPConfig(
wifiSettings.ap_config_ip,
wifiSettings.ap_config_gateway,
wifiSettings.ap_config_subnet
);
#endif
// Print current configuration
wifiSettings.print();