Grupo 01 - Prototype of a new concept on a Vending Machine with control access
Equipa: |
Grupo 01: Ana Mafalda Trindade (Coord.) , Alexandra Felisberto , Gonçalo Rodrigues , Tiago Pereira , Ana Luísa Coelho |
Empresa: | Sinuta SA |
Orientadores: |
Susana Sargento (DETI)
Diogo Matos (Sinuta SA) |
As mentioned in the project's name, the group’s mission was to reinvent the concept of the vending machine. With that idea in mind, it was envisioned a machine with a whole new physical structure that not only controls its access by only authorizing a purchase after the client’s validation, but also allows the client to buy multiple products at a time, improves the stock control by implementing 4 load cells to detect any changes on the quantity inside each slot, uses a “user-friendly” interface and it has an efficient system to control the closing/opening and lock/unlock of the doors.
Challenges
This product was conceived to answer to the industries’ demand for a vending machine where the access would be controlled by each company, with a list of all the consumers in a database authorized to purchase on the device. This access is granted when the consumers’ NFC tag/card is validated.
The biggest challenge amongst all the requests was having a system that would allow remote stock control (e.g. database, app, …). The group proposed a system with 4 load cells to detect how many products in each slot were taken during the purchase and then update the database through which the remote control of the stock will be made.
Also, the physical structure of the usual vending machine was changed to allow the purchase of multiple different products at a time. The lock locks and unlocks the door and to ensure the system works properly, a spring hinge was used to help close the door and an endstop to detect this event.
Like other machines, there is a user interface to support the purchase. It has access to the database and where it differs from others is in its ‘user-friendly’ design and simple system implemented to help on the machine’s maintenance.
With all the features implemented in this final solution, the purpose of the project to reinvent the concept of the vending machines was met and we like to believe that the final product adds more value to the old concept.
Arquitecture
The following images represent the architecture of the system imagined to answer to the challenges presented by the company.
Results
The system was developed for just one slot and starts with a simulation of a restock since this is a proof of concept. All the information about the products that are being restocked will be pushed to the database. The initial weight of the slot will be provided to the database by the weighting system (4 load cells in the slot’s base).
The interface it’s called after the restock. Firstly, it waits for the client to pass the NFC tag on the reader to validate its id according to the clients’ list (database). After validation, the client selects the products and their quantities on the screen and knowing their prices (database) it calculates the purchase value to deduct on the client’s balance. The database stores which slots where selected and updates the client’s balance.
The doors unlock after the success of the purchase on the interface. The client has 15s plus 10s per slot selected (database) to retrieve the products. Posterior to that the system waits for the endstop to confirm the closing of the door and locks it. Then the weight from before (database) and after the purchase are compared to detect how many products were actually retrieved. Their quantity and the new weight in the slot are updated on the database.
This figure presents the real machine that was created for this project.
More information
Initially, the system is set up when the vending machine is still empty in order to tare the shelves. After that, the restock can be done and when finished, the weight is read in each slot and the corresponding “initial weight” is updated on the database.
For the weight system, 4 load cells were used to have more stability on the shelf. This also helps the sensor’s reading, since the weight is distributed, therefore there is less probability of torsion on the sensors which prevents reading errors.
The load cells’ amplifiers have HX711 incorporated, which guarantees a sufficient gain (G = 128) and resolution for the project.
First page is a waiting screen asking the user to pass their card. In this stage, once the card is read, it accesses to the database and tries to match the ID to validate it. If valid, it moves to the second page.
The second page has the layout of the vending machine with all the slots. Each slot has the price and the available quantity of the product in it. It also has two buttons one to add and another to remove products from the shopping cart. All the information for the slots come from the database. At the bottom, there is the total price of the purchase along with the “Cancel” and “Continue” buttons. The first cancels and returns to the starting page, the other continues to the next page.
The third page, has a shopping list where the client can scroll throught it. This list has the selected products along with their slot number and quantity. Above the list there’s a total price of the shopping card. The “Cancel” has the same function as the previous one and the “Return” button goes to previous page. After a click in “Return”, the user’s shopping list is mantained in case the client wants to change his shopping list. The “Continue” button once pressed connects to the database to veryfying if the client has enough balance for the purchase. If so, the Succeed Page appears to warn the user that in a few minutes the doors open. If it fails, the Error Page appears with the error type of the insufficient balance.
If anything fails in the interface, the default is the error page which always show the error code for each error possible for debug purposes.
It’s in the database that the information needed for the project is stored.
For each client in the clients’ list, there is the clients’ name, e-mail, balance and id associated his card.
There is only one flag that sinalizes the start of the purchase when the clients’ id is validated. In the flag, there’s the flag’s name and its state.
There’s four offsets, one for each load cell. This offsets are needed for the load cells to be able to read the weight in the slot.
In the products field, the provided information is in which slot the product is stored, a signal to indicate if the product is selected in the purchase, the current weight inside the slot and the product’s quantity, name and price.