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.
- 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.
- 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.
| 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 |
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.
The system maintains a list of up to ten unique products.
If an item is scanned multiple times, its quantity is incremented.
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.
- 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.
The final bill summary is transmitted to a paired device through the HC-03/HC-05 module via UART.
- System Initialization: OLED displays “Welcome” and prompts the user to scan an item.
- RFID Scanning: The user scans an RFID tag, and the system identifies and adds the corresponding product to the cart.
- Display Feedback: The OLED shows the item name, price, and confirmation message.
- Cart Update: The cart updates automatically for duplicate scans and maintains the total cost.
- Billing Process: Pressing the button displays the total bill; the potentiometer allows scrolling through the item list.
- Bluetooth Transmission: The bill is sent to a connected Bluetooth device in formatted text.
- Auto Reset: After 10 seconds of inactivity, the system clears memory and resets.
| 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 |
- 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 logicrc522.c/h– RFID driver filesssd1306.c/h– OLED display driver filesstm32f4xx_hal_conf.h– HAL configuration file
Steps:
- Configure project in STM32CubeIDE with required peripherals.
- Import and include the necessary driver files.
- Build and flash the project to the STM32 board using ST-Link.
- Pair the Bluetooth module with a mobile phone or PC.
- Use a serial terminal app (e.g., Serial Bluetooth Terminal) at 9600 baud to view the transmitted bill.