Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📈 MarketPulse

Smart Live Market Price Tracker (Gold, Currency & Coins) using ESP32-S3

MarketPulse OLED Display MarketPulse Web Dashboard


GitHub stars GitHub forks Platform Framework Language

✨ About the Project

MarketPulse is a smart, miniature IoT device based on the powerful ESP32-S3 microcontroller. It fetches live market prices (gold, coins, fiat currencies, and global commodities) via API and displays them simultaneously on a local OLED screen and a responsive web dashboard. The project features a Captive Portal for easy WiFi configuration and item selection without needing to modify the source code.


🚀 Features

  • 📡 Live Data Fetching: Supports over 40 different items (Gold, Coins, Currencies, Oil, Metals).
  • 🖥️ Dual Display: Local OLED display + Responsive Web Dashboard.
  • ⚙️ Advanced Web Settings: Adjust OLED brightness, refresh intervals, auto-cycling, and select your favorite items directly from the web UI.
  • 👆 Touch Control: Short tap to change pages, long press to manually fetch new data.
  • 📶 Captive Portal: Easy WiFi setup. Just connect to the Ehsan_app AP on first boot.
  • 🕒 Live Clock: Displays real-time time alongside the WiFi signal strength icon on the OLED.
  • 📈 Trend Indicators: Displays up/down arrows for price changes.

🔌 Hardware Requirements

Component Details
Microcontroller ESP32-S3-DevKitC-1 (16MB Flash, PSRAM enabled)
OLED Display SSD1306 128x64
Touch Sensor Capacitive touch sensor module (e.g., TTP223)
Jumper Wires For connections

Pinout

Module ESP32 Pin
OLED_CLK 7
OLED_DATA 6
OLED_CS 5
OLED_DC 4
OLED_RST 8
TOUCH_PIN 11

⚙️ Setup & Installation (PlatformIO)

  1. Clone the repository:

    git clone https://github.com/TssHack/MarketPulse-ESP32.git
  2. Open the project in VS Code with the PlatformIO extension installed.

  3. The project is pre-configured for the ESP32-S3. Your platformio.ini should look like this:

    [env:esp32-s3-devkitc-1]
    platform = espressif32
    board = esp32-s3-devkitc-1
    framework = arduino
    
    monitor_speed = 115200
    upload_speed = 921600
    
    board_upload.flash_size = 16MB
    board_build.flash_size = 16MB
    board_build.flash_mode = qio
    
    board_build.partitions = default_16MB.csv
    
    build_flags =
        -DBOARD_HAS_PSRAM
        -mfix-esp32-psram-cache-issue
        -DARDUINO_USB_CDC_ON_BOOT=1
    
    lib_deps =
        olikraus/U8g2@^2.36.5
        bblanchon/ArduinoJson@^7.3.1
        mathieucarbou/AsyncTCP @ ^3.2.4
        mathieucarbou/ESPAsyncWebServer @ ^3.1.5
  4. Build and Upload: PlatformIO will automatically download the required libraries. Connect your ESP32-S3 and click "Upload".

  5. First Boot Configuration:

    • Connect to the WiFi network named Ehsan_app (Password: 12345678).
    • A captive portal will pop up. Select your home WiFi, enter the password, and choose up to 12 items to track.
    • Save and wait for the device to reboot. You can now access the local dashboard via the IP address shown on the OLED or by navigating to ehsanapp.local.

🛠️ Built With

  • Backend/Firmware: C++ (Arduino Core for ESP32-S3)
  • Web UI: HTML5, CSS3 (Glassmorphism Design), Vanilla JavaScript
  • API: TGJu API (via catplus.ir)
  • Web Server: ESPAsyncWebServer
  • Toolchain: PlatformIO

👤 Developer

Developed by Ehsan Fazli

GitHub Website Website LinkedIn Telegram Instagram X

🌟 If you found this project useful, please consider giving it a Star! 🌟