Introduction
A Smart Shopping Trolley is an innovative solution for modern retail stores, designed to assist customers, track items, and automate billing. By integrating IoT, sensors, and automation, a smart trolley improves shopping efficiency and user convenience.
This project is useful for supermarkets, smart malls, and retail research projects.
Objective of the Project
- To track products placed in the trolley using sensors
- To provide automatic billing and reduce checkout time
- To monitor the trolley’s movement and location
- To demonstrate smart retail technology
Working Principle
- The trolley is equipped with weight sensors or RFID sensors to detect products
- Each product is tagged with RFID tags or barcodes
- When a product is placed in the trolley, sensor data is sent to microcontroller
- Microcontroller processes items and calculates total cost
- Optional: IoT integration sends the shopping list and bill to a mobile app
- Some designs also include trolley movement tracking and anti-theft mechanisms
Components Required
- Arduino / ESP32
- RFID Reader Module (RC522)
- RFID Tags (for products)
- LCD / OLED Display (for showing total)
- Buzzer (for alerts)
- Wi-Fi Module (ESP8266 / ESP32 built-in) for IoT
- Power supply and trolley frame
- Jumper wires
Block Diagram
RFID Tag on Product
↓
RFID Reader on Trolley
↓
Arduino / ESP32
↓
LCD / OLED Display
↓
Total Price & Notifications
↓
Optional: Mobile App (IoT)
Circuit Connections (Arduino + RFID)
RFID RC522
SDA → D10
SCK → D13
MOSI → D11
MISO → D12
IRQ → Not Used
GND → GND
3.3V → 3.3V
RST → D9
LCD 16×2
RS → D7
EN → D6
D4 → D5
D5 → D4
D6 → D3
D7 → D2
VSS → GND
VDD → 5V
V0 → Potentiometer middle pin
Buzzer
+ → D8
- → GND
Arduino Code (Smart Shopping Trolley)
#include <SPI.h>
#include <MFRC522.h>
#include <LiquidCrystal.h>
#define RST_PIN 9
#define SS_PIN 10
MFRC522 mfrc522(SS_PIN, RST_PIN);
LiquidCrystal lcd(7,6,5,4,3,2);
int buzzer = 8;
struct Product {
String uid;
String name;
int price;
};
// Example Product Database
Product products[] = {
{"04 A1 B2 C3 D4", "Milk", 50},
{"12 34 56 78 90", "Bread", 30},
{"AB CD EF 12 34", "Eggs", 70}
};
void setup() {
lcd.begin(16,2);
Serial.begin(9600);
SPI.begin();
mfrc522.PCD_Init();
pinMode(buzzer, OUTPUT);
lcd.print("Smart Trolley");
delay(2000);
lcd.clear();
}
void loop() {
if ( ! mfrc522.PICC_IsNewCardPresent()) return;
if ( ! mfrc522.PICC_ReadCardSerial()) return;
String uid = "";
for (byte i = 0; i < mfrc522.uid.size; i++) {
uid += String(mfrc522.uid.uidByte[i], HEX);
if(i < mfrc522.uid.size-1) uid += " ";
}
Serial.println(uid);
bool found = false;
for(int i=0; i<3; i++){
if(products[i].uid == uid){
lcd.clear();
lcd.print(products[i].name);
lcd.setCursor(0,1);
lcd.print("Price: Rs ");
lcd.print(products[i].price);
Serial.print("Product: ");
Serial.println(products[i].name);
Serial.print("Price: ");
Serial.println(products[i].price);
digitalWrite(buzzer, HIGH);
delay(200);
digitalWrite(buzzer, LOW);
found = true;
break;
}
}
if(!found){
lcd.clear();
lcd.print("Product Not Found");
}
delay(1000);
}
Code Explanation
- RFID reader reads UID of product tag
- Microcontroller checks UID against predefined product database
- If matched, product name and price are displayed on LCD
- Buzzer gives a notification for scanned item
- Optional IoT integration can send data to a mobile app for billing
Advantages
- Automates product scanning and billing
- Reduces checkout time
- Enhances customer shopping experience
- Can be integrated with IoT for advanced features
Applications
- Smart supermarkets and malls
- Retail automation
- Self-checkout systems
- Educational projects on IoT and automation
Future Enhancements
- Integration with mobile app for automatic billing
- Weight sensors to detect product removal or addition
- QR code scanning for cheaper tags
- Anti-theft mechanism using IoT alerts
Conclusion
The Smart Shopping Trolley is a mini + innovation project that demonstrates IoT, RFID technology, and smart retail automation. It helps streamline shopping, reduces manual effort, and showcases modern technology in retail systems.
