DEV Community

Cover image for Indian Currency Recognition Using ESP32-CAM & Edge Impulse
David Thomas
David Thomas

Posted on

Indian Currency Recognition Using ESP32-CAM & Edge Impulse

Can a small and affordable board like the ESP32-CAM recognise Indian currency notes in real time?

Yes — and that’s exactly what this project demonstrates.

In this ESP32 CAM Currency Recognition project, the ESP32-CAM is combined with Edge Impulse to create an offline currency recognition system capable of identifying Indian Rupee notes using embedded machine learning. The entire AI model runs directly on the device, meaning no cloud processing is required after deployment.

Once trained, the system detects the currency denomination placed in front of the camera and provides instant feedback using LEDs and Serial Monitor output.


What You’ll Learn

  • TinyML & Edge AI fundamentals
  • ESP32-CAM camera interfacing
  • Edge Impulse ML workflow
  • Dataset collection & labeling
  • Object detection on microcontrollers
  • Arduino deployment of ML models

What is ESP32-CAM Currency Recognition?

This project uses machine learning on embedded hardware to classify Indian currency notes locally.

Instead of sending images to cloud servers, the ESP32-CAM:

  1. Captures an image
  2. Runs inference locally
  3. Predicts the denomination
  4. Displays results instantly

Visual-Recognition-Results-of-Different-Currencies

Each denomination activates a dedicated LED while the detected value appears on the Serial Monitor.

This approach enables real-time AI processing directly at the edge.


Understanding AI on Edge

Edge AI means running artificial intelligence directly on devices like microcontrollers instead of relying on remote servers.

Benefits:

  • Low latency response
  • Offline operation
  • Improved privacy
  • Reduced network dependency
  • Faster decision making

With platforms like Edge Impulse, even compact boards like ESP32-CAM can perform computer vision tasks efficiently.


Components Required

Component Quantity Purpose
ESP32-CAM 1 Image capture & ML inference
USB-to-Serial Converter 1 Programming
LEDs (4 colors) 4 Denomination indication
100Ω Resistors 4 LED protection
Breadboard 1 Prototyping
Jumper Wires As needed Connections
Arduino IDE Code deployment
Edge Impulse Studio Model training

Hardware-Setup-of-Currency-Recognition-System


Hardware Setup

The ESP32-CAM connects to an FTDI programmer for uploading code and monitoring output.

Basic Connections

  • FTDI TX → ESP32 RX
  • FTDI RX → ESP32 TX
  • 5V → 5V
  • GND → GND
  • GPIO0 → GND (during upload)

Each LED connects to a GPIO pin through a 100Ω resistor, representing different currency denominations.


Workflow Overview

The project follows three main stages:

  1. Dataset Collection
  2. Model Training using Edge Impulse
  3. Deployment on ESP32-CAM

Labeling-the-Indian-Currency


Dataset Collection

High-quality training data is critical.

Recommended approach:

  • Capture 50+ images per denomination
  • Use consistent lighting
  • Prefer plain backgrounds
  • Maintain fixed camera distance
  • Include angle variations

Supported denominations example:

  • ₹10
  • ₹20
  • ₹50
  • ₹500

Images are captured directly using the ESP32-CAM web interface.

Results-of-the-Trained-Model-Accuracy


Practical Applications

- Assistive Technology
Helps visually impaired users identify currency with future audio output support.
- Retail & POS Systems
Automated denomination verification during transactions.
- Currency Counters
Automatic sorting and counting systems.
- Smart Vending Machines
Recognise inserted notes before dispensing products.

This ESP32 CAM Currency Recognition shows how embedded AI is no longer limited to powerful computers. With ESP32-CAM and Edge Impulse, real-time computer vision can run on a low-cost microcontroller entirely offline.

It’s a practical introduction to:

  • TinyML
  • Edge Computing
  • Embedded Vision Systems

If you're exploring AI and ESP32 project, this project is an excellent starting point toward intelligent edge devices.

Top comments (0)