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.

FinalVersionECISsystem/ESP8266/ESP8266.h

Committer:
priyank12p
Date:
2019-12-12
Revision:
1:45dc700211a7
Parent:
0:b0c4c25d37ab

File content as of revision 1:45dc700211a7:

#ifndef ESP8266_H
#define ESP8266_H

#include <string>
#include "mbed.h"

class ESP8266
{
public:
/**
  * ESP8266 constructor
  *
  * @param tx TX pin
  * @param rx RX pin
  * @param br Baud Rate
  */
  ESP8266(PinName tx, PinName rx, int br);

  /**
  * ESP8266 destructor
  */
  ~ESP8266();

void SendCMD(char * s);
void Reset(void);
bool RcvReply(char * r, int to);
void GetList(char * l);
void Join(char * id, char * pwd);
void GetIP(char * ip);
void SetMode(char mode);
void Quit(void);
void SetSingle(void);
void SetMultiple(void);
void GetConnStatus(char * st);
void StartServerMode(int port);
void CloseServerMode(void);
void setTransparent(void);
void startTCPConn(char * IP, int port);
void sendURL(char *URL, char *command);

private:
Serial comm;
void AddEOL(char * s);
void AddChar(char * s, char c);
void itoa(int c, char s[]);

};
  
#endif
/*
    COMMAND TABLE
    Basic:
    AT: Just to generate "OK" reply
    Wifi:
    AT+RST:  restart the module
    AT+CWMODE: define wifi mode; AT+CWMODE=<mode> 1= Sta, 2= AP, 3=both; Inquiry: AT+CWMODE? or AT+CWMODE=?
    AT+CWJAP: join the AP wifi; AT+ CWJAP =<ssid>,< pwd > - ssid = ssid, pwd = wifi password, both between quotes; Inquiry: AT+ CWJAP?
    AT+CWLAP: list the AP wifi
    AT+CWQAP: quit the AP wifi; Inquiry: AT+CWQAP=?  
    * AT+CWSAP: set the parameters of AP; AT+CWSAP= <ssid>,<pwd>,<chl>,<ecn> - ssid, pwd, chl = channel, ecn = encryption; Inquiry: AT+CWJAP?
    TCP/IP:
    AT+CIPSTATUS: get the connection status
    * 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=?
    * AT+CIPSEND: send data; 1)single connection(+CIPMUX=0) AT+CIPSEND=<length>; 2) multiple connection (+CIPMUX=1) AT+CIPSEND= <id>,<length>; Inquiry: AT+CIPSEND=?
    * AT+CIPCLOSE: close TCP or UDP connection; AT+CIPCLOSE=<id> or AT+CIPCLOSE; Inquiry: AT+CIPCLOSE=?
    AT+CIFSR: Get IP address; Inquiry: AT+ CIFSR=?
    AT+CIPMUX:  set mutiple connection; AT+ CIPMUX=<mode> - 0 for single connection 1 for mutiple connection; Inquiry: AT+CIPMUX?
    AT+CIPSERVER: set as server; AT+ CIPSERVER= <mode>[,<port> ] - mode 0 to close server mode, mode 1 to open; port = port; Inquiry: AT+CIFSR=?
    * +IPD: received data
*/