3D Shopping, a project to provide all-new shopping experience where 3D stands for Security, Shopping and e-Billing. Bring an end to long queues for billing. In supermarkets you will first pick up things in a trolley, then stand in a long line to bill them and get your things. In this 3D-Shopping, the trolley will have a RFID reader which will read all the products put into the cart. The cart will also have a display unit which will be displaying the bill amount. Once you finish your shopping press the bill button it will be sent to the server using Wi-Fi were you just need to pay the amount. If you don’t want to waste time you can swipe the cards from the trolley itself.


block diagram of 3d shopping


server side

Components Required

  • RFID Reader
  • PIC microcontroller
  • Wi-Fi Module
  • PC
  • LCD
  • Select buttons
  • IR sensor
  • Buzzer


The system can be divided into 2 sections namely transmitter and server. Transmitter section basically consists of select buttons, RFID reader, LCD, microcontroller, IR sensors and buzzer. Server section has a Wi-Fi module and a PC.

Here 16F887A is used as microcontroller. It is a PIC microcontroller.PIC stands for Peripheral Interface Controller.  It is a 40 pin IC. In 16F877A ‘F’ stands for flash memory and ‘A’ stands for its variant and it belongs to 8-bit category. The inbuilt peripherals, ease of use, low cost, low power consumption, flexibility EEPROM etc. make it excellent option for this project. The pin description is given below: 


The communication between the transmitter and sever will be wireless. Here for wireless communication Wi-Fi module is used. Wi-Fi is a wireless technology which enables electronic devices to connect wirelessly to the available LAN network. As Wi-Fi is a wireless communication, having no physical connection between the transmitter and server the data are transmitted and received using RF signal. A Wi-Fi module is selected because the PIC doesn’t have the provision for Ethernet connection. This Wi-Fi module has a serial to Wi-Fi which can be interfaced to the PIC through its serial communication UART. Here we are using ESP8266. The pin out is give below:

ir sensor

Wi-Fi module works on 3.3V. The TX pin is connected to the Rx pin of the PIC for receiving the data which has to be transmitted to the server side.

Since this project is considerate about shopping thing the whole set up is mounted on a trolley usually found in the supermarket. The system will be powered on when you collect the trolley while entering the shop. In the LCD display a message will pop up to select the mode. There will be 2 selection switches: SHOP & BILL. For shopping the commodities you to select ‘SHOP’ and once you are finished with the shopping press ‘BILL’ to get the total amount and to proceed for the bill payment in the counter. The switches will be connected to Port A of the microcontroller. If the selection is made then the corresponding pin will go high. If shop is selected then the pin connected to it will go high and it will enter into shop mode. In this mode, the customers can pick the required commodities and the total number and total amount will be displayed in the LCD interfaced with the PIC microcontroller.

To get the number 2 IR sensor modules will be placed on the trolley one at top and another at the bottom. An IR sensor consists of an IR LED and an IR photodiode. Photodiode will be sensitive to the same wavelength emitted by the LED.  The image depicts the working principle of the IR sensor module. The IR LED will be emitting the IR rays continuously, when an object comes in between its field of sight the rays gets reflected back and they will be detected by the photodiode. The resistance of the photodiode varies resulting in a change in the output voltage.

ir principle

Here whenever a commodity is placed into the trolley or removed from the trolley a variation in output pin will occur. The output of the IR sensor modules are given to the analogue input pins of the PIC microcontroller. Since they have inbuilt ADC the analogue signals will be converted to digital one. A high will be produced if object detected. As said the purpose of the IR sensor is to count the number of products in the trolley, it will be adding the number of products dropped and subtracting the number of products removed from the trolley. If the product is being dropped into the trolley then first a high will be produced in the top followed bottom one and vice versa while removing the product. A ‘1’ is added while adding the product and ‘1’ is subtracted while removing the product. The controller will check the interruption caused in the downward or upward direction and depending upon that will do the necessary action on the counter. The pin out of the IR sensor module is given below:

ir sensor module

Every time the product is dropped or removed the RFID reader in the trolley will read the tag of the product. EM-18 RFID Reader module is used because of its low cost, easy to use, low power consumption etc. It is interfaced to the PIC through UART. The Rx pin of the RFID reader is given to the Tx pin of the microcontroller. The RFID reader will generate a RF signal through its coils at a frequency 125 kHz. When the passive RFID tag comes near the reader it gets energised. Tag which has a unique 10 byte code which gives the information about the product is transmitted to the reader by modulated the signal. The image given below explains the working principle of it. The details from the tag will be communicated to the PIC microcontroller through the reader. The output from UART will be a 12 bit ASCII code in which the first 10 bits gives the code of the product and remaining 2 bits for error detection. From the data it will get the price details of the product which will be displayed on the LCD. The pin diagram of the RFID reader is given below:

rfid reader

block diagram

LCD used here is 16x2 will display the total count and total amount. 16x2 means 16 characters in 2 rows each. A potentiometer has to be connected to the 1, 2 and 3rd pin of the LCD. 29th pin of the microcontroller is connected to the register select pin of the LCD. It has two registers, when RS = 1 data register is selected and the data will be displayed on the LCD and when RS=0 command register is selected were other operations of LCD is selected. The 5th pin will be grounded as we will be writing to LCD. 6th pin is connected to 30th pin of microcontroller. Usually 29th and 30th pin are kept high for valid data transmission. From 7 to 14 they are 8-bit data pins which are connected to any port of the microcontroller.


The microcontroller will select the price of the product and will add or subtract to the bill amount depending upon whether it is added or removed from the trolley.  Initially the bill amount will be set as ‘0’. If the reader reads the same product n times correspondingly the number of quantities of the same product will increase and the amount will be added that much times to it. If he thinks a certain product is not required and removes it from the trolley, that product’s price will be deducted from the total bill amount. If the shopping is over he can press the “BILL’ button. Then the microcontroller will check whether the number of items in the trolley matches with the number of items billed. If they are fine then the microcontroller will transmit the data to the server through Wi-Fi. The Wi-Fi module connected to the transmitter side will receive the data from the microcontroller through the transmitter pin. Wi-Fi will wirelessly communicate this data to the server side. At the server side there will be a Wi-Fi to receive the data transmitted from the other side. The values will be displayed in the PC through a VB based front end application. The person can pay his bill at the counter. If there is any discrepancy in the valued found then the buzzer will go on. It is to check the loss of the product. It may arise

  • If no tag is present
  • Not properly read by the reader
  • Multiple dropping at same time

In such scenario, manually all the products has to be checked.


The project can be extended by adding card swipe machine so that the person can make the payment from the trolley rather than waiting in the long queues for the payment and can directly proceed to the delivery section.

Related Items