Here’s a well-structured project proposal for your smart file sharing system, including:
- 📄 Project Description
- 🧱 System Architecture
- 🗂️ Module Breakdown
- 🔐 Security Approach
- 🔧 Technologies Used
- 🧭 Expected Output
- 🗺️ System Block Diagram
- 💻 Example Microcontroller Code Snippet (ESP32 Web Server base)
Smart Wi-Fi File Sharing System Using ESP32
This project aims to design a smart and secure local file-sharing system that allows multiple mobile devices to wirelessly share their storage with multiple computers over a Wi-Fi network, using a microcontroller (ESP32) as a central Access Point and File Router. Unlike conventional file transfer apps, this system reflects mobile storage to computers as network drives or folders, accessible securely using passwords.
- ESP32 Microcontroller: Acts as a Wi-Fi AP and Web Server.
- Mobile Devices: Connect via Wi-Fi and expose files using an app or web UI.
- Computers: Access mobile storage via SMB/WebDAV or web interface.
- Security Module: Ensures only authorized users access shared storage.
Module | Description |
---|---|
ESP32 Access Point | Creates a private Wi-Fi network for all devices. |
Web Server | Hosts a file manager interface for connected devices. |
Mobile File Sync | App or browser interface to select files/folders to share. |
PC Client Access | PCs access mobile file systems as shared folders (network drive). |
Authentication | Each mobile device is protected with a password per session. |
- Each mobile uploads a file share request with a session password.
- Computers must enter this password to access that mobile’s storage.
- Sessions are temporary and expire after logout or timeout.
- Data is not stored permanently on ESP32—just proxied/transferred.
Purpose | Tool / Platform |
---|---|
Microcontroller | ESP32 |
IDE | Arduino IDE |
Networking | Wi-Fi (ESP32 Soft AP) |
File Sharing | HTTP + JSON, WebDAV (optional) |
PC Access | Web Browser or custom drive mapper |
Security | Hashed passwords (SHA256 or bcrypt) |
- Computers will see each connected mobile device as a sharable folder or virtual drive.
- Files can be browsed/downloaded over a local network.
- Password prompt ensures authorized access.
- Optional Google Drive login via the mobile app (future upgrade).
+-------------------+ +------------------+
| |<------->| Computer 1 |
| Mobile 1 | +------------------+
| [Select Files] | ▲
+-------------------+ |
▲ ▲ |
| | +-------------+ |
+-------------------+ ESP32 (AP) |<--+
| Mobile 2 |<------------+ |
| [Select Files] | - Wi-Fi AP |
+-------------------+ - File Server |
- Auth Control |
▲ |
| v
+-------------------+ +------------------+
| Mobile N |<------->| Computer N |
| [Select Files] | +------------------+
+-------------------+
Here’s a minimal ESP32 Web Server code to start your prototype:
#include <WiFi.h>
#include <WebServer.h>
const char* ssid = "FileShare_AP";
const char* password = "12345678";
WebServer server(80);
void handleRoot() {
server.send(200, "text/html", "<h1>Mobile File Sharing Portal</h1><form method='POST' enctype='multipart/form-data' action='/upload'><input type='file' name='upload'><input type='submit'></form>");
}
void handleUpload() {
HTTPUpload& upload = server.upload();
if (upload.status == UPLOAD_FILE_START) {
Serial.printf("UploadStart: %s\n", upload.filename.c_str());
} else if (upload.status == UPLOAD_FILE_WRITE) {
Serial.printf("UploadWrite: %u bytes\n", upload.currentSize);
} else if (upload.status == UPLOAD_FILE_END) {
Serial.printf("UploadEnd: %s (%u)\n", upload.filename.c_str(), upload.totalSize);
server.send(200, "text/html", "File Uploaded");
}
}
void setup() {
Serial.begin(115200);
WiFi.softAP(ssid, password);
Serial.println("Access Point Started");
server.on("/", HTTP_GET, handleRoot);
server.on("/upload", HTTP_POST, []() {}, handleUpload);
server.begin();
}
void loop() {
server.handleClient();
}
- Full mobile app to automate file selection.
- Google Drive integration (via API) for PC access.
- Download progress, file queuing, and logging.
- OTA (Over-the-air) updates for the ESP32 firmware.