Skip to content

A smart file-sharing system using ESP32 as a Wi-Fi access point to reflect mobile storage on connected computers via web interface and secure access.

Notifications You must be signed in to change notification settings

akashdip2001/WiFi-MultiDrive

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

WiFi-MultiDrive

Here’s a well-structured project proposal for your smart file sharing system, including:

  1. 📄 Project Description
  2. 🧱 System Architecture
  3. 🗂️ Module Breakdown
  4. 🔐 Security Approach
  5. 🔧 Technologies Used
  6. 🧭 Expected Output
  7. 🗺️ System Block Diagram
  8. 💻 Example Microcontroller Code Snippet (ESP32 Web Server base)

📄 Project Title:

Smart Wi-Fi File Sharing System Using ESP32


🧠 Project Description:

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.


🧱 System Architecture:

Components:

  • 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 Breakdown:

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.

🔐 Security Features:

  • 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.

🧰 Technologies Used:

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)

🧭 Expected Output:

  • 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).

🗺️ Block Diagram:

+-------------------+         +------------------+
|                   |<------->|     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]   |         +------------------+
+-------------------+

💻 Example ESP32 Code Snippet (Arduino IDE)

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();
}

✅ Future Enhancements:

  • 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.

About

A smart file-sharing system using ESP32 as a Wi-Fi access point to reflect mobile storage on connected computers via web interface and secure access.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published