2019-03-22 09:31:08 +01:00
2018-11-15 14:58:52 +01:00
2025-08-14 20:02:26 +02:00
2025-08-14 20:02:26 +02:00
2025-08-14 20:02:26 +02:00
2018-11-15 14:58:52 +01:00
2025-08-14 20:02:26 +02:00

Sprocket WiFi Network

A WiFi networking implementation for the Sprocket framework, providing both station and access point modes with configurable network settings.

Overview

The WiFi network module extends Sprocket-Core with comprehensive WiFi capabilities, supporting both client (station) and access point modes for flexible network configurations.

Features

  • Dual Mode Operation: Station mode (client) and Access Point mode
  • Configurable Networks: Support for multiple WiFi networks
  • Automatic Reconnection: Built-in connection management
  • DNS Support: mDNS hostname resolution
  • JSON Configuration: Easy setup through configuration files
  • Cross-Platform: Support for both ESP8266 and ESP32

Configuration

struct WiFiConfig {
    int stationMode;           // WiFi mode (0=AP, 1=Station, 2=Both)
    String stationSSID;        // WiFi network SSID
    String stationPassword;    // WiFi network password
    String apSSID;            // Access point SSID
    String apPassword;        // Access point password
    String hostname;          // Device hostname for mDNS
    int connectTimeout;       // Connection timeout in seconds
};

Operating Modes

Station Mode (Client)

  • Connect to existing WiFi networks
  • Automatic reconnection on disconnection
  • Configurable connection timeout
  • Support for multiple network credentials

Access Point Mode

  • Create WiFi hotspot for other devices
  • Configurable SSID and password
  • Built-in DNS server
  • Client device management

Dual Mode

  • Simultaneous station and AP operation
  • Bridge between WiFi networks
  • Mesh network capabilities

Usage Example

#include <WiFiNet.h>
#include <WiFiConfig.h>

// Configure WiFi settings
WiFiConfig wifiConfig;
wifiConfig.stationMode = 1;           // Station mode
wifiConfig.stationSSID = "MyNetwork";
wifiConfig.stationPassword = "password";
wifiConfig.hostname = "MySprocket";
wifiConfig.connectTimeout = 30;

// Create WiFi network instance
WiFiNet wifiNet(
    wifiConfig.stationMode,
    wifiConfig.stationSSID.c_str(),
    wifiConfig.stationPassword.c_str(),
    wifiConfig.apSSID.c_str(),
    wifiConfig.apPassword.c_str(),
    wifiConfig.hostname.c_str(),
    wifiConfig.connectTimeout
);

// Connect to network
wifiNet.connect();

Configuration File

WiFi settings can be configured via JSON files:

{
    "stationMode": 1,
    "stationSSID": "MyNetwork",
    "stationPassword": "password",
    "apSSID": "SprocketAP",
    "apPassword": "apassword",
    "hostname": "MySprocket",
    "connectTimeout": 30
}

Network Functions

Connection Management

  • connect() - Establish WiFi connection
  • connectStation() - Connect to configured station
  • createAccessPoint() - Start access point mode
  • isConnected() - Check connection status

DNS and Discovery

  • startDNS() - Initialize mDNS service
  • Hostname resolution for network discovery
  • Automatic service advertisement

Installation

  1. Include the WiFi network module in your Sprocket project
  2. Configure WiFi credentials and operating mode
  3. Initialize WiFiNet with your configuration
  4. Call connect() to establish network connection
  5. Monitor connection status for network management

Dependencies

  • Sprocket-Core framework
  • Arduino framework
  • ESP8266WiFi or WiFi library (ESP32)
  • ESP8266mDNS or ESPmDNS library
  • ArduinoJson library

Platform Support

  • ESP8266
  • ESP32

Examples

See the examples/ directory for complete usage examples:

  • basic/ - Basic WiFi connection and configuration

Network Security

  • WPA2 encryption support
  • Configurable access point security
  • Network isolation options
  • Client device management

Power Management

  • WiFi sleep modes for power saving
  • Configurable connection timeouts
  • Automatic power management
  • Sleep-on-idle support

Troubleshooting

  • Connection Issues: Verify SSID and password
  • Weak Signal: Check antenna and positioning
  • AP Mode: Ensure unique SSID and channel
  • DNS Issues: Verify mDNS configuration

Use Cases

  • IoT Devices: Connect sensors and actuators to WiFi
  • Home Automation: Integrate with home WiFi networks
  • Mesh Networks: Create distributed device networks
  • Remote Access: Enable remote device management

License

See LICENSE file for details.

Description
No description provided
Readme 11 MiB
Languages
C++ 89.6%
C 10.4%