Our team has recently been exploring the applications of iOT in every day tasks. We don't think about vending machines as a big part of our lives but they are always a reliable source for snacking during those late nights studying for a midterm or cramming in an essay due the next day. We built a newly improved prototype for a vending machine that incorporates technology we use every day for the benefit of both the average consumer and corporate vendors.

What it does

As a user approaches one of our vending machine units, our facial recognition system analyzes their profile, uploading and retrieving certain data from the cloud. If you have visited the vending machine before, it will recommend your previous purchase. If you are a new visitor, the analyzer will recognize your age and gender and based on the preferences of people who fit in similar demographic categories, will recommend a food item you might be interested. The user has the option to dismiss these suggestions and select their own purchase item. Once the user has made their selection, our hardware system releases the given product after retrieving data from the cloud. The user interaction occurs on an iPad embedded on the surface of the vending machine.

The data stored on user preferences based on demographics is stored anonymously and sent to a web app accessible to corporate vendors. We perform analysis on the data and present it in a manner that highlights the trends in consumer preferences that serve as recommendations to the vendors. Vend is a useful tool for market analysis.

How we built it

The Kinect is used to capture snapshots of approaching users. The image is stored in an Azure database and then analyzed with Project Oxford's API for matching faces previously stored in our database (coded in C#). Recommendations were displayed on an iOS device which also allowed the user to make a selection for a specific food item (coded in Swift 2.0). A specific user's associated purchase data was stored using a Parse database and then sent to the Javascript web app accessible by the vendors of the products. The specific purchase made at any given time was sent over a Firebase server which was then analyzed by a Python script which controls an Arduino which operates a configuration of servo motors that release the given purchased item.

Challenges we ran into

With so many different technologies working simultaneously, we had various technical challenges. One of the most prominent was continuously trying to read users. It was difficult to make sure both registered and new users were able to enter the database accurately and consistently.

Accomplishments that we're proud of

In technical considerations, we are excited about our optimization of the time it takes for the Kinect to capture a picture and then match that photo with those pre-existing in the database. In addition, we worked with the geographical API, Ersi, which was unfamiliar to us while incorporating it in our data analytics package. Lastly, we implemented a fully functional vending machine which was extremely challenging to physically engineer.

This product was inspired by services we use in our daily lives and that is why we believe it can easily be assimilated into modern society. For example, we implemented surge pricing during time periods of peak consumer traffic. Another aspect we are proud of is our creation of an entire ecosystem including hardware, software, and the cloud based integration of the two.

What's next for Vend

Installing multiple of our units in key locations to optimize usefulness for both consumers and vendors.

Share this project: