Beverage dispensing
11845643 · 2023-12-19
Assignee
Inventors
- Michael Wing (Framingham, MA, US)
- Yvan De Boeck (Medford, MA, US)
- Sean Grundy (Boston, MA, US)
- Elizabeth Becton (Charlestown, MA, US)
- Frank Lee (Cambridge, MA, US)
Cpc classification
B67D1/0888
PERFORMING OPERATIONS; TRANSPORTING
B67D1/0022
PERFORMING OPERATIONS; TRANSPORTING
B67D1/0031
PERFORMING OPERATIONS; TRANSPORTING
B67D1/005
PERFORMING OPERATIONS; TRANSPORTING
B67D1/0051
PERFORMING OPERATIONS; TRANSPORTING
B67D1/0036
PERFORMING OPERATIONS; TRANSPORTING
B67D1/0875
PERFORMING OPERATIONS; TRANSPORTING
B67D1/07
PERFORMING OPERATIONS; TRANSPORTING
B67D1/0884
PERFORMING OPERATIONS; TRANSPORTING
B67D1/0028
PERFORMING OPERATIONS; TRANSPORTING
B67D1/004
PERFORMING OPERATIONS; TRANSPORTING
B67D2210/00089
PERFORMING OPERATIONS; TRANSPORTING
B67D1/0027
PERFORMING OPERATIONS; TRANSPORTING
B67D1/0039
PERFORMING OPERATIONS; TRANSPORTING
International classification
B67D1/00
PERFORMING OPERATIONS; TRANSPORTING
B67D1/07
PERFORMING OPERATIONS; TRANSPORTING
Abstract
Among other things, beverages are dispensed from one or more beverage dispensers based on selections made by users. Information about the dispensing of the beverages is sent to a central server where it is used to manage a variety of functions including replacement of depleted supplies of components. Various features of the beverage dispensers enable the beverages that are dispensed to be uniform and appealing to users.
Claims
1. A beverage dispensing method comprising: simultaneously displaying on a user interface a first manually operated switch that is actuable by a user to set only a carbonation level for a beverage to be dispensed and a plurality of second manually operated switches each corresponding to a different flavored beverage and actuable by the user to cause the corresponding flavored beverage to be dispensed; receiving a first signal from the first manually operated switch indicating only a carbonation level set by the user for the beverage to be dispensed, the first signal not being representative of other characteristics of the beverage to be dispensed including a flavor of the beverage; receiving a second signal from one of the second manually operated switches indicating the corresponding flavored beverage is to be dispensed, the second signal being received after the first signal; in response to the first and second signals, controlling a pressure regulator associated with a supply of CO2 or controlling a ratio of still water and carbonated water flowing to a dispensing orifice, or both, to dispense the flavored beverage corresponding to the second signal at the indicated carbonation level corresponding to the first signal; and adjusting a flow rate of a concentrate for the flavored beverage based on a second flow rate of a water source and the indicated carbonation level, wherein the second flow rate of the water source varies based on the indicated carbonation level; determining an average dispense time for the beverage; and generating an alert that a filter needs to be changed based on the average dispense time increases beyond a predefined threshold.
2. The method of claim 1 in which the first and second manually operated switches comprise a portion of a touch screen.
3. The method of claim 1 in which the first signal from the first manually operated switch is indicative of a carbonation level on an arbitrary scale, and the method comprises mapping the carbonation level set by the user from the arbitrary scale to a parameter representing a pressure at the pressure regulator.
4. The method of claim 3 in which the mapping changes to reflect information about previous beverages dispensed, including updated information about preferences of consumers of dispensed beverages.
5. The method of claim 3 in which the first manually operated switch includes a portion of a touch screen.
6. The method of claim 1, further comprising disabling one of the plurality of second manually operated switches in response to information representing a sufficiency of a supply of a component included in the flavored beverage corresponding to the one of the plurality of second manually operated switches.
7. The method of claim 6 comprising receiving the information from a central server.
8. The method of claim 1 in which the first signal received from the first manually operated switch indicates the carbonation level based on a position of the first manually operated switch treated as a slider.
9. The method of claim 8 in which the position corresponds to a carbonation level on a scale of discrete potential carbonation levels each representing a different volume of CO2 dissolved in water.
10. The method of claim 1 in which the first signal received from the first manually operated switch indicates the carbonation level based on a rotational position of the first manually operated switch.
11. The method of claim 1 comprising storing data representing the carbonation level of the beverage.
12. The method of claim 1 comprising indicating to a user the carbonation level of the beverage by a characteristic of light presented to the user.
13. The method of claim 12, in which the characteristic of light comprises changing a property of a visual effect that corresponds to the carbonation level of the beverage, the property comprising at least one of a color, dimming, brightening, flashing, number of lights, intensity of lights, or direction of aiming of a light.
14. The method of claim 1, further comprising storing data regarding the carbonation level set by the user and a volume of the flavored beverage dispensed.
15. The method of claim 1, further comprising displaying simultaneously with the first and second manually operated switches a third manually operated switch actuable by a user to set a flavor strength for the beverage to be dispensed, receiving a third signal from the third manually operated switch indicating a flavor strength of the beverage to be dispensed, the second signal being received after the third signal, and dispensing the flavored beverage having the flavor strength corresponding to the third signal.
16. The method of claim 15, wherein the third manually operated switch is actuatable to select two or more flavor strength levels.
17. The method of claim 1, wherein the first manually operated switch is actuable by the user to set a first carbonation level corresponding to a still beverage or to set a second carbonation level corresponding to a carbonated beverage; and wherein each of the plurality of second manually operated switches are actuable by the user to dispense the corresponding flavored beverage as either a still beverage or a carbonated beverage based on the carbonation level set using the first manually operated switch.
18. The method of claim 1, wherein one of the plurality of second manually operated switches corresponds to plain water.
19. The method of claim 1, further comprising: receiving, via the control board, information from a load cell positioned beneath a tank corresponding to the supply of CO2; and in response to determining that the tank has reduced in weight past a threshold weight, determining that the tank needs to be replaced and generating a warning.
20. A beverage dispensing system, comprising: a control board; and a computing device in communication with the control board, the computing device being configured to: simultaneously displaying on a user interface a first manually operated switch that is actuable by a user to set only a carbonation level for a beverage to be dispensed and a plurality of second manually operated switches each corresponding to a different flavored beverage and actuable by the user to cause the corresponding flavored beverage to be dispensed; receive a first signal from the first manually operated switch indicating only a carbonation level set by the user for the beverage to be dispensed, the first signal not being representative of other characteristics of the beverage to be dispensed including a flavor of the beverage; receive a second signal from one of the second manually operated switches indicating the corresponding flavored beverage is to be dispensed, the second signal being received after the first signal; in response to the first and second signals, transmit, via the control board, a control signal to a digital pressure regulator associated with a supply of CO2 to cause the digital pressure regulator to adjust the supply of CO2 to dispense the flavored beverage corresponding to the second signal at the indicated carbonation level corresponding to the first signal; and adjust a flow rate of a concentrate for the flavored beverage based on a second flow rate of a water source and the indicated carbonation level, wherein the second flow rate of the water source varies based on the indicated carbonation level; determine an average dispense time for the beverage; and generate an alert that a filter needs to be changed based on the average dispense time increases beyond a predefined threshold.
Description
DESCRIPTION
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8) Here we describe systems and techniques related to dispensing beverages from beverage dispensers.
(9) We use the term “beverage” broadly to include, for example, any liquid that can safely be ingested by a human being. Beverages include all kinds of drinks, such as water, soft drinks, flavored water, vitamin water, alcoholic drinks, drinks based on still water or carbonated water, and hot or cold drinks, to name a few.
(10) We use the term “dispense” broadly to include, for example, any release of a volume of liquid from a nozzle or other “dispensing orifice” into a “consumption container” such as a glass, a cup, or a bottle, to name a few.
(11) We use the term “beverage dispenser” broadly to include, for example, any device or machine that can be used for dispensing beverages, regardless of who owns the beverage dispenser, where it is located, who uses it, what kind of beverage is being dispensed, the context in which the beverage is dispensed, or who pays for the device or machine or for the beverages being dispensed.
(12) In some examples of beverages that are to be dispensed using the systems and techniques that we describe, the beverage is nothing more than a “base liquid” such as still water or carbonated water or alcohol. In some instances, the beverages to be dispensed are a mixture or solution of such a base liquid and one or more other components, such as flavors, dyes, vitamins, or other additives.
(13) We use the term “mixed beverage” broadly to include, for example, any beverage that is a mixture or solution of one or more base liquids with one or more additives, such as soft drinks, flavored water, alcoholic drinks, vitamin water, or caffeinated drinks, to name a few.
(14) We use the term “additives” broadly to include, for example, any sweetened or unsweetened flavoring, dye, preservative, mixing agent, stabilizer, herb, vitamin, nutrient, or other element that can be safely ingested by a human being.
(15) In some cases, the additives are stored within the beverage dispenser in a concentrated form (called a concentrate) and diluted within the beverage dispenser during the process of dispensing a beverage. The undiluted concentrates are typically liquid or viscous liquids or powders but could take other forms.
(16) We use the term “concentrate” broadly, to include, for example, any concentrated form of an additive, such as viscous solutions of water with other ingredients such as pasteurized fruit, vegetables, and sugar, to name a few. To create a good-tasting drink for human consumption, concentrates typically are designed to be mixed with water or another base liquid at ratios of 1:1 or higher (for example, up to a dilution of one part concentrate to 20 parts water or to up to 200 parts of water or even more). Consumed alone, without additional water added, concentrates may taste too thick, too strong, or too sweet.
(17) Typical beverage dispensers include a housing that contains supplies of base liquids and additives, a user interface (through which a user can learn information about beverages before, during, or after they are dispensed and can control the dispensing of the beverages), a dispensing orifice, valves, pumps, and other mechanical, fluid flow, and electrical equipment, and microprocessors and data storage. When a beverage is dispensed the beverage dispenser delivers the base liquid and the additives in, e.g., diluted or undiluted form, to the dispensing orifice and into a cup or other container for consumption.
(18) We use the term “consumption container” broadly to include, for example any device that can receive and hold a dispensed beverage for use, such as a bottle, cup, mug, bag, glass, or bucket, to name a few.
(19) We use the term “dispensing orifice” broadly to include, for example, any device that serves as an interface between the flow and processing of a beverage and its components within a beverage dispenser and the flow of the beverage and its components through the external environment and into the consumption container.
(20) Our discussion includes discrete descriptions of a variety of features, systems, and techniques associated with beverage dispensing. Although we provide distinct descriptions of particular features, systems, and techniques, combinations of two or more of those features, systems, and techniques can be used in a broad variety of implementations associated with beverage dispensing.
(21) As shown in
(22) The water is passed from the water main through various components of the beverage dispenser by water pressure supplied from the water main or by a pump 18 or a combination of the two. The water passes through a filter 20 (after which the water temperature or pressure or both can be detected at an inlet detection device) and into a chiller/carbonator 22. From there the water passes into a liquid flow path 24 along which solenoid-operated valves 26 control the delivery of the concentrates. The water also is delivered at a higher flow rate towards a dispensing nozzle 30 (an example of a dispensing orifice) and (together with the concentrate) into a consumption container 12. The mixing of the concentrates and the higher flow rate water can occur in various ways and at various locations prior to, at or downstream of the dispensing orifice.
(23) The additives 28 are delivered to the solenoid valves 26 for dilution by pumps 32 from bag-in-box (BIB) supplies 34 of, for example, concentrates. The operation of the pumps 32 and the solenoid valves 26 are controlled by control signals 37 sent from a microprocessor-based control board 36. The control board receives information from various components in the beverage dispenser and sends control signals to various components to cause an intended dispensing of a beverage.
(24) Each of the concentrate BIBS has an associated flow sensor 38 that may sense and report to the control board the volume of flow along the corresponding flow path. In some embodiments, the volume of flow may be determined by knowing the flow rate at which the concentrate is dispensed and multiplying that rate by the time that a pump that is associated with a particular concentrate remains in the on (dispensing) position. As a result, the system can enable the user to select options that will provide a personalized beverage yet also will ensure consistency among all beverage dispensers providing beverages.
(25) The control board 36 also communicates through a Bluetooth 38 interface with a microprocessor-based tablet 40 in order to coordinate their activities. (In some implementations, there could be a single microprocessor-based device that would substitute for the combination of the tablet and the control board.) The tablet 40 includes a touch sensitive display surface 41 for providing a user interface to a user and a Wi-Fi communication capability 42 for communication through the cloud 44 to a central server 46 among other capabilities. The touch sensitive display surface enables display of useful information to a user and receipt of instructions and selections from the user. A central database 45 is managed by the central server and used to provide a wide range of functions for the beverage dispensing system.
(26) In some examples, the base liquid is carbonated water that is formed by mixing carbon dioxide from the CO2 tank 60 with water held in or flowing through the chiller/carbonator 22. The CO2 tank 60 rests on a load cell 62 that provides information to the control board for purposes of determining when reduction in the weight of the tank indicates that the tank needs to be replaced.
(27) Many of the components shown in
(28) As shown in
(29) A load sensor 92 is provided in connection with the CO2 supply through a coupling 90, and the output of the load sensor 92 is provided to the local processor through an analog to digital converter 94. A 5-volt precision reference 96 is also provided as well as a 5-volt analog signal 98 to ensure accuracy. Peristaltic pumps are also connected through a connector 100 to peristaltic pump drivers 102 and pump current sensors 104. Similarly, relays are connected with connectors 106 to relay drivers 108 that effect the dispensing of the concentrates. The system includes a flow sensor 110 that is coupled to the ATMeg a32u4 microcontroller device (the controller board of
(30) In some implementations, as show in
(31) As shown in
(32) The power distribution unit 152 is also coupled to an electronics control box 166 (132 in
(33) Only one beverage dispenser is shown in detail in
(34) Although only one server 46 is shown in
(35) As shown in
(36) In some cases, each beverage dispenser 1016 is calibrated from the central processor by activating calibration commands and checking associated sensor data. Each of the beverage dispensing units may be calibrated to provide uniform combinations of offered beverages, and in certain embodiments, this may involve adjusting certain settings within a beverage dispenser to provide consistent beverage products notwithstanding variations in inlet water temperature and/or pressure.
(37) As shown in
(38) Each local processor may therefore, provide any of weight, pressure, temperature, flow rate and flow time information, the status of any batteries in the dispenser, and usage data, among other things. Such information is pushed on a regular basis, e.g., every five seconds, to the central processor 1012 and the data storage device 1014. In some implementations, the system may monitor sensor data to detect anomalies that may be indicative of imminent failures or fault conditions. In accordance with some implementations, the system may detect when a concentrate supply is depleted. The local processor may communicate with the central processor to determine whether another beverage dispenser that is nearby or within the same building may have the requested concentrate.
(39) The system therefore provides a continuous stream of data that is collected on every dispenser, and the system provides the ability to automatically use that data to improve the performance of each of the dispensers. The system is also able to collect data regarding the types of beverages that are most popular or not and correlate this data with a variety of parameters including time of day, location, and usage of other beverages.
(40) As shown in
(41) Concentrate in storage containers of BIBs 352, 354, 356, 358 (34 in
(42) As shown in
(43) Supplies of concentrates 220, 222, 224 and 226 (34 in
(44) The nozzle or other dispensing orifice can have a wide variety of configurations, sizes, materials, and locations in the beverage dispenser.
(45) In some implementations, the nozzle stops cross-contamination between successively dispensed beverages. Water, CO2, and concentrates can be mixed at the point they enter the nozzle. There are no long fluid lines that continue seeping a flavored or carbonated beverage into the nozzle following a dispense cycle. Instead, in some implementations, as a flavored beverage is being dispensed, only a small tube (about 2 inches long) is filled with a flavored beverage. Before a beverage finishes being dispensed, a burst of water is released to clear out that tube, ensuring that 100% of the flavor ends up in the user's drink, rather than remaining in the line to contaminate the next dispensed beverage. The flush time is adapted (remotely from the central server) to the flow rate at every site, ensuring high quality at every location. Additionally, the shape of the nozzle helps avoid any concentrate build-up.
(46) In some implementations, mixing of the additives (e.g., diluted or undiluted concentrates) with the base liquids can occur upstream of the nozzle so that the beverage is already mixed when it reaches the nozzle. In some cases, the mixing can occur within the nozzle. In some examples, mixing can occur in a combination of upstream of the nozzle and in the nozzle. Other approaches to mixing can involve one or a combination of mixing downstream of the nozzle as the liquid and additives are moving from the nozzle to the consumption container or in the consumption container itself.
(47) As shown in
(48) As shown in additional detail in
(49) For this purpose, the “T” connector 96 has two tubes A and B leading into it. Tubes A and B are ¼″ outer-diameter plastic tubes, with inner diameters of 0.17″, and they are both less than 1″ long. Tubes A and B are the only two input tubes into the “T” connector. Tube A carries still water to tube C. Tube B carries carbonated water to tube C. Tube C carries either still or carbonated water to the nozzle.
(50) Tube A connects to solenoid valve A that has only two positions: open or closed. Each valve is either fully open or fully closed, depending on the signal that its solenoid receives from the control board 36. Tube B connects to the other, identical solenoid valve B. Valves A and B each have a solenoid-operated actuator that opens or closes the valves based on commands from the control board. Valves A and B are each connected to an input tube A1 and B1, respectively. Tubes A1 and B1 are plastic tubes having ¼″ outer-diameter and 0.17″ inner diameter, and they are each 3′ long.
(51) Tube A1 carries still water from a cold water tank (tank A) to valve A. Tube B1 carries carbonated water from a separate cold water tank (tank B) to valve B. Both tank A and tank B maintain water at a temperature of approximately 38 degrees Fahrenheit. The cold temperature is maintained by a heat exchanger that chills water using coils filled with a liquid refrigerant.
(52) Tank B also has a ⅜″ outer-diameter (with a ¼″ inner diameter) plastic tube leading into it from the 10-lb. pressurized metal CO2 container 60 (
(53) In some implementations a digital pressure regulator sets CO2 pressure between 0 and 110 PSI. The default setting for the pressure regulator can be 70 PSI. This is a closed loop system; the regulator's pressure setting is captured by the control board 36 to close the loop. At a default setting of, say, 70 PSI, the target level for the volume of CO2 dissolved per volume of water is 3.0, which is a medium-high level in comparison with most sodas and carbonated waters (3 liters of CO2 at 1 atmosphere of pressure dissolved in 1 liter of water).
(54) During beverage dispensing, when valve A opens, still water passes from tube A1 (through valve A) to tube A. Water in tube A then passes directly into tube C, and then out of the machine through the nozzle, dispensing still water. When valves A closes, water stops being dispensed almost instantaneously. Water remains in tube C, since there is no longer sufficient water pressure to push water out of tube C.
(55) During beverage dispensing, when valve B opens, carbonated water passes from tube B1 (through valve B) to tube B. The carbonated water in tube B then passes directly into tube C, and then through the nozzle, dispensing carbonated water or a mixed beverage in which the base liquid is carbonated water. When valve B closes, carbonated water stops dispensing almost instantaneously.
(56) In the examples illustrated in
(57) The peristaltic pumps can be standard peristaltic pumps that can deliver liquid at their output sides in amounts that can be controlled to within, say, 1.95 milliliters per activation. An activation comprises one swipe of the wiper so that larger volumes can be dispensed. The inlet sides of pumps A, B, C, and D are connected to tubes E1, F1, G1, and H1 which are connected to respective BIBs. The connections of the tubes to the concentrate containers in the BIBs are made through standard quick-release connectors.
(58) In line with each of the respective tubes E, F, G, and H are check valves (valves E, F, G, and H), which prevent backflow of concentrate from tubes E, F, G, and H into tubes E, F, G, and H. The upstream end of tube I is connected to the outlet of a solenoid valve C which has two positions: open or closed. The inlet side of valve C is connected to tube I1, which is connected to a “T” on the water line at the exit of the water filter 20 (
(59) In some examples, when a mixed beverage is dispensed, the user has the option (by touching appropriate icons on the touch sensitive display of the tablet 40) to add any one of four flavor additives (corresponding to the four different BIBs) to the base liquid. The user's choice governs which of pumps A, B, C, or D will deliver concentrate through tube E, F, G, or H (and also through check valve E, F, G, or H) into tube D, where it is dispensed in parallel with the base liquid from tube C into the nozzle and out of the beverage dispenser.
(60) When the user selected beverage has been dispensed and after the corresponding pump A, B, C, or D stops delivering fluid from the corresponding BIB, valve C opens and delivers a small volume of flushing water through tube D (for example, 10 milliliters), to assure that no concentrate from any of the tubes E, F, G, and H remains in tube D. The length of time during which valve C is open for this purpose can be programmed in the software running in control board 36. The period of time could be, for example, 200-1000 milliseconds.
(61) In the implementations that we have been describing, only a single concentrate can be chosen for inclusion in the mixed beverage to be dispensed at a given time. In some cases, the simplicity of enabling only a single concentrate to be used at a given time provides a desirable user experience by preventing a mixture of concentrates that would yield an unpalatable mixed beverage and by reducing the number of options from which the user must choose. Nevertheless, in some implementations, the user may be given the option to mix concentrates rather than being limited to choosing a single concentrate.
(62) In general, not only the flavor but also other beverage characteristics of the beverage that is dispensed from the beverage dispenser are determined, at least in part, by instructions or selections provided by a user through the user interface of tablet 40.
(63) We use the term “beverage characteristics” broadly to include, for example, any qualities exhibited by the beverage, such as its volume, base liquid, additives and combinations of additives, strength of dilution of additives, temperature, and level of carbonation, to name a few. In other words, the dispensed beverage can be customized in a wide variety of ways.
(64) In some implementations, through the user interface of the touch screen 41 of the display of the tablet, a user can cause a beverage to be dispensed that has a desired combination of a subset of (or all of) such characteristics.
(65) For example, as shown in
(66) The two backgrounds, white and blue (or possibly other display characteristics), represent two operational modes of the machine: 1) When the touchscreen background is white, the beverage dispenser is in “still” mode. As long as the beverage dispenser is in “still” mode, when a user touches an icon representing a beverage flavor option on the touchscreen for more than, say, 0.25 seconds, that flavor of still water is dispensed under control of the control board 36. No CO2 is in the water. For example, if a user holds a finger on the icon representing plain water (in this case the icon looks like a simple drop of water, with the words “Pure Water” underneath it), then plain, still water begins to be dispensed from the nozzle. The water continues to be dispensed as long as the user continues to hold her finger on the icon. The water stops being dispensed when the user removes her finger. If alternatively a user holds a finger on the icon 84 representing lemon water (in this case the icon has an image of a lemon, with the word “Lemon” underneath it), then lemon-flavored, still water is dispensed from the nozzle 30. The lemon-flavored water stops being dispensed when the user removes her finger. 2) When the touchscreen background is blue, the beverage dispenser is in “carbonated” mode. In “carbonated” mode, when a user touches an icon representing plain carbonated water or any flavored water (that is, a mixed beverage) on the touchscreen for more than, say, 0.25 seconds, that flavor of carbonated water is dispensed under control of the control board 36. In this case, the mixed beverage includes water that contains dissolved CO2. For example, if a user holds a finger on the plain water icon described above, then pure carbonated water begins to dispensed from the nozzle 30. If alternatively a user holds a finger on the same icon 684 described above representing lemon water, then lemon-flavored carbonated water begins to be dispensed from the nozzle 30.
(67) The machine will remain in either still mode or carbonated mode until someone (either the user mentioned above or a subsequent user) changes the toggle. Since each mode is visually represented by a colored background (white or blue), users familiar with the machine can visually identify whether a non-carbonated or carbonated beverage will be dispensed when they select an icon representing a beverage flavor. Maintaining the dispenser in one or the other mode until changed by the user simplifies the operation of the user interface. By using different visual cues for the different beverage characteristics (in this case, still or carbonated) the user is always aware of the current mode.
(68) When the touchscreen is in “still” mode, and a user touches the icon representing water, valve A opens and non-carbonated water is dispensed through the nozzle. When the touchscreen is in “carbonated” mode, and the user touches the same icon that represents water, valve B opens, so carbonated water is dispensed through the nozzle.
(69) In some embodiments of the touchscreen interface, instead of a binary carbonation choice of carbonated water or still water, the displayed control can be treated as a slider have positions that represent a scale of four (or fewer or more) potential carbonation levels, each representing a different measure of volumes of CO2 dissolved in water (1 volume=1 liter of CO2 at 1 atmosphere of pressure dissolved in 1 liter of water). The volumes of CO2 that correspond to four carbonation settings could be as follows (although a wide variety of other volume values and number of different carbonation levels could be used): Still: 0 volumes CO2; Light: 1.5 volumes; Medium: 2.5 volumes; Heavy: 3.5 volumes.
(70) In some embodiments, for example, the scale can have as many as 41 (or even more) potential levels of carbonation, in which the lowest level represents completely still water (0.0 volumes), and the levels are separated by volume differentials of 0.1 volumes.
(71) In cases in which there is more than one possible level of carbonation, the slider moves along a scale as controlled by a finger on the surface of the touch display. When a user puts a finger on the slider and moves it all the way to the right of the scale, the machine is set to dispense water at its highest possible carbonation level of, for example, 4.0 volumes. When a user puts a finger on the slider and moves it all the way to the left of the scale, the machine is set to dispense still water with no CO2 added to it. When the user sets the slider at a position in the middle of the scale, the machine is set to dispense water at a carbonation level corresponding to one of the 41 (or other number of) positions of the slider on the scale.
(72) Thus, in some examples, interactions with a touchscreen interface can cause changes to (1) the imagery on the interface, (2) the beverage options available to a user, and (3) physical processes within dispensers. The interface includes a variety of concentrate options, as well as a virtual slider switch for changing the amount of a concentrate being selected, where sliding from the left (mild) to the right (strong) changes the requested concentration level, for example, by changing the signal to the peristaltic pumps. A single touch can change a variety of beverage options from still to carbonated (without changing the recipes of those flavors in any way except for adding or removing CO2), or vice versa. A display change on the touch screen may be employed to indicate that all the options have been made either carbonated or still (e.g., bubbles appearing all over the screen). The imagery may change in gradients based on the user's selection (e.g., a lot of bubbles means heavy carbonation, a few bubbles means light carbonation, etc.).
(73) In some embodiments, a single touch may be used to set the flavor strength of all beverages dispensed by the dispenser. An associated display change can be made on the entire touch screen, e.g. a color shift from light (representing a light flavor) to dark (representing a strong flavor). The color shift can occur in various gradients based on the user's desired flavor strength. The user's touch also triggers a software change that alters pump settings, so that when any beverage option is selected, it is dispensed at a lighter or stronger flavor.
(74) In some implementations, as shown in
(75) In some cases, a single touch can set the temperature of all beverages in the machine, which incorporates: a display change on the entire touch screen, e.g. a color shift from blue (representing a cold temperature) to red (representing a hot temperature). The color shift can occur in various gradients based on the user's selection (e.g. pink means slightly warm, red means hot, etc.); as well as a software change that alters whether water is dispensed from a “cold” valve, a “hot” valve, or both, so that when any beverage option is selected, it is dispensed at the desired temperature.
(76) In some instances, a single touch sets the temperature of a single beverage in the machine. The single touch causes a display change for only a particular beverage icon on the touch screen, e.g., a color shift from blue (representing a cold temperature) to red (representing a hot temperature). The color shift can occur in various gradients based on the user's selection (e.g. pink means slightly warm, red means hot, etc.); and a software change alters a single pump setting, so that when a particular beverage option is selected, it is dispensed at a lighter or stronger flavor.
(77) In some embodiments similar approaches can be used for other beverage characteristic, in addition to CO2 level, temperature, and flavor level. For example, a single user touch could alter the adding/removing of vitamins; the adding/removing of electrolytes; the adding/removing of a caffeine supplement; the adding/removing of a memory supplement; the increasing/decreasing of sweetness; and the adding/removing various herbs or spices; or combinations of any two or more of those characteristics and others.
(78) In some embodiments, the following physical interactions by the user with the touchscreen could apply to every beverage trait: 1) a clockwise or counterclockwise motion, without taking the finger off the touchscreen, 2) a left or right finger motion, without taking the finger off the touchscreen, 3) a single touch to a dial, or 4) a single touch to an on/off switch, or combinations of them. For all of the above, simply moving the finger near the touch screen, rather than actually physically touching it, may also be sufficient.
(79) In some implementations, the user interface of the beverage dispenser therefore includes a Request CO2 button and a Not Request CO2 button. The user interface also can include concentrate selection buttons, for selecting, for example, any of sweetened or unsweetened flavor, herb, vitamin or other nutrient, in powder or liquid form. In certain embodiments, the user interface may also include an amount selector interface 68 that permits any of CO2 or concentrate amounts to be adjusted, e.g., rotating a finger clockwise may increase an amount, while rotating a finger counter-clockwise may decrease an amount. In some cases, the interface may permit a user to move a slider to request a relative amount of either a concentrate and/or an amount of CO2. The controller board 36 responds to the selected level of carbonation by controlling the appropriate valves within the system. For example, when the highest carbonation setting is selected, the control board 36 opens only valve B and carbonated water is dispensed at the maximum volume of dissolved CO2 per liter of water (in this case 4.0 volumes). When the lowest carbonation level is selected (i.e., no carbonation), only valve A opens and still water is dispensed.
(80) In some implementations, a dispensing cycle begins when a user touches one of the flavor icons to dispense one of the four flavored water options. Upon the user touching the icon, first valve A or B opens to start water flowing. Then, after a programmable period of time, ranging from 5-50 milliseconds, pump A, B, C or D will pump concentrate ultimately causing it to intersect with the water stream as it exits the nozzle out of the dispenser. Pumping of water is begun first to prevent the concentrate from splashing onto an external surface of the dispenser. Generally only one concentrate can be dispensed at a time, which is determined by which icon is selected on the control panel. However it is possible to program the machine such that more than one concentrate could be dispensed simultaneously. Once the concentrate is mixed with water in the nozzle or downstream of the nozzle, the beverage being dispensed is considered a flavored still or carbonated beverage. When the user releases any of the flavored water icons at the end of a dispense cycle for flavored water from the dispenser, pump A, B, C, or D will stop immediately, followed by a programmable delayed closing of valve A or B, which can range from 5 milliseconds to 50 milliseconds. The delayed closing helps to taper the flow rate from the dispensing orifice to the consumption container at the end of the dispense cycle.
(81) When a dispensing cycle begins as the user begins to touch the icon, the commands to cause the dispensing are not sent immediately to the hardware. A delay of, e.g., 300 milliseconds is applied to prevent so-called ghost dispensing. When the user selects a beverage (e.g., pushes an icon on a touchscreen) for less than 300 milliseconds, no commands will be set and nothing will be dispensed. When a user stops the dispense request (e.g., by lifting a finger off of the icon on the touchscreen), commands are sent immediately to stop the dispensing, but due to the decoupled architecture and the event-loop in the firmware, the system may take up to 60 milliseconds for the hardware to recognize the stop dispense instruction from the user interface. Once that instruction is recognized, the flush sequence will begin if needed.
(82) In the case of a dispense cycle for still water, when a user selects the still water icon, after the delay of 300 milliseconds, valve 1 and valve 4 are turned on simultaneously. The pumps for the concentrates all remain off. When the user releases the selection, all valves turn off simultaneously after the delay of at most about 60 milliseconds. No flush sequence is required for this process as only still water was dispensed.
(83) In the example of a dispense cycle for carbonated water, after the delay of 300 milliseconds, valve 2 and valve 4 are turned on simultaneously. The pumps for the concentrates all remain off. When the user releases the selection, all valves turn off simultaneously after the delay of at most about 60 milliseconds. A flush sequence of about 500 milliseconds then flushes the flavor line with still water.
(84) In the instance of a dispense cycle for flavored non-carbonated water, after the delay of 300 milliseconds, the pump associated with the selected concentrate is turned on to fill the associated pump line. After an additional delay of, say, 60 milliseconds, valve 1 and valve 4 are turned on simultaneously. Once a user releases the selection command, the valve 3 opens and the pump is turned off. After a flush period of, for example, 500 milliseconds, the valves 1, 3 and 4 are turned off simultaneously.
(85) For a dispense cycle for flavored carbonated water, after the delay of 300 milliseconds, the pump associated with the selected concentrate is turned on to fill the associated pump line. After a further delay of 60 milliseconds, valve 2 and valve 4 are turned on simultaneously. Once a user releases the selection command, the valve 1 and valve 3 are opened, valve 2 is turned off, and the pump is turned off. After a flush period of, for example, 1000 milliseconds, which flushes both the favor line and the main water line from valve 4, all of valves 1, 3 and 4 are turned off simultaneously.
(86) In some implementations, then, both the flavor line and the CO2 line may be flushed at the end of each dispense cycle, even though the system does not know for how long a user will request a dispense cycle.
(87) In addition to hardware, software is involved, because the duration of the flush that clears the line of concentrate can be varied based on properties sensed at a given place and time (e.g., based on water pressure).
(88) When a carbonation level that is in between the minimum and maximum possible levels is selected, control board 36 causes valve A and valve B to open and close repeatedly at a rate and in a sequence specified in a local database held in a data storage device that is present in the dispenser and is accessible to the control board 36. This causes combining of volumes of the carbonated and non-carbonated water streams from tube A1 and tube B1 in a desired ratio in tube C. The higher the carbonation level, the more valve B is caused to be open; the lower the carbonation level, the more valve A is caused to be open.
(89) For example, if a light level of carbonation has been selected (e.g. corresponding to 1.0 volumes of CO2) using the slider, when a user puts a finger on the water icon on the interface, valve B opens. While valve B remains open, valve A alternates rapidly between its open and closed states, alternating states every, say, 0.2 seconds. When the user removes his finger from the icon on the touchscreen, valve B closes, followed almost instantly (0.1 second) by valve A.
(90) For another example, if the user selects a medium level of carbonation (e.g., corresponding to 2.0 volumes of CO2) and touches the water icon, valve A and valve B are caused to be open simultaneously. When the user removes his finger from the icon, control board 36 causes valve B to close followed rapidly (0.1 second delay, for example) by the closing of valve A.
(91) In some implementations, the ratio of still water to carbonated water is controlled not by the relative amounts of time that valve A and valve B are caused to be open, but by the degree or extent to which the two valves are open. The controller board effectively reduces the flow rate of one of the streams while maintaining the other flow rate. For example, valve A can fully open while valve B only opens halfway, to create water that is only lightly carbonated. Alternatively, Valve B could fully open while Valve A only opens halfway, to create water that is more strongly carbonated. The generation of the selected carbonation level in the water therefore could be done with proportionally controlled solenoid valves, using either DC voltage or a pulse-width modulated signal.
(92) In some cases, the carbonation level of the water could be controlled by changing the pressure of the CO2 gas that is released into the water in Tank B, instead of by changing the ratio of non-carbonated to carbonated water. When a user sets the carbonation setting to the highest possible setting, the control board 36 could adjust the digital pressure regulator to increase its pressure to its maximum pressure of 110 PSI. When a user sets the carbonation setting to the lowest possible setting, the control board 36 could cause the pressure regulator to decrease its pressure to the lowest possible level of 0 PSI. When a user selects a carbonation level in between, the control board 36 could set the regulator to achieve a corresponding value.
(93) In some embodiments, data is collected during and after each dispense cycle, and at other times.
(94) For example, after the beverage dispenser dispenses a beverage, data such as the carbonation level setting and how long the user held her finger on an icon on the touchscreen (which corresponds to how long the still or carbonated water was dispensed) is recorded locally in the data storage of the beverage dispenser to which the control board 36 has access. In addition, every instance of a solenoid valve being opened or closed is recorded. The weight of the CO2 container, based on signals from the load sensor to the control board 36, is also measured and recorded, before and after dispensing.
(95) In some implementations, a digital flow meter is placed between tube C and the “T” connector to capture the flow rate at which the beverage being dispensed exits the “T” connector and enters the nozzle. The flow rate is recorded by the control board 36 in a database maintained in the local storage.
(96) The data from the local database are sent frequently, for example, every five seconds by the tablet microprocessor to a cloud database through a wireless connection. The cloud database is maintained by the central server 46.
(97) In some implementations, one of the beverage characteristics that can be controlled by the user by finger touches to the touch display of the tablet is the flavor strength imparted by the concentrated additive to the base liquid for a mixed beverage that is being dispensed. As shown in
(98) The location of the circle on the ellipse corresponds to a flavor strength, i.e., to a ratio of a liquid concentrate (or syrup) or other additive in a BIB to water or another base liquid. For example, in the central “medium” setting, liquid concentrate from the BIB is set to mix with water at a ratio of 1:11, by volume (1 part concentrate to 11 parts water). In the “strong” setting, liquid concentrate is set to mix with water at a ratio of 1:5 (the concentrate is less diluted by water). In the “light” setting, liquid concentrate is set to mix with water at a ratio of 1:20 (the concentrate is more diluted by water). Each of the strength settings corresponds to a speed setting on a digital peristaltic pump that is controlled by the control board 36 based on the user's input.
(99) As shown in
(100) In some implementations, instead of having three flavor strength settings (low, medium, and high), other numbers of strength settings can be used (from two different strength settings to a large number such as 200). In some cases, there is a continuum of 200 flavor strengths each corresponding to a precise ratio of concentrate to water, beginning at a ratio of 1:1, and increasing to a ratio of 1:200. The local database in the beverage dispenser associates flavor strengths with settings provided by the user and also associates flavor strengths with corresponding peristaltic pump speeds. The ellipse 1114 is presented with a wider section on the right, corresponding to a higher level of concentration, to provide the user with an intuitive sense for how to control the dispensing to achieve a desired level of concentration.
(101) In some instances, the beverage dispenser holds four containers (BIBs) of liquid concentrate (e.g., lemon concentrate, lime concentrate, and two others). In some cases, there could be fewer or more different containers. The plastic bags inside the BIBs contain couplers that enable the concentrate to flow out when a specific tube with a corresponding opening has been attached to that coupler. For each of the containers a ½″ outer diameter plastic tube is attached to the coupler, leading to a peristaltic pump mounted on an interior wall of the housing of the beverage dispenser next to the corresponding concentrate container. These plastic tubes serve as inputs into the peristaltic pumps. A peristaltic pump, when activated by the control board 36 draws the concentrate out of the corresponding container through the tube and into the pump.
(102) Concentrate exits a pump through a separate, much narrower tube, of ⅛″ to ¼″ outer diameter. As shown in
(103) The dispensing orifice (main nozzle) has a cylindrical inner wall with an inner diameter of 0.59″. Concentric to the main nozzle is the ring 504 that has a diameter of about 0.65″. The four smaller nozzles are located 36 degrees apart (radially from the main nozzle) from each other, in a symmetric arrangement left and right of the centerline of the nozzle from the front of the machine. The inner diameter of these smaller nozzles is 0.10″. The additive tubes are connected to the four smaller nozzles, and through these four nozzles, the additive stream is injected into the water stream.
(104) The angle of the four smaller nozzles in relation to the main nozzle can vary anywhere from 30 degrees to 50 degrees, which assures a good intersection between the additive stream and water stream for good mixing. If the additive stream does not intersect with the water stream as it flows into a container, it may create a visual effect of having a separate colored flavor stream in the water, which may be less desirable. The inner diameter of each of the smaller nozzles can range from 0.10″ to 0.17″.
(105) Under pressure from the corresponding pump, concentrate is dispensed by the small nozzle and directly into the air within the larger dispensing orifice. At the same time water or another base liquid is also dispensed vertically along the central axis of the dispensing orifice. The four small nozzles open into the bottom end of the dispensing orifice and deliver diluted or undiluted additives while the water or other base liquid is ejected into the top of the dispensing orifice. The (in our example) four small nozzles for the four concentrates are angled at 45 degrees so that the concentrate or concentrates and the water or other base liquid mix in air, about half an inch below the lower end of the dispensing orifice, to form the finished dispensed beverage. In other words, the concentrate is dispensed crosswise into the vertically ejected stream of water or other base liquid. Other orientation angles of the small nozzles may also work including angles in the range of 30 to 50 degrees.
(106) In some cases, hot/cold beverages and vitamin-based drinks can be dispensed out of the same nozzle, in some cases, a dispensing cycle can be stopped when it is determined that a cup or bottled is full or has overflowed based on a visual sensor, a sound sensor, or a physical sensor or a combination of two or more of them.
(107) As shown in
(108) In some embodiments, each peristaltic pump comprises a housing (attached to the wall of the machine) that holds a motor, control electronics, a pump head, and a triangular roller. The roller sits inside the pump head. The input tube from the concentrate BIB surrounds the roller. When the pump is activated, the roller rotates in place, pushing concentrate through the output tube.
(109) When a user holds a finger on an icon on the touchscreen representing a flavored water (e.g., lemon water), valve A opens, and only water at first begins to be dispensed. Less than 0.1 seconds later, the peristaltic pump connected (by a tube) to the lemon concentrate BIB container is activated by control board 36. The peristaltic pump pulls concentrate from the larger input tube and pushes it through to the smaller output tube at a flow rate that will create the desired dilution ratio of concentrate to water.
(110) For example, suppose the flow rate of water out of the dispensing orifice at a particular beverage dispenser is 1 liter per minute. If the user has selected a “medium” level of flavor strength, corresponding to a concentrate:water ratio of 1:11, then if the icon representing lemon is held, the peristaltic pump will pump lemon concentrate at a speed of 1/12 liters per minute. Both water and concentrate are dispensed at a steady flow rate, so whether the user dispenses lemon water for 4 seconds or for 200 seconds, the ratio of concentrate:water dispensed will stay constant at 1:11.
(111) As another example, if the flow rate of water out of the nozzle is the same 1 liter per minute, and if the user selects a “high” level of flavor strength, corresponding to a concentrate:water ratio of 1:5, the peristaltic pump pushes concentrate at a speed of ⅙ liters per minute.
(112) As for the choice between still water and carbonated water, in some implementations, when a user selects a concentration ratio on the touchscreen (which sets the dispenser in a dispensing mode corresponding to that ratio), the ratio applies to any flavored beverage selected from then until the strength mode is changed by a user through interaction with the touch screen. In the examples above, had a user selected “cucumber water” instead of “lemon water,” the peristaltic pump that pulled from the container of cucumber concentrate would have operated at the same speed as the peristaltic pump that pulled from the container of lemon concentrate.
(113) In some implementations, the flow rate at which peristaltic pumps pump concentrate is digitally controlled to an accuracy of 1.95 mL per activation. The flow rate ranges from 0.001 liters per minute to 5.000 liters per minute. In other words, the concentrate can be pumped at a highly stable, reliable rate over time. However, the flow rate of water or other base liquid that is to be mixed with the concentrate can vary based on a variety of factors, such as incoming water pressure and incoming flow rate from the tap, and the level of pressure loss caused by a water filter. In addition, for beverages for which the ratio of concentrate to base liquid is low (for example, in flavored waters), even small variations in the ratio can be noticed by users and perceived as a quality or uniformity issue. Furthermore, the flow rates of the water of other base liquid at different machines can differ significantly yet the user may expect that a given beverage dispensed from different beverage dispensers will taste the same in terms of strength of flavor (and strength of carbonation).
(114) In some examples, therefore, the flow rate of fluid from the peristaltic pump can be carefully controlled to compensate for changes in the flow rate of the base liquid or differences in the flow rates of different beverage dispensers. To enable control of the pump in this way, data on the flow rate of water out of the dispensing orifice can be collected manually from time to time or automatically and continually through a flow meter on tube C, or a combination of the two. The collected data is stored both locally at the beverage dispenser and in the database maintained by the central server. The speed of the peristaltic pump then can be varied to maintain constant ratios of concentrates to base liquids as flow rates of the base liquid fluctuate.
(115) For example, suppose a user desires a 12-oz. beverage at a concentrate:water ratio of 1:11. If the actual flow rate of water is 11-oz. per 5 seconds, then 1 oz. of concentrate must be dispensed over 5 seconds. The control board in the dispenser uses the data stored on the flow rate of water to calculate the correct speed of the pump, in this case 0.2 ounces per second. If alternatively the user desires the same 12-oz. beverage at exactly the same concentration ratio, but the water flows at a rate of 11-oz. per 10 seconds, then the control board uses the data stored on the flow rate of water to calculate a different speed for the pump, in this case, 0.1 ounces per second.
(116) Carbonated water typically is dispensed at a higher flow rate than non-carbonated water, due to extra pressure from the CO2. Data on the flow rate of carbonated water as well as non-carbonated water are stored in both the machine's local database and in the cloud database managed by the central server. The speed at which a peristaltic pump operates is controlled to match the recorded flow rate of whichever kind of water is dispensed—carbonated, non-carbonated, or a mix.
(117) In some implementations, after flavored water (e.g., carbonated or still water with a relatively small ratio of additive) is dispensed, information such as the flavor setting, the corresponding concentration ratio, the speed at which the peristaltic pump operated, and the length of time that the peristaltic pump was active is recorded in a local database. The volume of concentrate removed from the concentrate container is calculated in two ways, for cross-checking: by multiplying the flow rate of the peristaltic pump (in terms of liters of concentrate per second) by the time that a user held his finger on the touchscreen, and by timing the activation period of the pump and multiplying by the flow rate known from checking the calibration of the pump. In some examples, every 5 seconds, the data from the local database are sent to a cloud database through a wireless connection (wired Ethernet connection is also available). The data can be used for a wide variety of purposes by a wide range of users.
(118) For example, by giving users the freedom to specify the characteristics of drinks that are dispensed to them, it is possible for the database to include information on customer preferences. Data may be collected, analyzed, and distributed at the level of a given dispenser, at the level of an office or building, and at the level of multiple locations, for example. When data that identifies individual users over time, such as mobile payment information that identifies users, the data of the database can also be accumulated, analyzed, and distributed at the level of a particular time, or at the level of a period of time, or at the level of comparisons at selected different times. This enables tracking of an individual user's preferences over time and across locations. The data in the database can provide useful information on multiple sources of beverage (such as different beverage companies) including (a) identifying market trends to guide creation of new flavors, (b) creating brand loyalty by offering people their favorite drinks everywhere, and (c) inventory management, by recognizing the right locations for the right drinks. By giving users free reign to select the characteristics of the drinks that they select, valuable data is developed. In some implementations, the beverage dispensing system and individual beverage dispensers can alter beverage characteristics based on the location of a beverage dispenser and other factors. For example, in the touchscreen interface, when a user selects a flavor strength, the selected flavor strength corresponds to a recipe of a preset ratio of concentrate:water. The ratio (the recipe) is stored both locally in the data storage of the dispenser and in the cloud database. The ratio is associated with, and particular to, the specific dispenser. For example, on a given machine, when a user sets the flavor strength on the touchscreen to “medium,” this may correspond to a concentrate:water ratio of 1:11. On another machine, “medium” may correspond to a ratio of 1:15. The recipe for an expected strength of a given beverage at a given dispenser will depend on the actual recipe strengths that users of a given dispenser prefer corresponding to strengths implied in the user interface controls. These recipe strengths change over time, based on stored data about beverages dispensed to users of the dispenser.
(119) Every time a user selects a flavor strength (e.g. “medium” or “strong”), her selection is recorded. The corresponding actual ratio of concentrate:water dispensed is also recorded. The ratios corresponding to flavor strength selections are altered over time, based on statistics about dispensed beverages at the dispenser. In particular, the ratio of concentrate to water for a given beverage strength identified on the user interface (say “medium”) can be adjusted to be either more or less concentrated based on the overall flavor strength preferences of a particular dispenser's user base.
(120) For example, suppose that at a given time a machine's flavor strength settings correspond to the following ratios of concentrate to water: Light—1:20 Medium—1:11 Strong—1:6
(121) Now suppose that over the course of a 24-hour period, the majority of selections are for “strong” flavor strength, suggesting that users of that dispenser prefer stronger beverages. Then the concentrate:water ratio corresponding to a “medium” flavor setting can be changed from 1:11 to 1:10, and the ratio corresponding to a “strong” flavor settings can be changed from 1:6 to 1:5.
(122) In another example, suppose that, at a given time, a dispenser's flavor strength settings match the following ratios of concentrate to water: Light—1:100 Medium—1:50 Strong—1:10
(123) When over the course of a 1-hour period, the majority of selections are for “light” flavor strength, the concentrate:water ratio corresponding to a “medium” flavor setting is changed from 1:50 to 1:51, and the ratio corresponding to a “light” flavor settings is changed from 1:100 to 1:101.
(124) The revised ratios corresponding to flavor settings, and the specific time at which they change, are recorded in a time-series database in the cloud.
(125) In some implementations, one or more of the beverage characteristics such as flavor strength can be adapted to information about uses by an individual user. For this purpose, the user interface can be set up to be able to identify the user (e.g. by facial recognition using a camera on the user interface, or a wide variety of other techniques). Every time that user selects a flavor strength (e.g. “medium” or “strong”), his selection is recorded. The corresponding ratio of concentrate:water dispensed is also recorded, and associated with that user. In other words, the recipe for a beverage to be dispensed can be varied depending on the identity of the user. The ratios (recipes) corresponding, for example, to flavor strength selections can then be adapted over time, based on his statistical information about that user's usage.
(126) For example, suppose at a given time a user's flavor strength settings (as selected through the user interface) match the following ratios of concentrate to water that are stored and associated with that user: Light—1:20 Medium—1:11 Strong—1:6
(127) When the user dispenses flavored waters with an average (mode) of “strong” flavor settings, it can be inferred that the user prefers lemon drinks strongly flavored and cucumber medium drinks. Then the concentrate:water ratio corresponding to a “medium” flavor setting can be changed in the databases from 1:11 to 1:10, and the ratio corresponding to a “strong” flavor settings can be changed from 1:6 to 1:5. As such, the dispenser adapts to a flavor profile that prefers stronger tastes.
(128) The revised ratios corresponding to flavor settings for the associated user, and the specific time at which they change, are recorded in a time-series database in the cloud.
(129) An essentially identical approach can be applied to a variety of other beverage characteristics including carbonation settings, for which the volumes of dissolved CO2 in water corresponding to settings of “light,” “medium,” and “strong” carbonation can be adapted to usage patterns of individuals or groups. For example, when users of a given dispenser tend to choose a “strong” carbonation setting, the quantity of dissolved CO2 in water at a “medium” or “strong” setting could be increased, based on the assumption that users of that machine preferred beverages with higher carbonation. Conversely, when users of a given dispenser tended to choose “light” carbonation, the quantity of dissolved CO2 in water at a “medium” or “light” setting would decrease, based on the assumption that users of that dispenser preferred beverages with lower carbonation.
(130) In some instances, the “light,” “medium,” and “strong” flavor and carbonation settings are mapped to the following factors in a database, and vary in accordance with how individual and group user preferences are correlated to any one or a combination of any two or more of these factors: Temperature Time of day Season A recently completed activity identified by the user (e.g. running, swimming, sleeping) Dietary restrictions Health conditions
(131) For example, a correlation could be identified across all dispensers that on hot days people tend to set stronger flavor strengths. Actual current temperature data could be pulled into the database for each area code in which a dispenser could be placed. When the temperature was greater than 80 degrees Fahrenheit in the zip code in which a dispenser was located, flavor strength settings across all machines could increase, so that when someone selected a flavored beverage on a “medium” or “strong” setting, for example, the peristaltic pumps moved at a higher speed (delivered concentrate at a higher flow rate) than when someone chose the same setting on a day when the temperature was 50 degrees.
(132) For a different example, a user could identify to a dispenser, by touching a symbol on the touchscreen interface, that he is diabetic. When he does this, the recipes for flavor strength settings of all flavors that contained sugar would be significantly turned down to safe levels for diabetics.
(133) When a user maintains physical contact (e.g., using a finger) with an icon representing a beverage on the touchscreen for more than a predetermined threshold, say, 0.25 seconds, that beverage begins to be dispensed under the control of the control board. When a user maintains contact with an icon on the touchscreen for less than the threshold, say, 0.25 seconds, a message appears on the touchscreen after the user ceases contact. The message says “Hold to fill,” and advises the user that in order to dispense a drink, the icon must be held longer. In addition, delaying the start of dispensing by a predetermined threshold, say, 0.25 seconds, avoids little spurts of fluid from being dispensed when the user does a short touch. This feature lets users know that all they need to do to dispense a beverage is to keep their finger on an icon (because many users tap an icon expecting the touchscreen to offer them further instructions or further choices). The tablet, which determines the amount of time the contact has continued, and the control board, which commands the devices in the dispenser to dispense the beverage, communicate with one another to effect this process.
(134) In some implementations, the tablet could detect motions associated with cleaning the screen, such as rubbing a cloth in a consistent circular pattern, or up-and-down pattern and allow dispensing again after the cleaning activity ended.
(135) Among other ways, non-human touches can be identified are as follows: 1) the detection of 70 touches (for example) within a five-minute period (the range could be changed). 2) A single touch that goes on for more than 70 seconds (for example). This could be caused by dirt or oil getting stuck to the touchscreen (transmitted from someone's finger). 3) ten or more, for example, touches in the same square inch (or similar area) of the touchscreen in less than 1 second, for example. These touches do not necessarily have to be on the same pixel, but they all have to be within a square inch. The range of touches that would be detected as non-human could be five or more touches. This would indicate that the touches probably did not correspond to a person trying to dispense a single drink, as the user interface is intended to do. 4) ten or more, for example, touches in ten places, for example, on the touchscreen, in which no touch is on the same pixel, in less than, for example, two seconds. This would indicate that multiple drops of water were splashed on the touchscreen. The range of touches could be programmed to any number five or higher, based on what is considered to be an erratic, irrational pattern.
(136) Touches on the entire touchscreen can be analyzed, not just the area where icons are displayed, because when water or dirt get on other areas of the touchscreen, there is also the risk that they will get on the icons.
(137) Although many kinds of touchscreens would be suitable for use in the dispenser, one appropriate example would be a 10.1″ (corner to corner) touchscreen manufactured by ASUS Computer International. The resolution is 1280×800. It is a capacitive pressure-sensitive touchscreen with the ability to pick up on over 200 different pressure levels. In some cases, the touchscreen can be integrated in a tablet. In some implementations, the touchscreen and computer can be decoupled, such that the touchscreen would be a separate component that is connect to a computer through a cable.
(138) As mentioned earlier, the beverage dispenser has a carbon block (charcoal) filter, with pores that are 0.5 microns in size, meaning that particles in the water with a diameter of greater than 0.5 microns are captured by the charcoal. Chlorine, sediments, as well as many organic contaminants are captured by the filter. H2O molecules pass through the pores. Filters need to be changed when contaminants physically create too many clogs in the pores, and when water can no longer pass through at an adequate flow rate. A person (typically a technician) changes the filter when this happens. By the approach described here, it is possible to determine at a location remote from the dispenser that a filter in a beverage dispenser needs to be changed or is approaching a time when it will need to be changed. More generally, it is possible to determine the state of clogging of the filter over time.
(139) Within the database managed by the central server in the cloud, each dispenser has a globally unique identifier that can be associated with data related to that dispenser. Every filter change in a machine is recorded and stored and is associated with a specific dispenser. The type of filter (brand and serial number) is manually entered in the database. The specific locations of the dispensers (latitude & longitude coordinates) are also stored in the database. In this database, there is also a recommended date at which the particular filter in each of the dispensers next needs to be changed. In some instances, the database also stored a recommended number of gallons after which the filter needs to replaced. The actual gallons passed through the filter, together with an estimate of gallons/day yields a date at which the filter needs replacement. Initially, a default number of days after the date of installation before a particular brand or model of filter needs to be changed is estimated based on the manufacturer's suggestion of how much volume of water the filter can handle before clogging and the expected usage of the filter in a given dispenser. This number of days in which the filter needs to be changed is updated in real-time from its initial default value by subtracting the total volume of water that has actually passed through the current filter from the total volume of water expected to pass through the filter before it clogs, and dividing the difference by the daily expected level of volume.
(140) The volume of water to be dispensed between filter changes varies based on the rate at which a filter in that given dispenser is expected to clog with sediment. The rate at which a filter clogs and needs to be replaced depends on factors such as the turbidity of the input (source) water, the water pressure of the water entering the filter, and the types of sediments in the source water. These factors vary from location to location.
(141) When the dispenser has operated for long enough to undergo two filter changes, the total volume of water the filter is expected to handle is calculated as follows:
(142) The average volume of water that passed through the past 1-5 filters (for example, two) in the past at that location, before the filter experienced a significant decrease in flow rate of exiting water (e.g., a decrease in the flow of water exiting the filter of more than 10%, compared to the date the filter was first installed). The decrease in flow rate at which a filter needed to be replaced could be set in a range between 1-50% from when it was first installed.
(143) In some implementations, in locations that lack the sufficient history of water filter changes, the total volume of water the filter is expected to handle is calculated as follows, for example: 1) If other dispensers in the same building have undergone a combined total of at least two filter changes, the average volume of water that passed through the past two filters in all of the machines in the building 2) If no other dispensers have been installed in the same building, but if other dispensers within a 0.3-mile radius have undergone a combined total of at least two filter changes, the average volume of water that passed through the past two filters in all of the dispensers in that radius. The radius is selected to encompass, for example, dispensers on the same city block, sharing the same water mains, because they are likely to have the same types of sediment from the water main pipes. A range up to a 1-mile radius could also be used. 3) If no other dispensers meet the above criteria, the radius is increased by 0.3 miles, repeatedly, until a dispenser within the radius has been found.
(144) In variations of this method, the total volume of water that a filter is expected to handle depends on both the averages described above, as well as various coefficients. These coefficients indicate the percentage of volume that increases or decreases from the average based on the following, among others: The level of lead in the water, measured by a person when the dispenser is installed, using a digital test kit. The level of fluoride in the water, measured by a person using a drinking water test kit. The turbidity in the water, measured by a person using a turbidity meter that measures total suspended solids. The temperature of the input water, measured manually or by a digital thermometer attached to the input water.
(145) The coefficients are determined empirically.
(146) For example, an increase in the temperature of incoming water can be an indicator of more turbid water. More turbid water will clog a filter faster than less turbid water. If a sensor that senses the incoming water temperature identifies that the temperature has increased, then a liter of water that passes through the filter at that higher temperature can be expected to clog the filter more than a liter of water at a lower temperature.
(147) This would be reflected in the predictive filter change model as follows:
(148) Additional volume of water that a filter can process=Total volume that (Volume of water on Day 1) X=volume of additional water that the filter can process before it clogs V=total volume of water that a filter is expected to process (based on historical average) D.sub.1=total volume of water that a filter processed on day 1 of operation D.sub.2=total volume of water that a filter process on day 2 of operation D.sub.3=total volume of water that a filter process on day 3 of operation Etc. for days 4+ z=1.05=coefficient for above-average temperature
(149) In the following example, days 3 and 5 have warmer temperatures, and the model assumes that turbidity is higher on these days and that consequently there will be additional wear and tear on the filter, requiring an earlier filter change:
X=V−D.sub.1−D.sub.2−zD.sub.3−D.sub.4−zD.sub.5−D.sub.6 . . .
(150) The same formula could be calculated using a different parameter, or a combination of parameters. For example, a technician, when visiting a dispenser, might use a lead testing kit to measure the presence of lead in tap water every day. Based on empirical study, lead could decrease the number of days within which a filter needs to be changed by 50%.
X=V−1D.sub.1−1D.sub.2−1zD.sub.3−1D.sub.4−1zD.sub.5−1D.sub.6 . . .
(151) In some implementations, measurements of the state of the incoming tap water (e.g. lead levels, temperature, rates of required filter changes, etc.) could be shared with a governmental water authority or other government agencies, an environmental protection organization, and/or building owners or developers.
(152) When a water filter becomes fully clogged, not only does it stop filtering water correctly, but it can also cause dispenser breakdowns, because the dispenser's chiller can overheat trying unsuccessfully to pump water from the filter. Typical water coolers with filters, as well as hand-held filters like Brita and Pur are replaced based on either (a) a standard interval of time, or (b) a standard volume of liters of water that have passed through the filter. The standards are typically set by a manufacturer. However, depending on local water quality, affected by the age and quality of building pipes, for example, the actual volume of water after which filters need to be changed varies significantly from location to location.
(153) In some cases, recognizing when a filter needs changing can be done as follows, without an Internet-connected flow meter: (1) Take a measurement (or look up a known measurement) of the flow rate of water out of the nozzle in a given dispenser. The measurement could be taken manually by filling a 1-liter bottle of water directly from the dispenser and counting the number of seconds it took to fill the bottle to determine the flow rate in liters per second. (2) In the first day after a filter has been changed (when flow rate is still expected to be unimpeded by clogs), calculate the average dispense time at a given location. Dispense time is measured directly from the touchscreen, by counting the number of seconds that a user holds a finger on an icon representing a beverage. (3) Multiply the flow rate from (1) by the average dispense time in (2) to determine the volume of the average dispensed beverage (e.g. 8 oz. or 12 oz). (4) Maintaining the average volume of a beverage calculated in (3), and assuming that the average volume of beverages dispensed will remain constant at that particular location, each day, divide the average volume by the average dispense time of beverages poured that day. (5) When the daily average dispense time has increased by a predetermined percentage from the initial average dispense time calculated in (2)—e.g., when the average dispensed time has increased by 10% from the day after the filter was changed, assume that the filter has become significantly clogged and that the filter needs changing. The decrease in time that justifies a filter change could vary from 1-50%. (6) Send an automated email alert to an operations team or distributor that manages the dispenser that the filter needs changing.
(154) In some examples, instead of estimating the average dispense volume for all beverages in (3), the average is taken only for beverages dispensed for a particular user or set of users, e.g., all users who identify themselves as having a particularly sized cup.
(155) In some instances, if there were an Internet-connected flow meter attached to tube C of the dispenser, the decrease in flow rate of water exiting the dispenser could be measured directly, instead of being estimated based on the length of time that someone held an icon on the touchscreen. Once the flow rate decreased by a predetermined percentage from when the filter was last changed (e.g., 1-50% slower), an alert would go out that the filter needed to be changed.
(156) In some embodiments of the water and CO2 delivery system, as shown in
(157) In some implementations of the water and CO2 delivery system, a digital scale that sits on a shelf inside the machine, directly underneath the CO2 tank, is calibrated annually and is polled every hour. The resulting data is used to monitor the weight of the CO2 tank in the dispenser. As carbonated water is dispensed from the machine, CO2 is consumed, gradually decreasing the weight of the tank. An “end” weight value is programmed into the control board in the dispenser, which is typically a fixed value (the weight of a specific type of CO2 tank with 0-10% of known mass put into CO2 tank), e.g., a CO2 tank which weighs 5 lbs empty+1 lb (10% of 10 lbs CO2)=6 lbs. A percentage of remaining CO2 that is used to represent the end value can vary from anywhere from 0-10%, depending on the quality of the scale. 10% is a safe buffer in case the scale has inaccuracies. The CO2 tank weight is stored in the dispenser and periodically (every 5 secs) communicated over the Internet to the central server. When the CO2 tanks weight decreases to a programmable set of thresholds, a series of warnings can be transmitted to service personnel indicating that a CO2 tank is nearing a point at which it requires replacement, or in fact requires replacement. This same set of indicators can also be used to disable “carbonated” water on a machine until the CO2 tank is replaced. Disabling the “carbonated” water prevents a user from shifting the toggle on the touchscreen interface from “still” to “carbonated.” (Similar disabling can be used to prevent a user from causing a beverage to be dispensed of a particular flavor if the flavor concentrate container is depleted.) The first warning in the series can be programmed to be sent out when the CO2 tank is estimated to be in a range from 11-15% full. The next warning in the series can be programmed to be sent out when the CO2 tank is estimated to be in a range from 6-10% full, and so on, until the CO2 tank is estimated to be empty.
(158) When the dispenser has not been used for a prolonged period of time (i.e., when no one has dispensed a drink in a period of greater than, for example, 6 hours), the temperature of carbonated water that has exited the chiller and is sitting in tubes B and B1 will get closer to the ambient air temperature. For example, in an office setting, where beverages are typically not dispensed over the weekend, the first one or two beverages dispensed on Monday morning will likely be at an ambient temperature, instead of chilled. Ambient or warm water does not retain as much dissolved CO2 as cold water, so if a user selects a carbonated drink for the first or second dispense cycles after a prolonged inactive period, a poorly carbonated drink will be dispensed.
(159) As shown in
(160) In some cases, tank A and tank B both sit inside a chilling tank 913, which, when a dispenser is first installed at a location, is filled with water. This water is in constant contact with a heat exchanger that keeps the water in the chilling tank cold. A small agitator inside the chilling tank keeps water in motion to stop ice from forming throughout the chilling tank, because that would risk icing the water inside tanks A and B.
(161) Tube J is approximately five feet long. It runs alongside tube B1, valve B, and tube B, physically touching them; then it bends and carries water back into the chilling tank. Tube J physically touches tubes B and tubes B1 for over two feet of length. Heat transfers from the water in tube B and tube B1 into the chilled water of tube J, ensuring that the water in tube B and tubes B1 remains cold (approximately 38 degrees Fahrenheit), and retains CO2.
(162) In some implementations, the temperature inside the chilling tank is not measured in real-time; and the temperature is controlled in an open loop mode. In some implementations, a digital thermometer could be used to measure the temperature inside tank A and tank B. The tanks could be maintained at their target temperature (a specific temperature between 32 and 50 degrees Fahrenheit) and the setting of the heat exchanged could be set to automatically adapt.
(163) To reduce the amount of heat that escapes tube B1 and goes into the air, tubes B, B1 and J are wrapped in foam for insulation 908.
(164) In some embodiments, each dispenser contains four concentrate containers in BIBs. BIBs, which are a standard packaging format for syrups and concentrates in the soda fountain industry. A BIB comprises a plastic bag of liquid concentrate inside a cardboard box. The plastic bag has an opening that attaches to a tube. To optimize operations of the beverage dispensing system the remaining weight of each concentrate in each dispenser is tracked and, based on consumption rates at those dispensers, the date on which each concentrate is expected to run out is estimated.
(165) Each container has a default weight associated with it, which typically falls within a range of 25-35 lbs. for a 3-gallon container. When a technician puts a new container into a dispenser, he uses a special service interface on the touchscreen to enter which of a list of potential concentrate containers has been installed (for example—unsweetened lemon, unsweetened raspberry, preservative-free lemon, etc.). Each of the concentrate containers that could be installed has a default weight associated with it, stored in the local data storage in the dispenser and in the database managed by the central server. This is assumed to be the starting weight of the new concentrate container that has been installed.
(166) If the technician is inserting a concentrate container into the dispenser that was previously opened and used, and therefore weighs less than the typical starting weight of a container, he can check a checkbox on the touchscreen that says “Not a new BIB.” When this is checked, the technician is prompted to enter the weight of the container directly on the touchscreen.
(167) In some implementations, the inventory model process that runs on the central processor predicts the current inventory status based on: full and empty bag-in-box (BIB) weight. actual dispense times. actual duty settings and measurements of the pump for each dispensing cycle. empirically defined relation between duty cycle of the related pump and the amount of concentrate dispensed.
(168) From these parameters, typical usage rates are extrapolated into the future to predict when BIBs will be depleted, based on, for example, the following formula:
W1=W0−Σ(s*r*t*a*b)
(169) Variables are explained as follows: W0=The weight of a concentrate container at the last time of measurement in kg W1=The weight of a concentrate container at a defined time after W0, in kg s=speed of peristaltic pump (on a scale of 0 and 255) during a dispense cycle t=duration of a particular dispense cycle, in seconds r=rate (in kg per second per 1 degree of pump speed) at which concentrate is expected to flow through a peristaltic pump, based on that peristaltic pump's setting between 0 and 255; this variable is standard across all machines. a=coefficient for the particular peristaltic pump inside a particular machine, to account for slight variations in performance of peristaltic pumps. b=coefficient for the particular type of concentrate being dispensed, to account for variations in r caused by properties of a particular liquid concentrate (e.g. density, viscosity).
(170) Between t0 and the current time, the system computes loss of concentrate based on actual dispenses using this formula. For any time in the future, the system can use the same formula but based on average durations and strengths.
(171) In words, the weight of the consumable concentrate at time t1 is the weight at time t0 minus the sum of a function over all dispense cycles that occur between t0 and t1. The function is a linear function that depends primarily on the flavor strength and duration of each dispense cycle, as well as on properties of the peristaltic pump doing the dispensing, and the particular liquid concentrate.
(172) Coefficients a and b start off as “1,” but are continuously adjusted based on actual measurements of concentrate depletion across all dispensers in the system. The goal is to improve the weight prediction over time, using information from all dispensers. The coefficients can be adjusted through the following feedback loops: Measurements of concentrate weights using digital load sensors or scales. Because load sensors add to cost, in some implementations they are not included in every machine, but could be included, for example, in approximately 10% of machines for the purposes of improving the model by comparing forecasts to reality. Manual measurements of weights using scales, occasionally taken by technicians when visiting dispensers.
(173) The following calculations are performed using empirical examples of the weights calculated, to create a rolling average of the measurements of “a” and “b.” The coefficients are revised according to the rolling average: 1. Revising coefficient a
a=(W0−W1)/(s*r*t*b) 2. Revising coefficient b
b=(W0−W1)/(s*r*t*a)
(174) As mentioned above, the beverage dispensing system includes potentially a very large number of beverage dispensers at the same and different locations, all communicating data and instructions back and forth with central servers. Data is stored locally in the dispensers and also centrally in the cloud database. The data can be used in connection with operation of the dispensers and also to provide information to owners of the dispensers, owners of buildings where the dispensers are located, distributors, technicians, and service people, manufacturers of concentrates, CO2 containers, and other items used in the dispensers, marketers, and a wide variety of other parties. Among the kinds of data stored in the dispensers and in the cloud database and made available to users and others can be the following: A visual time-series display of daily dispense cycles, in which the total number of dispense cycles of each beverage are shown. The flavor selection, the strength of each flavor, the carbonation level, and the duration of each dispense are recorded in a database. In some instances, the visual time series does not display the strength of flavor or level of carbonation but only shows the total number of dispense cycles for each flavor selection by dispenser and any grouping of dispensers. A visual time-series display of daily dispense cycles, in which the duration (in seconds) of total dispense cycles of every beverage is shown. Real-time levels of CO2 and concentrates left in each dispenser. Forecast date when each concentrate will run out for each dispenser. Forecast date when CO2 will run out for each dispenser. Forecast date when a filter needs to be changed in each dispenser. Status of the battery in the tablet in each of the dispensers. Recorded dates of servicing activity for each dispenser. A history of alerts of problems (e.g. loss of water pressure, loss of Wi-Fi connection, etc.). Location of the dispenser. Version of the hardware & software in the dispenser. The identity of the distributor that manages the dispenser. The identity of the customer that controls the dispenser.
(175) The cloud central server can be involved in the control of the operations of the dispensers in various ways, across all dispensers, a group of dispensers, or for a specific dispenser: e.g.: Turning the machines on or off Resetting the tablets Upgrading the software Changing the text or graphics on the screen Changing the default speed of peristaltic pumps Changing the default “flush” time of water after a dispense cycle, or changing dispensing sequences in other ways Changing the characteristics by which non-human touches are inferred Changing the default CO2 strength Changing the description of the concentrates
(176) A wide variety of users can be given access to the data stored in the database in the cloud for a broad range of purposes. Login can be achieved using an email to authenticate a user. Distributors (companies that purchase or lease the dispensers, and then sell or service them to customers) can track and control their dispensers using the cloud data and services provided by software miming on the central server. Access is given through a web browser interface that is served by the central servers. The portions of the data that can be accessed by a given user can be controlled based on the identity of the user, the location of the dispensers, the category of user (owner, distributor, building manager, etc.).
(177) The cloud platform (we sometimes refer to the central server, software running on it, and the central database together as the cloud platform) can link each dispenser (based on a globally unique identifier of the dispenser) to a particular distributor. The particular distributor, for example, would need to be able to see data related to dispensers for which it is the responsible distributor, but should not see data for any dispensers managed by other distributors, to protect confidentiality of other distributors and their clients. When an employee of the particular distributor logs into the cloud platform using a work email address (say, with the domain particulardistributor.com), she becomes authenticated, and she then has access to a filtered version of the platform, with the full ability to view data and issue control instructions for only the dispensers associated with the particular distributor's account.
(178) The host of the cloud platform can control which data that a particular distributor can view, and can limit their ability to issue control instructions to their dispensers, for all dispensers managed by that particular distributor. For example, the host of the cloud platform can stop a particular distributor from having the ability to change the default flavor settings in dispensers. The central server can also stop the particular distributor from viewing information such as the number of beverages dispensed.
(179) As shown in
(180) As mentioned earlier, each of the beverage dispensers can have two processor units which can be implemented, in some examples, as: a lower level, Arduino-compatible processor to steer the hardware, which is an example of the control board 36, and a processor (which can be part of the tablet mentioned earlier) that runs Android and is responsible for the user interface, for commanding the Arduino-compatible processor, and for communicating with the cloud.
(181) In some embodiments, the Android processor in cooperation with the tablet of each dispenser keeps a detailed log of all the notable events that occurred at, in, and with respect to the dispenser and its operation, and stores the events of the log in a time series database in the local data storage of the dispenser. This is a log in the sense that information is only added, not updated, and it provides a clear detailed history of the beverage dispenser including every touch to the touchscreen and information collected from digital controls and devices in the dispenser (e.g., the opening and closing of solenoid valves).
(182) Tracking and analyzing of choices of flavor preferences can be used to optimize the experience of an individual user of the dispenser by making it easier to select his favorite flavor characteristics. On an aggregate level, across multiple dispensers, it improves the operation of each dispenser by optimizing the flavors and their characteristics.
(183) All this event stored data is pushed from each of the dispensers to the cloud platform. The cloud platform is a web service endpoint on our servers. When an Internet connection is not available, the tablet will continuously try to reestablish a connection. When the Internet connection is restored, newly stored events are sent to the cloud platform beginning after the last event contained in the last successful transmission. In that way, no events will be missing from the comprehensive database stored in the cloud platform. This ability to not lose information when Internet connectivity is down is important.
(184) The cloud servers continuously receive a stream of data from each dispenser that is Internet-connected. The data are stored persistently in the central database. Asynchronous tasks are launched automatically or manually as needed to analyze the data and provide support for various applications that rely on the data and are running on the central servers.
(185) A wide variety of applications can be run on the servers of the cloud platform to receive and process event data, serve user interfaces, control features of dispensers, analyze data, communicate through the Internet, support distributors, order replacements of supplies and order service, support service technicians, model the operations and supplies of dispensers, predict usage of supplies, and perform other functions and combinations of them. In some implementations. the applications running on the cloud platform can include: Inventory model to predict the precise weight of concentrates and CO2 in a machine. An alert system that sends emails to distributors, owners, servicers, and others to signal potential problems or service requirements of a machine (e.g. CO2 or concentrates running low, a filter that needs changing, a water leak, a lack of water pressure, a broken solenoid valve, etc.). A dashboard to enable the cloud platform host and individual distributors to oversee and compare the performance and status of all machines A place for technicians to track their work restocking machines with concentrates and CO2, replacing filters, and documenting other issues.
(186) In some implementations, the first (Arduino) processor (the control board) is responsible for controlling and receiving data from the following hardware, among other things: Solenoids that have a binary on/off state for opening/closing the fluid lines. Peristaltic pumps that control the fluid lines of each concentrate. A speed sensor associated with each peristaltic pump. A thermometer associated with the control board that records ambient air temperature around the electronics. The load sensor used to weigh the CO2 tank. The value represented by a current between 0 and 5000 mA. This raw data is recorded at the cloud platform and converted to pounds of CO2 based on an empirically determined translation function for each load sensor. Every load sensor has a different conversion rate to pounds.
(187) The first processor (Arduino) and second Android processor (currently in a tablet) communicate via Bluetooth. The tablet is the initiator of the communications. A protocol of commands carried by the communications form a DSL (domain specific language). In some implementations, the following is a complete set of English language version of the commands (a wide variety of additional and different commands also could be useful):
(188) Commands from the Arduino to the tablet include: Turn dispensing of water on or off Turn peristaltic pumps on or off Set speed of peristaltic pump Perform a load sensor measurement of CO2 Change the value of a property or parameter such as how long water should run after concentrate stops being dispensed (i.e. the “flush”)
(189) Data sent back from the Arduino to the tablet: Acknowledgement that water has been dispensed (solenoid opens) Acknowledgement that a concentrate has been dispensed (peristaltic pump starts) Acknowledgement that a flush has been performed Acknowledgment that a dispensing cycle has ended (i.e. solenoid closes or pump stops) Acknowledgment of a load sensor measurement of CO2
(190) In some examples, the Android tablet has at least two apps running at all times: a “dispense” app and a “watchdog” app.
(191) The dispense app is responsible, for example, for: Presenting and managing the user interface for selecting drinks and dispensing and for interacting with service technicians, such as the user interface shown in
(192) The watchdog app is responsible for, among other things: Making sure the dispense app is always running and in the foreground Making sure that the dispense app starts immediately after a restart of the tablet Upgrading the dispense app (the dispense app cannot upgrade itself)
(193) In some implementations, the cloud platform exposes a web service endpoint that enables at least the following functions: tablets to post the events http://well.bevi.co/v1/tablets/<tablet-id> The server to populate the web response to the tablets with commands that the tablet can interpret and act upon (e.g. to download a new version of the firmware) To avoid the need for the tablets to open up ports for communication. Traffic is always initiated one way: from the tablet to the cloud platform, never the other way around. It's always the tablets that pushes and pulls data and instructions to and from the cloud platform. The posted events to be saved persistently in the database.
(194) For purposes of managing the data used by the system. the database is organized as a columnar time series database based on influxdb (https://influxdata.com/).
(195) The database has a predefined semi-structured schema and contains a set of time series of data. Each series has a unique name and a list of associated events. Every event has a timestamp and a sequence number. The sequence number allows a process that uses the database to differentiate events that have the same timestamp. Additionally each event can have an unlimited set of key value pairs associated with it.
(196) In some implementations, the schema of the event series of the database have at least the following fields: time: long timestamp in nanoseconds of when the event happened sequence_number: long, this is, together with time, the primary key of the series unit: a string ID to identify a specific beverage dispenser
(197) Specific event series that originate on each of the dispensers:
(198) static os_version: string of android codename, release, sdk_int board: string of android underling board bootloader: string of android bootloader version brand: string of brand of android device cpu_ab1: string of android device cpu instruction set cpu_ab2: string of android device second instruction set device: string of android industrial design display: string of android device meant to be shown to user build_fingerprint: string to uniquely identify the android build radio_version: string of the radio firmware number hardware: string name of hardware from the/proc host: string of android host build id: string of changelist number manufacturer: string of manufacture of build tablet_model: string of end user name of product product: string of overall product serial: string of hardware serial number build_tags: string of android tags describing build build_time: long of android build time build_type: string type of android build app_version: string version of dispense app app_last_install_time: String date of last time the app installed battery_technology: String of type of battery installed in tablet
(199) dispense action: String the reason for the dispense to stop dur: long the length of dispense in milliseconds flavor: int the button in dispense app being pressed flavor_name: String the flavor type being pressed intensity: String the type of flavor amount LOW, MEDIUM, HIGH motion_dur: String amount of time there is motion on touch motion_maxpressure: String the max pressure from all moment on touch screen motion_minpressure: String the min pressure from all moment on touch screen motion_pointers: String max amount of points from moment on touch screen motion_x: Double start x coordinate of the touch dispense motion_xdelta: Double amount of x moment from touch motion_y: Double start y coordinate of the touch dispense motion_ydelta: Double amount of ymoment from touch program_type: String type of dispense from touch. “DISPENSE_STILL, DISPENSE_CARBONATED, FLUSH, PRIME, BOOST” carbonated: boolean if the dispense was sparking strength: String amount 0-10 of how much concentrate was being run through pump
(200) ghost—Used for tracking which event tripped ghostbuster dur: long the length of dispense in milliseconds flavor: int the button in dispense app being pressed flavor_name: String the flavor type being pressed intensity: String the type of flavor amount LOW, MEDIUM, HIGH motion_dur: String amount of time there is motion on touch motion_maxpressure: String the max pressure from all moment on touch screen motion_minpressure: String the min pressure from all moment on touch screen motion_pointers: String max amount of points from moment on touch screen motion_x: Double start x coordinate of the touch dispense motion_xdelta: Double amount of x moment from touch motion_y: Double start y coordinate of the touch dispense motion_ydelta: Double amount of ymoment from touch program_type: String type of dispense from touch. “DISPENSE_STILL, DISPENSE_CARBONATED, FLUSH, PRIME, BOOST” carbonated: boolean if the dispense was sparking strength: String amount 0-10 of how much concentrate was being run through pump info flavor: String flavor_name: String message: String the type of state being change like carbonated or intensity prev_state: String previous state of type being change state: String new state of type being changed to.
(201) load_sensor—computed from load sensor arduino readings value_lb: Double conversion based on load sensor coeff associated with dispenser (at time of conversion) value_mv: String actual reading of load sensor
(202) error—error handling log content: String diff: String ghostbuster last time difference triggered
(203) detail: detail name of what caused error
(204) error_code: int error code from activity error exc_message: String exception message lastHandleMessageTs String last_event: String last event before ghostbuster trigger message: String type of error being logged msSinceLastSuccess: String previous_quit: String reason: String used by ghostbuster for reason of trigger stack_trace: String Exception stack trace success: String thread_name: String Exception thread name
(205) touch—from tablet: every touch recorded by android area: String where the touch occurred dur: String length of touch in milliseconds motion_dur: String amount of time there is motion on touch. motion_maxpressure: String the max pressure from all moment on touch screen motion_minpressure: String the min pressure from all moment on touch screen motion_pointers: String max amount of points from moment on touch screen motion_x: Double start x coordinate of the touch dispense motion_xdelta: Double amount of x moment from touch motion_y: Double start y coordinate of the touch dispense motion_ydelta: Double amount of ymoment from touch In certain embodiments, the system may provide the ability for an individual user to save/store the touchscreen settings, and make those the new default for the future. On an overall “personal profile” screen, users should be able to set their desired ranges (minimum/maximum) for each category (temperature, vitamin-level, etc.), their desired temperature range, their choice of sweeteners, etc. This would then affect what options were available to them on the touchscreen. For each beverage “trait,” certain beverage options might disappear if they fall outside a pre-determined range of what will taste good (determined by either a system's default settings, or the individual user). For example, certain tea options might disappear if the water falls below a certain temperature. For another example, certain beverage options might disappear if the vitamin content gets too high, since vitamins can negatively affect the taste of certain drinks.