The main objective is to reduce loss in revenue due to delayed shelf-restocking (when product is in-stock in the store but not stocked on the shelf) and inaccurate forecasting (under-estimating future product sales) practices. The result is to demonstrate inventory automation using ECIS system by enabling the means to monitor and track store inventory in real-time, perform data analysis remotely in cloud, improve shopping experience for the consumers and increase revenue for the retailers in the retail industry. Machine Learning code can be found on my GitHub: https://github.com/priyankkalgaonkar

Dependencies:   mbed

ECE 53301: Wireless and Multimedia Computing Final Project Report – Group 1

Inventory Automation Using Electronically Connected Intelligent Shelves.

Code Developed by: Priyank Kalgaonkar.

Department of Electrical and Computer Engineering, Purdue School of Engineering and Technology at IUPUI.

Submitted as partial fulfillment for the requirement of Fall 2019 - ECE 53301-26877: Wireless and Multimedia Computing course.

Date of Submission: December 12, 2019.

Committer:
priyank12p
Date:
Thu Dec 12 01:27:12 2019 +0000
Revision:
1:45dc700211a7
Parent:
0:b0c4c25d37ab
Minor changes

Who changed what in which revision?

UserRevisionLine numberNew contents of line
priyank12p 0:b0c4c25d37ab 1 #ifndef ESP8266_H
priyank12p 0:b0c4c25d37ab 2 #define ESP8266_H
priyank12p 0:b0c4c25d37ab 3
priyank12p 0:b0c4c25d37ab 4 #include <string>
priyank12p 0:b0c4c25d37ab 5 #include "mbed.h"
priyank12p 0:b0c4c25d37ab 6
priyank12p 0:b0c4c25d37ab 7 class ESP8266
priyank12p 0:b0c4c25d37ab 8 {
priyank12p 0:b0c4c25d37ab 9 public:
priyank12p 0:b0c4c25d37ab 10 /**
priyank12p 0:b0c4c25d37ab 11 * ESP8266 constructor
priyank12p 0:b0c4c25d37ab 12 *
priyank12p 0:b0c4c25d37ab 13 * @param tx TX pin
priyank12p 0:b0c4c25d37ab 14 * @param rx RX pin
priyank12p 0:b0c4c25d37ab 15 * @param br Baud Rate
priyank12p 0:b0c4c25d37ab 16 */
priyank12p 0:b0c4c25d37ab 17 ESP8266(PinName tx, PinName rx, int br);
priyank12p 0:b0c4c25d37ab 18
priyank12p 0:b0c4c25d37ab 19 /**
priyank12p 0:b0c4c25d37ab 20 * ESP8266 destructor
priyank12p 0:b0c4c25d37ab 21 */
priyank12p 0:b0c4c25d37ab 22 ~ESP8266();
priyank12p 0:b0c4c25d37ab 23
priyank12p 0:b0c4c25d37ab 24 void SendCMD(char * s);
priyank12p 0:b0c4c25d37ab 25 void Reset(void);
priyank12p 0:b0c4c25d37ab 26 bool RcvReply(char * r, int to);
priyank12p 0:b0c4c25d37ab 27 void GetList(char * l);
priyank12p 0:b0c4c25d37ab 28 void Join(char * id, char * pwd);
priyank12p 0:b0c4c25d37ab 29 void GetIP(char * ip);
priyank12p 0:b0c4c25d37ab 30 void SetMode(char mode);
priyank12p 0:b0c4c25d37ab 31 void Quit(void);
priyank12p 0:b0c4c25d37ab 32 void SetSingle(void);
priyank12p 0:b0c4c25d37ab 33 void SetMultiple(void);
priyank12p 0:b0c4c25d37ab 34 void GetConnStatus(char * st);
priyank12p 0:b0c4c25d37ab 35 void StartServerMode(int port);
priyank12p 0:b0c4c25d37ab 36 void CloseServerMode(void);
priyank12p 0:b0c4c25d37ab 37 void setTransparent(void);
priyank12p 0:b0c4c25d37ab 38 void startTCPConn(char * IP, int port);
priyank12p 0:b0c4c25d37ab 39 void sendURL(char *URL, char *command);
priyank12p 0:b0c4c25d37ab 40
priyank12p 0:b0c4c25d37ab 41 private:
priyank12p 0:b0c4c25d37ab 42 Serial comm;
priyank12p 0:b0c4c25d37ab 43 void AddEOL(char * s);
priyank12p 0:b0c4c25d37ab 44 void AddChar(char * s, char c);
priyank12p 0:b0c4c25d37ab 45 void itoa(int c, char s[]);
priyank12p 0:b0c4c25d37ab 46
priyank12p 0:b0c4c25d37ab 47 };
priyank12p 0:b0c4c25d37ab 48
priyank12p 0:b0c4c25d37ab 49 #endif
priyank12p 0:b0c4c25d37ab 50 /*
priyank12p 0:b0c4c25d37ab 51 COMMAND TABLE
priyank12p 0:b0c4c25d37ab 52 Basic:
priyank12p 0:b0c4c25d37ab 53 AT: Just to generate "OK" reply
priyank12p 0:b0c4c25d37ab 54 Wifi:
priyank12p 0:b0c4c25d37ab 55 AT+RST: restart the module
priyank12p 0:b0c4c25d37ab 56 AT+CWMODE: define wifi mode; AT+CWMODE=<mode> 1= Sta, 2= AP, 3=both; Inquiry: AT+CWMODE? or AT+CWMODE=?
priyank12p 0:b0c4c25d37ab 57 AT+CWJAP: join the AP wifi; AT+ CWJAP =<ssid>,< pwd > - ssid = ssid, pwd = wifi password, both between quotes; Inquiry: AT+ CWJAP?
priyank12p 0:b0c4c25d37ab 58 AT+CWLAP: list the AP wifi
priyank12p 0:b0c4c25d37ab 59 AT+CWQAP: quit the AP wifi; Inquiry: AT+CWQAP=?
priyank12p 0:b0c4c25d37ab 60 * AT+CWSAP: set the parameters of AP; AT+CWSAP= <ssid>,<pwd>,<chl>,<ecn> - ssid, pwd, chl = channel, ecn = encryption; Inquiry: AT+CWJAP?
priyank12p 0:b0c4c25d37ab 61 TCP/IP:
priyank12p 0:b0c4c25d37ab 62 AT+CIPSTATUS: get the connection status
priyank12p 0:b0c4c25d37ab 63 * AT+CIPSTART: set up TCP or UDP connection 1)single connection (+CIPMUX=0) AT+CIPSTART= <type>,<addr>,<port>; 2) multiple connection (+CIPMUX=1) AT+CIPSTART= <id><type>,<addr>, <port> - id = 0-4, type = TCP/UDP, addr = IP address, port= port; Inquiry: AT+CIPSTART=?
priyank12p 0:b0c4c25d37ab 64 * AT+CIPSEND: send data; 1)single connection(+CIPMUX=0) AT+CIPSEND=<length>; 2) multiple connection (+CIPMUX=1) AT+CIPSEND= <id>,<length>; Inquiry: AT+CIPSEND=?
priyank12p 0:b0c4c25d37ab 65 * AT+CIPCLOSE: close TCP or UDP connection; AT+CIPCLOSE=<id> or AT+CIPCLOSE; Inquiry: AT+CIPCLOSE=?
priyank12p 0:b0c4c25d37ab 66 AT+CIFSR: Get IP address; Inquiry: AT+ CIFSR=?
priyank12p 0:b0c4c25d37ab 67 AT+CIPMUX: set mutiple connection; AT+ CIPMUX=<mode> - 0 for single connection 1 for mutiple connection; Inquiry: AT+CIPMUX?
priyank12p 0:b0c4c25d37ab 68 AT+CIPSERVER: set as server; AT+ CIPSERVER= <mode>[,<port> ] - mode 0 to close server mode, mode 1 to open; port = port; Inquiry: AT+CIFSR=?
priyank12p 0:b0c4c25d37ab 69 * +IPD: received data
priyank12p 0:b0c4c25d37ab 70 */