Wrapping up the delieverables
The group met up to ensure the final elements for the projekt delieverables on this prototype level.

We finalized:
- Fritzing Diagram
- System Requirements
- Functions/Means Tree
- System overview
- CAD-files
- Coding files
- Video demonstration of the prototype
- Diverse drawings, photos etc.
The Video Demonstration:
UI – summary
The first intended point of contact between our user and the product, will be the “Admin Configuration” tab, when the owner configures the product:

In this tab, the owner of the product can configure the exact time interval it will take to fill up one whole beer. In addition to configuring the flow rate of the beer dispenser, the owner will also be able to set the price for one whole beer.
In this configuration menu, the standard point of reference is made so the program knows which values are to be modified when dispensing the beverage and requesting payment.

Behind the scenes, the configuration menu is simply two text input nodes connected to their respective functions that convey the message forward. The flow rate is sent directly to the ESP32, where the value is used to control the time in which the valve stays open during beverage dispensing. The chosen price for a whole beer is sent directly to the bar patron user interface tab where it will be displayed as a reference for what a whole beer would cost compared to the actual price they pay.

In both functions, we use the “parseInt()” function to check if the input value is a valid integer before making it a global value. If the function returns “false”, the owner will be prompted with the message “Please Enter A Valid Number”.

In the UI presented to the bar patrons, we wanted to create a simple and intuitive design that would be easy to understand at any blood alcohol content. The gauge at the top shows the user what percentage of a whole beer will be dispensed for them. The slider below allows them to adjust the percentage in increments of 10 percent at the time. The 3 options presented in the middle are intended to be “quick-steps” for users who already know how much they want. Towards the bottom right, the previously mentioned price for a whole beer is displayed in comparison to the actual price the user will pay.

In the behind the scenes portion of the UI for the bar patrons, the flow consists firstly of the 3 preset buttons that, when pressed, convey their respective message to the MQTT broker that relays the information to the ESP32. In the case of the slider, the slider value is set to be a global variable and is deployed once the “Fill From Slider” button is pressed where the global.get() function is used to get the message. Similarly, the previously assigned price is fetched with the same function in the “Price Display” function and is coded to be displayed in accordance with the amount the beer the patron wishes to dispense:

The gauge is controlled in the “Beer Gauge” function where the inputs from the buttons and slider are converted into the value displayed on the gauge. We wanted the slider to follow the same value as on the gauge, even when only the buttons are being pushed. Therefore the buttons also have a connection to the slider node.