Vira_WiFi_Connector

Vira WiFi Connector (ViraWC) - Professional WiFi configuration manager library for ESP8266 with Captive Portal, Static IP support, AsyncWebServer integration and automatic WiFi management.

1
0
1
C++
public

πŸš€ Vira WiFi Connector (ViraWC)


Professional WiFi Configuration Library for ESP8266

Designed and Developed by Mostafa Mir Mousavi
ViraMedar


πŸ“Œ Overview

Vira WiFi Connector (ViraWC) is a lightweight and professional WiFi management library designed for ESP8266 projects.

It provides an easy way to:

  • Connect automatically to saved WiFi credentials
  • Create a configuration Access Point when WiFi connection fails
  • Configure WiFi through a modern Web Captive Portal
  • Support DHCP and Static IP configuration
  • Manage WiFi settings using EEPROM
  • Integrate with ESPAsyncWebServer projects
  • Provide simple APIs for developers

The goal of ViraWC is to make ESP8266 WiFi configuration as simple as:

#include <ViraWC.h>

void setup(){

    Serial.begin(115200);

    ViraWC.begin();

    ViraWC.attach(server);

    ViraWC.setAPName("My Device");

    ViraWC.connect();

}

No complicated WiFi setup code is required.


πŸ” Keywords

ESP8266 WiFi Manager, ESP8266 Captive Portal, ESP8266 WiFi Configuration,
AsyncWebServer WiFi Manager, Arduino WiFi Library, IoT WiFi Setup,
Static IP ESP8266, EEPROM WiFi Storage


⭐ Why ViraWC?

There are many WiFi manager libraries available for ESP8266, but ViraWC was designed with a different approach:

Feature ViraWC Traditional WiFi Managers
Lightweight code βœ… ⚠️ Depends
ESPAsyncWebServer support βœ… Native ❌ Usually requires modification
Static IP configuration βœ… Built-in ⚠️ Limited
DHCP support βœ… βœ…
Modern responsive UI βœ… ⚠️ Basic
EEPROM storage βœ… βœ…
Simple API βœ… ⚠️
Automatic background service βœ… ⚠️ Depends on implementation
No additional user loop code required (ViraWC runs internal automatically) βœ… ❌
Designed for IoT products βœ… ⚠️

✨ Main Features

πŸ”Ή Automatic WiFi Connection

ViraWC automatically loads saved credentials and connects:

ViraWC.connect();

If connection succeeds:

WiFi Connected

If connection fails:

Configuration AP Running

The user can configure WiFi from a browser.


πŸ”Ή Captive Portal Configuration

When WiFi connection fails, ViraWC creates an Access Point:

SSID:
Vira WiFi Connector

IP:
192.168.4.1

The configuration page allows:

  • WiFi network scanning
  • Password entry
  • Static IP setup
  • Gateway configuration
  • DNS configuration

πŸ”Ή AsyncWebServer Support

ViraWC is designed for modern ESP8266 asynchronous projects.

Example:

AsyncWebServer server(80);

ViraWC.attach(server);

Compatible with:

  • ESPAsyncWebServer
  • IoT dashboards
  • Web control panels
  • Embedded web applications

πŸ“¦ Installation

Arduino Library Manager

Search:

Vira WiFi Connector

or install manually:

Arduino/libraries/Vira_WiFi_Connector

πŸ”§ Basic Example

#include <ESP8266WiFi.h>
#include <ESPAsyncWebServer.h>
#include <ViraWC.h>


AsyncWebServer server(80);


void setup(){

    Serial.begin(115200);


    ViraWC.begin();

    ViraWC.attach(server);

    ViraWC.setAPName(
        "My ESP8266 Device"
    );


    if(!ViraWC.connect()){

        ViraWC.startAP();

    }


    Serial.println(
        ViraWC.getConnectionS()
    );


    Serial.println(
        ViraWC.getIP()
    );


    server.begin();

}


void loop(){

}

No additional loop code is required.


πŸ“š API Reference

Initialization

begin()

Initialize ViraWC.

ViraWC.begin();

Loads saved WiFi configuration and starts internal services.


WiFi Connection

connect()

Connect to saved WiFi.

bool status = ViraWC.connect();

Returns:

true  -> Connected
false -> Failed

Access Point

startAP()

Start WiFi configuration Access Point.

ViraWC.startAP();

setAPName()

Change configuration AP name.

ViraWC.setAPName(
"Device Setup"
);

Status

getConnectionS()

Returns current connection status.

Serial.println(
ViraWC.getConnectionS()
);

Possible results:

WiFi Connected

Configuration AP Running

WiFi connection failed

getIP()

Get current IP address.

String ip =
ViraWC.getIP();

Example:

192.168.1.50

connected()

Check WiFi connection.

if(ViraWC.connected()){

}

isAP()

Check Access Point mode.

if(ViraWC.isAP()){

}

πŸ“‘ WiFi Scan API

startScan()

Start asynchronous WiFi scan.

ViraWC.startScan();

getScanResult()

Get networks as JSON.

String networks =
ViraWC.getScanResult();

Example:

[
 {
  "ssid":"HomeWiFi",
  "rssi":-40
 }
]

isScanDone()

Check scan status.

if(ViraWC.isScanDone()){

}

βš™οΈ Device Control API

Factory Reset

Erase saved WiFi.

ViraWC.factoryReset();

Restart Device

Restart ESP8266.

ViraWC.restart();

Library Version

Serial.println(
ViraWC.libver()
);

Output:

Vira WiFi Connector v1.2.0

πŸ”” Connection Callback

Execute code after successful WiFi connection:

ViraWC.onConnected([](){

    Serial.println(
    "Connected Event"
    );

});

Memory Usage

ViraWC is optimized for ESP8266:

  • Low RAM usage
  • No dynamic WiFi manager objects
  • EEPROM based storage
  • Async background tasks
  • No required loop processing

Supported Hardware

Board Support
NodeMCU ESP8266 βœ…
Wemos D1 Mini βœ…
ESP-12E/F βœ…
ESP8266 Modules βœ…

Roadmap

Future versions:

  • ESP32 support
  • JSON configuration export
  • MQTT integration
  • OTA management
  • Multi-language portal

Developer

Designed and developed by:

Mostafa Mir Mousavi (@admin3314)


πŸ“š Tutorials & Files


License

MIT License

Copyright Β© 2026 Mostafa Mir Mousavi (ViraMedar)

See the LICENSE file for full license information.

v0.3.3[beta]