This project is an Arduino-based application that manages WiFi connectivity, LED control, and ESP device information. It uses the [WiFiManager](https://github.com/tzapu/WiFiManager) library to handle WiFi connections with fallback to Access Point (AP) mode and a captive portal for configuration.
## Features
- **WiFi Management**: Automatically connects to saved WiFi credentials or starts an AP with a captive portal for configuration if no connection is possible.
- **ESP Information**: Displays ESP device information such as chip ID and flash size.
- **LED Control**: Provides functionality for controlling LEDs (e.g., cycling through colors).
- **Web Server**: (Placeholder for potential web server functionality).
## Project Structure
The project is organized as follows:
```
src/
├── esp_info.cpp # Handles ESP device information
├── esp_info.h
├── index.h # Placeholder for web server content
├── led_control.cpp # Handles LED control logic
├── led_control.h
├── main.cpp # Main entry point for the application
├── web_server.cpp # Placeholder for web server functionality
├── web_server.h
├── wifi_manager.cpp # Manages WiFi connectivity
├── wifi_manager.h
```
### Key Components
#### `main.cpp`
The main entry point of the application. It initializes the WiFi manager, prints ESP information, and sets up LED control.
#### `wifi_manager.cpp` and `wifi_manager.h`
Manages WiFi connectivity using the `WiFiManager` library. It attempts to connect to saved WiFi credentials and falls back to AP mode with a captive portal if the connection fails.
#### `esp_info.cpp` and `esp_info.h`
Provides functions to retrieve and display ESP device information such as chip ID and flash size.
#### `led_control.cpp` and `led_control.h`
Handles LED control logic, such as cycling through colors or setting specific patterns.
#### `web_server.cpp` and `web_server.h`
(Placeholder) Intended for implementing web server functionality.