Skip to content

Test task to join R&D team. ESP32 based data storage with WEB interface and telegram bot to upload and download files

Notifications You must be signed in to change notification settings

JarikDem-Bot/esp32-storage-improTest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ESP32 Storage

File storage with WEB Interface and telegram bot to upload/download/delete files. Based on ESP32 with connected micro SD card.

README українською

Features

  • 🌐 Web Interface

    • Simple interface
    • Upload files
    • View list of stored files
    • Check used and total SD card space
    • Automatically updates the list every 30 seconds and after each action
    • Download or delete files
  • 🤖 Telegram Bot

    • Secure - only users specified in program are able to use bot
    • Get link to the Web Interface
    • Get list of all stored files
    • Check used and total SD card space
    • Delete/download any file by name
    • Upload any file just by sending it to the chat
  • 🛜 Over The Air updates

    • Automaticaly updates firmware through the Internet
    • Binary file with firmware stored on GitHub repository
    • Uploads only newer version
    • Checks for updates every 30 minutes

Installation

  1. Clone this repository using git clone https://github.com/JarikDem-Bot/esp32-storage-improTest.git

  2. Connect micro SD card adapter to ESP32:

Micro Sd Adapter ESP32
CS D5
SCK D18
MOSI D23
MISO D19
VCC VIN
GND GND
  1. Configure the Arduino IDE to work with ESP boards. More info here

  2. Open esp32-storage.ino in esp32-storage/ folder

  3. Select ESP32 Wrover Module board

  1. Install required libraries if they aren't installed already
  1. Open password.h and change values if needed:
  • BOT_TOKEN - token of your telegram bot
  • allowedUsers - array of telegram userIDs of users allowed to use your bot
  • otaUrl - link to binary file on your GitHub repository in format https://raw.githubusercontent.com/username/repoName/branch/pathToFile/filename.bin
  • server_certificate - certificate
  1. Select board and upload program

  2. If board will be unable to connect to WiFi, it will create Access Point named "ESP32 Storage". By clicking on it, you will be redirected to the web page, where you can select WiFi credential.

  3. Enjoy:)

Showcase

Web Interface

  • Upload file
  • View files
  • Download files
  • Delete files
  • Looks surprisingly good on phones

Telegram Bot

  • Access granted only for scpecified users
  • View files
  • Download file by name
  • Delete file by name
  • Upload file by sending to the chat
  • Get link to the Web Interface
  • Help message

WiFi setup through AP

  • If board is unable to connect to previous WiFi, it will start AP

OTA

  • Automatic firmware update
  • Binary file stored on GitHub
  • Compares version with current
  • Checks for update every 30 minutes

TODO

  • Get allowed users list for TG Bot from file on SD card
  • Add folders on the SD
  • Web Interface authentification

About

Test task to join R&D team. ESP32 based data storage with WEB interface and telegram bot to upload and download files

Topics

Resources

Stars

Watchers

Forks