Skip to content

prithwiraj84/Wireless-NAS-File-Sharing-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⚡ ESP32 Wireless NAS

C++ Arduino

Transform an ESP32 microcontroller into a fully offline, standalone Network Attached Storage device — no internet required.


📖 Overview

By creating its own Wi-Fi Access Point and interfacing with an SD card via SPI, this project lets you wirelessly store, retrieve, and manage files without requiring an active internet connection. It features a responsive web dashboard, role-based access control, and built-in security mechanisms to prevent unauthorized access.


✨ Key Features

Feature Description
📶 Standalone Access Point Creates a private local network — no external router needed
💾 SD Card Integration Supports mass storage via SPI with FAT32 MicroSD cards
🔐 Role-Based Access Control Three user tiers: Admin, User, and Viewer
🛡️ Intrusion Protection Auto IP-ban after 5 failed login attempts
📊 Real-Time Dashboard Monitor uptime, heap memory, CPU frequency & clients
📁 File Management Upload, download, delete & list files via browser
📜 Audit Logging Tracks last 100 system events and user actions

⚙️ Hardware Requirements

  • ✅ ESP32 Development Board (e.g. ESP32-WROOM-32)
  • ✅ MicroSD Card Module (SPI Interface)
  • ✅ MicroSD Card (Formatted to FAT32)
  • ✅ Jumper Wires (Female-to-Female)
  • ✅ Breadboard (Optional)

🔌 Wiring Guide — SPI Interface

SD Card Pin ESP32 Pin Description
CS GPIO 5 Chip Select
MOSI GPIO 23 Master Out Slave In
MISO GPIO 19 Master In Slave Out
SCK GPIO 18 Serial Clock
VCC 5V / 3.3V Power (check module spec)
GND GND Ground

🚀 Installation & Setup

1. Clone the Repository

git clone https://github.com/yourusername/esp32-nas.git
cd esp32-nas

2. Format the SD Card

Ensure your MicroSD card is formatted to FAT32 before inserting it into the module. EXFAT is not supported.

3. Open in IDE

Open the project folder in Arduino IDE or PlatformIO.

4. Install Required Libraries

Ensure the following standard ESP32 libraries are available:

WiFi.h
SD.h
SPI.h
WebServer.h

5. Compile & Upload

Connect your ESP32 via USB and hit Upload. Open Serial Monitor at 115200 baud to view startup logs.


💻 Usage

1️⃣ Connect to the Network

Search for Wi-Fi networks and connect to:

SSID     : wireless server
Password : password123

2️⃣ Access the Dashboard

Open a browser and navigate to:

http://192.168.4.1

3️⃣ Login Credentials

Role Username Password Access Level
👑 Admin admin adminpass Full system access — files, settings, bans, console
👤 User user userpass File management — upload, download, delete
👁️ Viewer viewer viewerpass Read-only — browse and download only

🔒 Security Notes

Warning

Change Default Credentials — It is strongly recommended to update the default apSSID, apPassword, and all user credentials in the source code before deploying in any real environment.

Note

Automatic IP Banning — The system automatically blocks an IP for 5 minutes after 5 consecutive failed login attempts. Admins can manually manage bans via the Console.


📁 Project Structure

esp32-nas/
├── src/
│   └── esp32_nas.ino       # Main source file
├── docs/
│   └── wiring_diagram.png  # Hardware wiring reference
├── assets/
│   └── screenshots/        # Dashboard screenshots
└── README.md

Made with ❤️ by Prithwiraj Das

ESP32 Wireless NAS · Open Source Project

About

The ESP32 SD Card Server is a standalone wireless file storage system that enables users to upload, browse, and download files through a web interface. This project leverages the ESP32's WiFi capabilities to create an Access Point (AP) mode server, allowing direct file management via a web browser without requiring an external internet connection.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors