EasyWifi is a simple, intuitive, and visually appealing Wi-Fi connection manager for ESP32 devices. It focuses on delivering a seamless experience for end users with minimal setup and user-friendly interfaces.
- Captive Portal: You will be automatically redirected to Configure Wi-Fi settings via a web interface,
- Persistent Storage: Supports NVS for saving credentials.
- Fallback Mode: Automatically switches to AP mode if no connection is available.
- AsyncWebServer Integration: Provides fast and responsive web interfaces.
- Beatiful Lighweight and customizable UI: You can config the webpage using LittleFS or EEPROM
PlatformIO is an open-source ecosystem for IoT development with a cross-platform build system, library manager, and full support for Espressif ESP32 development. It works on popular host OS: Mac OS X, Windows, Linux 32/64, Linux ARM (like Raspberry Pi, BeagleBone, CubieBoard).
- Install Visual Studio Code if not already installed.
- Install the PlatformIO IDE extension:
- Create new project using "PlatformIO Home > New Project", Follow the
documentation
Add EasyWifi to your project using the platformio.ini configuration file and the lib_deps option:
[env:myboard]
platform = espressif32
board = esp32dev
framework = arduino
#using latest stable version
lib_deps = tuizins/EasyWifi
# Using the latest development version
lib_deps = https://github.com/Arthur5492/EasyWiFi-ESP32.git#include <Arduino.h>
#include <easyWifi.h>
// Optional: Define a custom timeout for the Captive Portal (in milliseconds)
#define SHUTDOWN_TIMEOUT 180000 //You can define the timeout for the captive portal to shutdown
void setup() {
Serial.begin(115200);
// Example 1: Use default Captive Portal settings
easyWifi.setup();
// Example 2: Customize all at once
// easyWifi.setup("MyESP32", "12345678", SHUTDOWN_TIMEOUT);
}
void loop() {
easyWifi.update(); //Just like that
//.... Your code here
delay(10);
}
This project is still under development. If you find any bugs or have ideas for improvements, please create an issue or submit a pull request. Thank you!
- Implement websocket method instead of simple https requests, so we can remove all state machine logic!
- Add more wifi's networks to NVS, storing structs instead of separated values.
