firmware-base/docs/profiles/WifiSettings.md

2.5 KiB

title description keywords
WiFi Network Settings Configurable WiFi network settings for STA and AP modes on ESP-32
WiFi
network
configuration
ESP-32
STA
access point
AP
modbus
IP

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();