Skip to content

STM32F4-based self-checkout system using an MFRC522 RFID reader, SSD1306 OLED, buzzer, and LED — scans tagged items, identifies them, and provides visual and audio feedback for a smart billing demo.

Notifications You must be signed in to change notification settings

isha050/RFID-Self-Checkout-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

Smart Self-Checkout System Using RFID, OLED Display, and Bluetooth

Overview

The Smart Self-Checkout System is an embedded system designed to automate the retail billing process using RFID technology, OLED display, and Bluetooth communication.
Each product is equipped with an RFID tag that, when scanned, adds the corresponding item to the customer’s digital cart.
The system maintains a record of all scanned items, their quantities, and total cost.
After scanning, a bill summary is displayed on the OLED screen and transmitted wirelessly via Bluetooth to a mobile device or terminal.


Objectives

  • Develop an automated self-checkout system using RFID tags.
  • Implement real-time billing and cart management.
  • Enable Bluetooth-based transmission of the final bill.
  • Design a user interface using OLED display and control buttons.
  • Integrate analog input for scrolling and navigation.

Features

  • RFID-based product detection and identification.
  • Dynamic cart management for multiple unique products.
  • Real-time display of scanned items on OLED.
  • Scrollable bill view using potentiometer input.
  • Button-controlled billing and system reset functionality.
  • Auto-reset after a fixed idle period.
  • Bluetooth transmission of the final bill summary.
  • Audio confirmation through buzzer feedback.

Hardware Components

Component Description Interface
STM32F4xx Microcontroller Central controller for the system -
RC522 RFID Module Reads RFID tags SPI
SSD1306 OLED Display Displays product and billing information I²C
HC-05 / HC-03 Bluetooth Module Wireless transmission of bill summary UART
Potentiometer Scroll control for item navigation ADC
Push Button Trigger to view total bill or reset GPIO
Buzzer Audio feedback indicator GPIO

System Architecture

1 RFID Scanning

Each product has a unique RFID tag. When scanned, the UID is matched with the product database.
If a match is found, the item is added to the cart; otherwise, an “Invalid Tag” message is displayed.

2 Cart Management

The system maintains a list of up to ten unique products.
If an item is scanned multiple times, its quantity is incremented.

3 Display System

The SSD1306 OLED screen provides real-time feedback including product details, total amount, and error messages.
It also supports scrollable billing information using the potentiometer.

4 Billing Interface

  • The button (PA0) initiates bill viewing or system reset.
  • The potentiometer is used to scroll through the bill.
  • After 10 seconds of inactivity post-billing, the system resets automatically.

5 Bluetooth Output

The final bill summary is transmitted to a paired device through the HC-03/HC-05 module via UART.


Workflow

  1. System Initialization: OLED displays “Welcome” and prompts the user to scan an item.
  2. RFID Scanning: The user scans an RFID tag, and the system identifies and adds the corresponding product to the cart.
  3. Display Feedback: The OLED shows the item name, price, and confirmation message.
  4. Cart Update: The cart updates automatically for duplicate scans and maintains the total cost.
  5. Billing Process: Pressing the button displays the total bill; the potentiometer allows scrolling through the item list.
  6. Bluetooth Transmission: The bill is sent to a connected Bluetooth device in formatted text.
  7. Auto Reset: After 10 seconds of inactivity, the system clears memory and resets.

Hardware Connections (STM32F4 Example)

Peripheral STM32 Pin Connected To
RC522 (SPI) SPI1: SCK=PA5, MISO=PA6, MOSI=PA7, NSS=PA4 RFID Module
OLED (I2C) I2C1: SCL=PB6, SDA=PB7 OLED Display
Bluetooth USART2: TX=PA2, RX=PA3 HC-03 / HC-05
Potentiometer ADC1_IN1 = PA1 Analog Input
Button GPIO = PA0 User Button
Buzzer GPIO = PB2 Buzzer Output

Software Configuration

  • Development Environment: STM32CubeIDE or Keil uVision
  • Programming Language: C (HAL-based firmware)
  • Peripheral Drivers: SPI, I2C, UART, ADC, GPIO

Required Files:

  • main.c – Core program logic
  • rc522.c/h – RFID driver files
  • ssd1306.c/h – OLED display driver files
  • stm32f4xx_hal_conf.h – HAL configuration file

Steps:

  1. Configure project in STM32CubeIDE with required peripherals.
  2. Import and include the necessary driver files.
  3. Build and flash the project to the STM32 board using ST-Link.
  4. Pair the Bluetooth module with a mobile phone or PC.
  5. Use a serial terminal app (e.g., Serial Bluetooth Terminal) at 9600 baud to view the transmitted bill.

About

STM32F4-based self-checkout system using an MFRC522 RFID reader, SSD1306 OLED, buzzer, and LED — scans tagged items, identifies them, and provides visual and audio feedback for a smart billing demo.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published