Software apps and online services
Andro Cart is an IOT device to decentralise Point of Sale(POS) billing. The device finds its purpose in Hyper/Super markets where there is a need for quick and efficient billing for large purchases. A specialised shopping cart device will significantly reduce billing queues, there by improving customer satisfaction. Andro Cart is conceived to meet the POS billing challenges using latest technologies.
Following are the advantages in a specialised shopping cart device:
1. Greater user adoption, as compared to using personal smartphones. Customers will readily accept and use the device, as it does not require installing app, using camera for scanning, location access and network access on personal devices.
2. Will easily integrate with existing POS systems. No major infrastructure requirements for the retailers.
3. Generate useful analytics, to help customers get an insight of their shopping trend.
4. Highly rugged and low power device.
The primary use case for which the device is built is depicted below.
1. Customer enters the super market and goes to take a cart.
2. Store representative introduces Andro Cart. If customer wants to use Andro Cart, representative clamps the device on the cart. Once device is activated, a sale number is generated and updated in POS.
3. Customer scans the selected item barcodes on the Andro Cart scanner. The item is added in cart and also updated in POS.
4. Customer moves to different sections and adds items to the cart. He/She checks out once all items are added.
5. Customer takes the cart to the POS billing section. The store representative, detaches the device from the cart and scans/manually enters the sale number in the terminal. The items cart is displayed on the terminal. Customer can request to remove/add an item. Once customer is satisfied, payment is made.
6. Customer leaves the super market.
The device is powered using Raspberry Pi 3 Model B single board computer. The device is constructed keeping the following objectives in mind:
1. Scanning - The device requires a powerful scanner to scan all types of barcodes. Scanning barcode is the primary process of adding items to cart. 2d imagers have been considered over laser scanners, as it provides ability to scan all types of barcodes and qrcodes.
1. Raspberry Pi camera module v2 is used for image scanner,as it is the best match for Raspberry Pi 3.
2. Google's Mobile Vision Barcode detector API's provides the capability to efficiently scan barcodes from captured images.
3. HC-SR04 ultrasonic sensor is used for intrusion detection for the camera to take still picture.
4. Raspberry Pi 7 inch display is used for displaying the cart items.
Flow diagram for scanner:
2. POS integration - The device needs to get the item and sale related data from POS system. Items added to cart will also need to be added/updated in POS.
1. OSPOS is the Point of Sale software. It is an open source software that can be modified to our needs. The software is developed in PHP and uses MySql database.
2. XAMPP is the installer for Apache, MariaDB and PHP. XAMPP is installed on a windows 7 machine, which will act as a web server for the application.The OSPOS is hosted on Apache server.
3. MySQL is the database used for the OSPOS.
4. RESTful JAX-RS with JSON payload is preferred over MQTT, as I do not require a persistent connection to database. The RESTful service can be deployed in Java application server : Tomcat,Glassfish,weblogic.
The hardware components required are:
1. Raspberry Pi 3 Model B with Raspberry Pi 7 inch screen and Raspberry Pi Camera module connected.
2. HC-SR04 ultrasonic sensor connected to Raspberry Pi GPIO's. I have used the following connections:
- HC-SR04 Vcc pin connected to Pin 4 of Pi.
- HC-SR04 Gnd pin connected to Pin 14 of Pi.
- HC-SR04 trigger pin connected to Pin 15 of Pi.
- HC-SR04 echo pin connected through 5v to 3.3v voltage divider circuit assembled on a breadboard. I have used 1k and 2.2k resistors for the voltage divider circuit. The output of the voltage divider is connected to Pin 13 of Pi.
1. Android things SDK:
Android things system image (0.5.1-devpreview) is downloaded and flashed on a SD card. The SD card is then mounted on the Raspberry Pi device.
2. Android Studio 3.0 updated with Android 8.0 SDK.
3. XAMPP version 5.6.31
- Download Xampp installer from below link.
- Execute the installer to install XAMP.
- Launch XAMPP control panel and start Apache,MySQL and Tomcat.
- To check if installation is success, type localhost in browser. If Apache is running you should see XAMMP landing page.
- To confirm if mysql is installed, click on phpMyAdmin tab in XAMP home page.
- Download and extract OpenSourcePOS release 3.1.1 from below link.
- The extracted source to be hosted in Xampp htdocs folder.
- To create POS database, copy the file content from database/database.sql and paste it on phpMyAdmin SQL tab. Execute to create the tables.
5. Web Services:
- Download and install Eclipse kepler. Download the web services files from below link.
Open the extracted project in Eclipse. Build project.
Create a war file and host in Tomcat server.
Login into OpensourcePOS portal and add inventory items. The default login credentials are:
Point of Sale Screen:
Andro Cart showing Items added and category wise purchase:
Following steps you can watch in the video.