This invention relates generally to the field of consumable liquid dispensers. More particularly, the invention is directed to multi-user consumable liquid dispensers such as liquid container (e.g. bottle) filling stations and water dispenser stations (also known as “bubblers”) typically found in public places such as airports, parks, and public buildings.
There have been substantial improvements in public consumable liquid dispensers in recent years. No longer are public water dispensers limited to bubblers delivering water at a relatively variable temperature (based upon source water temperature and rate of use). Today, many now include bottle filling taps. The enhanced water bottle filling functionality leads to greater use and higher water volume delivered by the systems. Moreover, providers of this highly desirable service to patrons have embraced the opportunity to provide high quality filtered/cooled water. Providing such systems introduces a variety of control, maintenance and repair issues addressed by a variety of features described herein in the context of a comprehensive networked system comprising communicatively coupled liquid dispensing stations incorporating/exhibiting a variety of enhanced capabilities exploiting local programmed processing and wireless data network interface communications functionality.
A liquid dispenser station is described herein. The liquid dispenser station includes a filler including a filler outlet for delivering a liquid. The liquid dispenser station furthermore includes a sensor assembly configured to provide an electronic signal indicative of object presence proximate the filler outlet. The liquid dispenser station furthermore includes a controller configured with a processor and a computer readable medium including computer executable instructions for carrying out a set of liquid dispenser station management operations.
Additionally, a networked system is described for supporting coordinated management of liquid dispenser infrastructure. The networked system includes a networked administrative server including database and application components. Additionally, the networked system includes a plurality of liquid dispenser stations, wherein each one of the dispenser stations comprises: a filler including a filler outlet for delivering a liquid; a sensor assembly configured to provide an electronic signal indicative of object presence proximate the filler outlet; a network communications interface; and a controller configured with a processor and a computer readable medium including computer executable instructions for carrying out a set of liquid dispenser station management operations. The plurality of liquid dispenser stations are configured to communicate with the networked administrative server to provide operational information accumulated by the controller operating in a local supervisory role within the liquid dispenser station. Additionally, the networked administrative server is configured to act upon received operational information received from the liquid dispenser stations by executing administrative tasks including: storing the received operational information, and issuing electronic messages relating to management of the liquid dispenser stations.
Having generally described illustrative implementation of a system and method of using the system, embodiments of the present invention will now be described with reference to the accompanying figures, wherein:
The figures and associated written description provide illustrative examples of systems and methods for dispensing consumable liquids, such as liquid container (e.g. bottle) filling stations now found in a variety of public venues including airports, sports arenas/stadiums, office buildings, museums, train stations, etc. Before describing the drawings, a summary is provided of multiple enhancements and advanced functionalities provided by such systems.
With a fast response refrigeration system in a water dispensing device, traditionally the refrigeration system has used a simple temperature sensing on/off control based on fixed set points. The settings must be approximated based on assumed conditions to account for sensing lag, ambient conditions, and continued cooling after compressor shut off. Traditionally this has been accomplished by a mechanical thermostatic device. In accordance with a control using a predictive algorithm, taking into consideration the historical system response, a microprocessor and electronic thermistor sensor implement a control operation to trigger on/off events of the refrigeration system. In particular, the microprocessor is configured with computer-executable instructions that enable the microprocessor to utilize predictive temperature response, including a specified system time constant and response coefficient.
Enhancements to a liquid dispenser station include incorporating a wireless data network interface that enables the liquid dispenser station to communicate data, such as usage profiles, operating conditions, etc., to a central database and receive remotely issued messages, instructions, and configuration definitions from a remote administrator. Communication may take place via cellular technology (M2M), radio technology (such as proprietary ISM), or wired connection (such as Ethernet/ISP). The central database then uses collected data from the global community of liquid container (e.g. bottle) filling stations to determine both local and global optimizations for refrigeration cycles, water dispensing, and communication. This may increase operational efficiency and reduce energy consumption.
The determined information could be used to apply global settings to the entire installation base, or customized settings for the individual or grouped dispensing devices in a particular location.
Connectivity allows remote setting of parameters, such as water temperature, proximity sensor sensitivity, etc., as well as remote firmware updates. Moreover, the remote connectivity provides a way for remote shutdown of a malfunctioning unit by a remotely located administrator, which could be a programmed supervisory processor/controller or a human operator.
Collecting actual usage data could be used for more accurate prediction of when maintenance could occur, such as cleaning and wear-part replacement. This would be more accurate than simply time-based since it would be tied to actual usage. Accumulated data could also help identify warranty issues, or detect irregular/inappropriate usage or maintenance history.
Enhancements to a liquid dispenser station, operating under the control of a local programmed processor/controller, include utilizing sensors within the liquid dispenser station to monitor various system parameters such as evaporator temperatures, water temperatures, condenser temperatures, compressor temperatures, etc. This allows monitoring of system performance and adjustment via programmed logic on a local microprocessor controller. Systems may be enabled or disabled for brief or extended periods of time to allow normalization or repair. The sensors may also be used for inputs into logical and predictive algorithms to optimize operational time periods, refrigeration or heating cycles, etc. The refrigeration or heating cycles may be modified with parameters to limit minimum run times, minimum off times to prevent short-cycling, adaptive logic parameters, etc. to increase performance, increase component life, reduce overload or stall conditions, etc.
Enhancements to a liquid dispenser station, operating under the control of a local programmed processor/controller, include incorporating closed loop controls into the liquid dispenser station to allow feedback-adjusted system activation of dispensing and temperature control. Examples include fan activation based on condenser temperature to minimize unnecessary energizing of the fan and reduce excessive energy consumption, refrigeration system control based on electronically sensed water temperature, liquid dispensing based on proximity sensing of a bottle or other target, etc. The target sensing closed loop control is unique in that it incorporates movement (based upon a change to a sensor signal, such as an infrared sensor intensity reading) to determine the timing of commencing flow, and constantly monitors the sensor signal to determine its “zero-setting” (i.e. when a target is not within a general detection area). The updating of the “zero-setting” reduces, and potentially eliminates, sensitivity adjustments, thereby making proximity detection more reliable. Additionally, a closed loop control for a condenser fan continuously monitors temperature during non-usage periods to determine ambient temperature, and then using the ambient temperature to reset the on/off threshold temperatures for the condenser fan.
Enhancements to a liquid dispenser station, operating under the control of a local programmed processor/controller, include utilizing historical data and trends to facilitate proactive, operational mode selection, maintenance and repair activities. For example, usage patterns are tracked by a 24 hour clock/7 day calendar to track dispensed volume and then utilize the information to operate the various energy consumption components (e.g., compressor) to operate in an energy saving-mode that reflects periods of time when lower volumes of liquid are dispensed. For example, the system maintains a record of trending condenser maximum temperatures and processes the recorded trending data to identify instances of accumulated debris (e.g. dust), thereby proactively notifying maintenance personnel of a need to clean a condenser prior to a system malfunction or excessive system stress. Such automated detection and notification of maintenance requirements, involving critical system components, increases overall system reliability/efficiency and reduces overall energy consumption by the liquid container filling station. Another exemplary use of recording trending data is tracking of minimum evaporator temperatures, which enables proactive maintenance of the refrigeration system, and thereby increases overall system reliability/efficiency and reduces overall energy consumption by the liquid container filling station. Yet another example is tracking of maximum compressor temperatures, which enables preventative maintenance prior to catastrophic compressor failure.
The enhancements to a liquid dispenser station, operating under the control of a local programmed processor/controller, further include supporting a derated mode of operation to enable the liquid dispenser station to operate at a lower level of operation until the station can be serviced/repaired and prevent damage to other potentially affected components.
Yet other enhancements to a liquid dispenser station, operating under the control of a local programmed processor/controller, relate to using an “adaptive” operation schedule, based upon tracked usage patterns of the bottle filling units, to autonomously and adaptively specify periods of on/off time (to ensure adequate supply while reducing overall energy consumption). Moreover, “adaptive” temperature set points are established based upon historical usage rates (volume per period of time) for particular bottle filling units to enhance system efficiency while maintaining satisfactory supply of cooled liquid.
Enhancements to a liquid dispenser station, operating under the control of a local programmed processor/controller and including network communication capabilities, include configuring the liquid dispenser station to provide both local and remote notification of special operational events. The notifications may be either informational, such as a warning/alert that certain operating limit parameters are being exceeded, or more urgent alarms that indicate a critical event has occurred. The warning/alert notifications may be accompanied by operational adjustments initiated by the local programmed processor/controller of the dispenser station, such as temporarily disabling the refrigeration system. More extreme actions can be initiated by the local processor/controller, such as shutting down operation of the dispenser station until service is performed on the malfunctioning station and the local alarm on the station is reset. The notifications may include local display on the dispenser station, either by a text message on an alphanumeric LCD or similar display, or a graphical or text display of the error code on a graphical display screen. Remote notifications may take the form of email, SMS, or other.
The described system further includes an RFID tag reader that facilitates using RFID tags on a water filters to identify legitimate filters, track their consumption, and prevent “resetting” the filter status—thereby preventing a user from improperly over-using an expired filter by falsely indicating, to the system, that an expired filter is new (by for example, manually resetting an internal counter or dispensed volume monitor). To that end, the bottle filling system and method described herein track water and filter usage, and with an optional internet connection, report that data back to a central database via an intermediately connected base station node. A device on the filter itself stores usage data, so even without internet access, and even if removed and re-installed, the filter can be reliably and consistently marked (and detected) as expired. The use of RFID tagged filters also leveraged to enable proactive tracking and replacement of filters, eliminating time lag between expiry and replacement of specific filters, and facilitating automatic replenishment.
Turning to
Initially, a set of system user types are identified and defined. The illustrative example contemplates four types of users of the functionality of services provided by a networked cloud server. Each user type (role) is described below.
Administrators: Administrators are a small group of employees with password-protected access to the web interface of the cloud server. Administrators can manage user accounts, maintain media files, and run reports that provide details about system health and usage. Administrators also manage the uploading and distribution of firmware updates.
Customers: Customers are representatives of building owners who are responsible for purchasing filters, monitoring and maintaining Liquid dispenser stations (LDSs,) and uploading media files for display on their own LDSs. Customer access to the cloud server is essentially a subset of the abilities of Administrators, and limited to information about their own equipment and account.
Commissioner: The Commissioner is a representative of a customer who is responsible for installing and configuring the network aspects of base stations and liquid dispenser stations. Commissioners access devices directly, via a direct, wired connection to a Laptop PC as well as access certain device set up and system diagnostic information via databases maintained by a cloud server.
Consumer: Consumers are anyone operating the dispenser stations to obtain a dispensed liquid (e.g., filling bottles/cups/containers or drinking a liquid dispensed at a consumable liquid dispensing device). It is contemplated that the system tracks the Consumers' usage of the dispenser stations through the use of RFID tags in a card, key fob or water bottle.
Administrators and customers interact with the servers/services provided by the system using web browsers connected to a cloud server via the Internet. A commissioner configures the base station and fluid dispensers (e.g., liquid dispenser stations) using, for example, a laptop computer which is temporarily connected to each fluid dispensing device, base station or accessing the cloud server databases via the Internet. The base station handles data traffic between the cloud server and the fluid dispensers. Base Stations upload usage and event data, and download modified parameter settings, media files and firmware updates.
The Internet is a world-wide network that is inherently hostile to security and privacy. All data that the system components transmit over the Internet is therefore encrypted. Administrators and Customers (via a customer web portal 108) connect to the cloud server 104 over the Internet using secure web browser connections. The base station 102 also makes secure connections to the cloud server 104 over the Internet. Such communications may occur, by way of example, via cellular modem via a mobile wireless data network 108 but also potentially via a land-based network 110, using a customer's local network and Internet connection. Since mobile wireless data communications (e.g., cellular data network service) transmissions can be relatively expensive, communications using mobile wireless data network 108 communications are minimized/avoided when possible.
The local radio network connecting the liquid dispenser stations 106 and the base station 102 uses the Industrial, Scientific & Medical (ISM) frequencies. Such local data transfer rates are relatively inexpensive, incurring only the cost of electricity. Therefore, the system architecture emphasizes maximizing the range of the local radio network communication links between the dispenser stations 106 and the base station 106, even when a reduced data transfer rate is required to provide sufficient range. The slow transfers of large media files are mitigated, as much as possible, by simultaneously broadcasting to multiple destinations.
In the third network connection type, a building commissioner connects a personal computer (e.g. a notebook computer), via a local area network (e.g. Ethernet®) connection, to the base station 102 to configure and to check operating status of the base station 102.
In the fourth network connection type, the building commissioner directly connects a Laptop PC the liquid dispenser stations 106(1-n) via a physical wire link (e.g. a USB cord), to individually configure, perform maintenance (e.g. review previously recorded trend data streams) and to check operating status of the individual ones of the liquid dispenser stations 106(1-n) or to configure or check operating status of the base station 102.
The illustrative networked system comprises a number of distinct networked device types having particular roles in the overall operation of the system. It is noted that the particular configuration is exemplary as the functionality of the various nodes can be divided and/or consolidated in accordance with preferences and needs of a particular installation. The system device (system node) types are described below.
The base station 102 bridges the Internet and the liquid dispenser stations 106(1-n), also referred to herein as liquid dispenser stations or LDSs. The base station 102 connects to the Internet via, for example, a wireless (e.g., cellular modem) or hard wire (e.g. Ethernet) connection. The liquid dispenser stations 106(1-n) communicate with the base station 102 using, for example, a local radio network on the Industrial, Scientific and Medical (ISM) bands. The base station 102 is, by way of example, also a proxy server and file server for the liquid dispenser stations 106(1-n). The base station 102 aggregates and relays usage and event information from the liquid dispenser stations 106(1-n) to the cloud server 104, and downloads media files and other types of files, (such as software upgrades,) from the cloud server 104, then distributes the files to the liquid dispenser stations 106(1-n). The base station 102 can also receive text messages from the cloud server 104, as an indication that the base station 102 should immediately connect to the cloud server 104, to report current operating/alarm conditions and/or receive commands/instructions to take remedial/proactive actions to modify the operation of one or more of the liquid dispenser stations 106(1-n) to modify one or more operational parameters.
The base station 102 includes the following external interfaces: Ethernet, Local Radio Network, Cellular Modem, Status LEDs, JTAG and Debug, USB, and Power Entry.
The following summarizes exemplary functionality carried out by programmed functional components (identified/described below) of the base station 102. In general, the base station 102 functionality includes:
The aforementioned functionality of the base station 102 is further described with reference to programmed components of the base station 102 described herein below.
The base station 102 includes a base station manager component. The base station manager is the master thread in the base station. The base station manager interacts with most or all other programmed components executing on the base station 102 and coordinates timing and data passing through the system.
The base station manager is configured to carry out functionality including:
The base station 102 includes a cloud client manager module component that periodically connects to the Cloud Server to synchronize data and media files on behalf of the liquid dispenser stations. The Base Station also connects in response to events reported by a liquid dispenser station, and when triggered by the receipt of an SMS message sent from the Cloud Server. Regardless of the trigger for the connection, the Cloud Client Manager follows the same data synchronization steps outlined below.
Data Synchronization with “sync” Web Service. Data uploaded to the cloud server 104 via the “sync” data synchronization service includes the following operations:
With each call to the “sync” web service, the Cloud Client Manager uploads all collected dispenser station data, and following a successful synchronization the cloud client manager can erase the local copy of the uploaded data (or create a new synchronization file/record) to start recording anew for the next synchronization.
File Downloads from the “file” Web Service. For each file queued for download, the cloud client manager calls the “file” web service of the cloud server 104, passes a valid username and password, and requests a file by passing the 4-byte file ID. For valid download requests, the cloud server 104 responds by sending a binary file to the base station 102 as an HTTP response. For invalid requests, the cloud server sends an appropriate HTTP status code, such as “404” for a “file not found” error notification. File downloads from the cloud server 102 web service includes media files for a Graphic Display Board (GDB) on the dispenser stations 106, and firmware images for both the base station 102 and the GDBs.
Liquid Dispenser filling station Authorization via “fill_stations” web service. The cloud client manager module of the base station 102 only allows authorized (registered) ones of the liquid dispenser stations 106 (also referred to herein as LDSs) to connect to the base station 102 for communications over the local radio network. When a new LDS is discovered on the local radio network, the cloud client manager can call the “fill_stations” web service, passing a valid username and password, and the cloud server 104 will return a Javascript Object Notation (JSON) encoded list of valid LDS identifications. Any LDS identified on that list should be allowed to connect over the local radio network to the base station 102.
Data Synchronization Scheduling. The base station 102 synchronizes with the cloud server 104, for example, during a predetermined interval of the day (e.g. 2 am to 6 am local time) to take advantage of, for example, lower carrier rates and reduce network congestion. A base station 102, in an exemplary embodiment, performs two synchronizing operations: calling the “sync” web service to send the records/states and retrieve any new media schedules or image upgrade, and downloading any new files which are not locally stored on the base station.
To avoid conflicts arising from simultaneous requests by multiple base stations to the cloud server 104 for synchronization, the base station 102 calls to the “sync” web service of the cloud server 104 at a random time within the predetermined interval of the day. The random time is calculated by the base station 102. Once data synchronization is complete, the cloud client manager of the base station 102 starts a timer, and will typically not connect again until 24 hours after that time. Since the timer starts at the end of a synchronization operation, each connection is a little more than 24 hours after a start of a previous synchronization. If the 24 hour period extends outside the configured sync sub-interval, a new sync time is randomly selected. The cloud server 104 is configured to handle potentially many thousands of base stations (e.g. base station 102), and ideally, the connections will be spread relatively evenly over a preferred synchronization sub-interval (e.g. 2-6 AM local time for the base station).
There are two exceptions to the above-described synchronization timing scheme: (1) when one of the dispenser stations 106 reports an event, and (2) when a Simple Message Service (SMS) “text” is received from the cloud server 104 over the mobile wireless data network 108. Immediately following either of these two triggering event, the cloud client manager of the base station 102 begins data synchronization with the cloud server 104. Like any other data synchronization, upon completion, the cloud client manager reschedules to within the predetermined synchronization service time interval.
Event Hold-off Timer. Whenever the cloud client manager of the base station 102 initiates data synchronization because of an event reported by one of the dispenser stations 106, the manager starts a five minute Event Hold-Off Timer. No data synchronizations triggered by further events shall begin before the hold-off timer expires. A trigger by a Simple Message Service (SMS) “text” does not fall under this condition. Regardless of how recent the last data synchronization, an SMS triggers an immediate synchronization. This aspect of the overall synchronization algorithm carried out by the base station 102 serves two purposes: it prevents dispenser stations from “spamming” the cloud server 104. Second, the base station 102 remains as responsive as possible to requests from the server.
The base station 102 includes a local radio manager component that is responsible for maintaining the radio connections to the multiple LDS units. Among other things, the local radio manager is configured to ensure that only authorized LDSs are permitted to connect with the base station 102. Since only broadcast messages are used in the local radio network through which the base station and liquid dispenser stations 106 communicate, authorization occurs using a combination of network IDs, security and LDS serial number authorization lists. The local radio manager relays files to the LDS units (Broadcast to all to attempt to share bandwidth) and the LDS units have the option to store these broadcast files—or ignore them. The LDSs store the files if the LDSs know that they need them, such as by looking for schedule ID chunks as indicated in an LDS status message or for media file chunks as indicated in the schedule file. The local radio manager accepts a variety of LDS status and statistics messages that are ACK'd. The ACK guarantees that the LDS status and statistics data has been received and can be deleted to make room for more data on the LDS. An optional optimization could be to have media files pushed spontaneously by the base station 102 to the dispenser stations 106. Such optimization would require the LDSs to already have a schedule that contains identifications of the new files. Otherwise the LDSs would not recognize, and thus discard, the file chunks.
The base station 102 includes a file server manager component that responds to LDS file and file chunk requests and broadcasts the requested file chunks over the local radio network to the BFSs. If the base station 102 does not have the file locally, the file server manager adds an identification of the file to a list of files to request the next time that the base station connects to the cloud server 104. When multiple LDSs finish their file and file chunk requests, the base station 102 combines all the requests into a single file chunk request list, taking into account files that the base station 102 already possesses. The file server manager initiates a broadcast by the base station 102 of all the requested file chunks to the LDSs. The LDSs save the broadcast file chunks that are needed by the individual LDSs and discard the chunks that are not needed. The broadcast file chunks are not ACK'd by the individual LDSs. Instead, the individual LDSs simply reevaluate missing file chunks (at the end of the broadcasting by the base station 102) as determined by its media schedule and formulates a new file chunk request. The follow-up request by the individual LDSs is gated to a minimum time so as to not flood the base station 102 with repeated file requests by the LDSs. The LDS also waits for the base station 102 to stop sending the current file chunk list before requesting more files.
The above-described exemplary file chunk request/response arrangement permits an LDS to request an entire file or up to 41*8 file chunks. File chunks are individually selected by a file request message containing a file number with a chunk offset. This is followed by up to 41*8 bits of offsets from this chunk (offset 0 to offset 327). Each bit will contain a 1 if that particular chunk offset is needed or a 0 if it is not needed. The LDSs send a file request message to ask for and receive each file and file chunk that it needs. It is up to the individual LDS controllers to determine whether to send multiple file request messages in a communications window. Multiple LDSs may ask for a same file or file chunk. To improve the efficiency of file transfer, the LDSs could randomization file chunk requests at a given time. This decision could also be based on the maximum number of chunk offsets out of up to 328 that an LDS may request in a request message.
A range extender (RE), which is not depicted in
The cloud server 104 is a combination of database and communication server functionalities carried out, in exemplary embodiments, by one or more networked servers having Internet connectivity. To the outside world, the set of physical servers appears to be a single server node (having a single Internet address/name). The cloud server 104 includes a variety of communications channels including ones support email and text messages.
With regard the “database” aspect of the cloud server 104, the following is an exemplary listing of tables maintained by the cloud server 104:
The cloud server 104 supports the following administrative pages (accessed via a supplier Web portal 114):
The cloud server 104 supports the following pages through which a customer user may access the data of the cloud server 104 database (via a customer web portal 112):
The functionality of the cloud server 104 is further described with reference to a number of provided exemplary “use cases” (UC-SRV #001-007) provided in the Tables that follow.
Having described a set of use cases describing functionality incorporated into the combined database and communications components of the cloud server 104, attention is directed to Web-based services supported by the cloud server 104 for facilitating carrying out the above-summarized functionality of the use cases. The Web (Internet) application of the cloud server 104 provides a number of web services for the liquid dispenser stations (LDSs)-provided via the base station 102. By way of example, the web services are provided in the form of machine-readable/executable web pages. The web services, by way of example, follow the Representational State Transfer (REST) software architecture style. The web services of the cloud server 104 are named from the point of view of the LDS, such that an “upload” represents a data transfer from the LDS to the web server.
A Data Synchronization service of the cloud server 104 is executed, for the base station 102, approximately (as previously explained, slightly greater than) every 24 hours. The base station 102 synchronizes data with the cloud server 104 on behalf of the registered liquid dispenser stations 106(1-n). The base station 102 accumulates data from the registered ones of the liquid dispenser stations 106(1-n) on the base station 102's local radio network. Thereafter, the base station 102 uploads station traffic (usage) data and status information to the cloud server 104 on behalf of the registered liquid dispenser stations 106(1-n). The base station 102 also downloads media schedules, commands and firmware update notices for the LDSs. The base station 102 also connects whenever one of the liquid dispenser stations 106(1-n) reports an event, or when requested by the cloud server 104.
While the various database synchronization transactions between the cloud server 104 and the base station 102 on behalf of the registered ones of the liquid dispenser stations 106(1-n) are logically separate, in an exemplary synchronization scheme the transactions are bundled in a single call by the base station 102 to the cloud server 104 to minimize bandwidth usage during synchronization in view of synchronization communication overhead. Thus, in one secure (e.g. HTTPS) transaction, the base station 102 sends a JavaScript Object Notation (JSON) data structure or similarly encoded structure such as XML, etc., containing (for each of the registered ones of the liquid dispenser stations 106(1-n)) traffic data and status. The base station 102 receives, as a reply from the cloud server 104, download synchronization data (for both the base station and any registered LDSs) in the form of an encoded data structure containing both a media schedule and any firmware update notices. The reply may also include a notification of a next scheduled synchronization time.
In addition to the periodic (e.g. daily) synchronizations, if one of the registered liquid dispenser stations 106(1-n) detects a serious event that should be reported immediately, such as over-heating, then the liquid dispenser station does so without waiting for the next scheduled communication with the base station 102. After receiving the urgent event notification from one of the registered dispenser stations 106(1-n), the base station 102, without waiting for expiration of a period update timer for performing non-urgent synchronizations, connects to the cloud server 104 and synchronizes data. In this way, the cloud server 104 is promptly notified, and can take similarly expedited remedial actions, with regard to any problem for which immediate response/attention is desired.
When the cloud server 104 receives an urgent event notification from the base station 104 on behalf of a particular one of the registered liquid dispenser stations 106(1-n), the cloud server 104 generates and then issues an event-specific email notification or other message type (such as an SMS message) to configured accounts designated for both the customer and supplier.
The synchronization information provided by the base station 102 to the cloud server 104 includes uploaded dispenser station traffic data. The uploaded dispenser traffic data includes the following information reported periodically (e.g. hourly) by individual ones of the dispenser stations 106(1-n) to the base station 102.
Thus, in an illustrative example, the dispenser stations report the following information to the cloud server 104, via the base stations every hour: Volume of liquid dispensed, fills (count), bubbler drinks (count), minimum water temperature, maximum water temperature, and average water temperature.
In the illustrative example, the dispenser stations 106(1-n) report the following information to the cloud server 104, via the base station 102 every day: maximum compressor temperature, maximum condenser temperature, and filter percentage used.
In an illustrative example, the dispenser stations 106(1-n) report the following current dispenser station operating status to the cloud server 104, via the base station 102: New (not yet commissioned), Normal (operating normally), Warning (operating, but recently detected a Warning), Error (operating, but recently detected an Error), Off (not dispensing water).
In an illustrative example, the dispenser stations report the following events without delay, to the cloud server 104 via the base stations: overheating and watchdog timer reset.
Attention is now directed to the content downloaded from the cloud server 104 to the individual dispenser stations 106(1-n) via the base station 102. By way of example, the base station downloads:
Additionally, the cloud server 104 supports a “Get liquid dispenser stations” service. The base station 102 calls this web service to download a list of all the liquid dispenser stations 106 owned by the base station's customer. The base station 102 uses the list to determine which ones of a set of detected communicating liquid dispenser stations are permitted to connect to the base station 102. There could be a situation where another customer has Liquid dispenser stations within wireless range, and must be prevented from connecting to someone else's Base Station.
The cloud server 104 supports web services/pages directed to customer support and accessed via the customer web portal 112. The web application of the cloud server 104 provides a number of web services for customers to monitor and manage their subscriptions, stations, media files, and media schedules. Customers view detailed traffic information about individually identified fillers, bubblers and water filters for each station. Customers create and preview the list of all media files queued up for rotation for their stations, and can also “veto” media files that are currently designated to be downloaded to the dispenser stations.
Particular, exemplary, customer pages accessed via the customer Web portal 112 include:
Customer Access Privileges Page: Customers may want to give access to more than one person in their organization. There may be, for example, someone responsible for media content, someone else responsible for maintenance and filter replacement, and someone else responsible for managing subscriptions and payments. Customers may choose to have just one person log in to the system, and that person will need to perform all functions. To that end, it will be possible for a single customer to have multiple logins, with one or more of the following information access types/levels: Monitoring, Control, Media, Financial, and All.
Subscription Manager Page: Customers use this page to manage their subscriptions. There are two different exemplary subscription levels. A remote monitor subscription incurs a charge which is billed monthly to the Customer's credit card. This pays for the base station 102 services and access to customer pages. A filter replacement subscription is an upgrade to the remote monitor subscription. The filter replacement subscription is billed monthly to the customer account, and includes the monitoring service. For the filter replacement subscription, when the system detects that a filter needs replacement, a new filter will be automatically shipped to the location of the liquid dispenser needing the new filter (via the system components and service provider ERP system 116), and the customer account is charged for the filter and associated shipping costs. Many other subscription configurations are possible and envisioned.
Base Station Manager Page: Customers use this page to access sub-pages to manage certain aspects of multiple base stations owned by the same customer. A base station list, provided via the Base Station Manager Page, is a searchable, sortable list of all base stations owned by the customer. From this list, users can drill-down to details for each owned base station. The list displays: name, location, serial #, status, etc. A base station detail page presents detailed information about a particular base station. A base station edit page enables customers use this form to edit the name and location of a particular one of the multiple owned base stations.
A Liquid Dispenser Station Manager Page: Customers use this page access sub-pages to manage certain aspects of their Liquid dispenser stations. This page includes a Liquid dispenser station list that is a searchable and sortable list of all dispenser stations owned by the customer. From this list, users can drill-down to details for each station. The list displays: station name, location, serial #, status, filter model, filter serial #, “replace before” date, etc. A liquid dispenser station detail page presents detailed information about the bottle filler, bubbler and water filter for a particular Liquid dispenser station. A liquid dispenser station Edit form enables customers to edit the name and location of their various Liquid dispenser stations.
A Filter Expiry Schedule: lists an expiry date of the filters attached to each liquid dispenser station owned by the customer. A customer can use this report to decide how many filters to order or to plan future budgetary expenditures. The count of replacement filters is summed by month, quarter and year, to align with different budgeting periods.
Liquid dispenser station Report: Given a date range, this report lists all usage information for the Liquid dispenser stations owned by the Customer. It also lists any events recorded. The report has an export button which downloads a file that can be opened by a spreadsheet application.
Liquid dispenser station Alerts Report: This report lists all recent alerts for the liquid dispenser stations owned by the Customer in a prioritized order. Those alerts identified as higher priority are shown first to enable fast response to critical events.
The cloud server 104 supports web services/pages directed to administrator support and accessed via the supplier web portal 114. The administrator pages are used to manage customer accounts, monitor liquid dispenser stations, manage media files, and check the health of system components. In contrast to customer-limited views, views of information via the supplier web portal 114 can encompass all stations in the entire system, just the stations for a particular customer, or any individual station.
Customer Base Station List: a page including a list of customers and base stations associated with each customer, including links to detailed views including information such as status, date of last synchronization, etc.
Customer Liquid dispenser station List: a page including a list of customers and liquid dispenser stations associated with each customer, including links to detailed views of each listed liquid dispenser station including information such as status, filter info, event logs, traffic data and media schedules.
Filter Demand Forecast: The cloud server maintains a database including filter information such that one can determine, from information maintained on the cloud server 104, the status of most filters currently in use. The cloud server 104 is also able provide information to the supplier enabling the supplier to observe traffic patterns for each liquid dispenser station. The cloud server 104, upon request via the supplier web portal 114, can combine this information to extrapolate a likely date that a particular filter will expire. The Filter Demand Forecast aggregates data from all the filters currently in use to predict demand for filters over the next month, quarter and year.
Subscription Fee Reports: Additionally, for any customer who signed up for either the remote monitor or filter replacement subscription, the credit account processor, whenever possible, will automatically bill the customer's account for the monthly subscription fee. Given a date range, this report lists the status of all customer subscriptions and payments. Administrators use this report to see which customer accounts are still in good standing, or have rejected/declined electronic payment requests.
Force Communication Command: Administrators use this function to trigger the data synchronization step between a Base Station, its Liquid dispenser stations, and the Cloud server 104. When an administrator uses this function, the Cloud server 104 sends a Simple Message Service (SMS) “text” message to the Base Station, indicating that the Base Station should call the data synchronization web service.
Base Station Communication Report: This report lists all Base Stations which have not reported to the Cloud server 104 for a given period of time. An administrator can use this report to diagnose problems with Customer network connectivity and equipment.
Exporting Reports: The various reports available to administrators feature a button that can be used to download a file containing the information in the report. The file can be opened in a desktop application like Excel, Crystal Reports, or many other software tools.
The cloud server 104 supports web services/pages directed to staff support and accessed via the supplier web portal 114. The staff support pages enable supplier employees to provide technical support to customers. Although staff members share the login page with administrators, once logged in, they only have access to the Support Call Manager pages on the supplier web portal 114.
Support Call Manager page: The support call manager page is a typical tech support ticketing system. Customers use a form to submit a support call request, and staff members are notified via email of the support call request. The email contains a link which leads to the detail view of the support call request. The support call manager page includes a support call list enumerating support call requests. Staff members can use this page as a to-do list. Staff members use a Support Call Add/Edit form to make notes on existing support call request records, and to mark them completed. A support call detail page lists all the notes and activity for a specific Support Call.
The cloud server 104 supports web services/pages directed to commissioning components of the networked system and accessed via the supplier web portal 114 and the customer web portal 112. The cloud server 104 must be able to associate particular base stations and corresponding networked liquid dispenser stations with particular customers. The cloud server 104 must also be able to associate particular liquid dispenser stations with corresponding base stations, so that it knows where to send messages (e.g. SMS messages). Both administrators and customers use the Commissioning pages to associate both base stations and liquid dispenser stations with a particular customer account. After a customer decides that they want the communication package, an administrator creates a Customer account and associates the base station(s) with that account. Following the administrator's creation of the base station record entry under the identified Customer, the Customer associates liquid dispenser stations with their own account and a particular base station under the account.
Base Station Commissioning page: Base stations need to be associated with a Customer account. Administrators enter a serial number of any new base stations for a particular Customer, and the cloud server 104 web application adds records to track the base stations assigned to the particular Customer. Once the records have been added, then certain fields will be editable by Customers, for example, the name and location fields. Base stations need a username and password to communicate with the cloud server 104. The base stations dynamically create their own user names and passwords based on authentication algorithms shared with the cloud server logic.
Liquid dispenser station Commissioning page: Liquid dispenser stations need to be associated with a Customer account. The Customer will enter the serial numbers of each Liquid dispenser station they want to see on the system.
The cloud server 104 furthermore includes a firmware update manager component that is used by Administrators to upload new firmware images and distribute them to customer equipment. Both the liquid dispenser stations 106(1-n) and the base station 102 are capable of receiving such remote firmware upgrades.
Firmware Uploader: Administrators use this page to upload new firmware images, indicating whether the image is for a Liquid dispenser station or a Base Station. Staff will also indicate a firmware version number and an effective date.
Firmware Publisher: Administrators use this form to indicate which Customers should receive firmware updates. The interface presents a searchable list of Customers, and for each Customer, indicates the current firmware version their equipment is running. Staff can assign new firmware images to Customers or globally distribute to all customers.
Firmware Downloader: Every time a Base Station synchronizes data with the Cloud server 104, it checks if new firmware images have been published. If a new image is available, the Base Station downloads it.
The cloud server 104 includes an email notifications component that is used to send email notifications at any time various events are detected. It also emails periodic reports. To guarantee operation with the widest variety of email clients, from desktop PCs to mobile phones, the email messages will be simple, text-only messages. Alternate embodiments would include a component to send other types of messages, such as SMS “text” messages, when desired by the customer or administrator
Event Alert Notification: When a Liquid dispenser station reports a serious event, the cloud server 104 immediately sends an email message to both the supplier and the customer. In case the event is reported multiple times, there will be a hold-off period that begins after sending the first email. The hold-off period must expire before sending a second email or any subsequent emails. This prevents the cloud server 104 from sending too many email messages to a customer. Alternate embodiments would include a component to send other types of messages, such as SMS “text” messages, when desired by the customer or supplier.
Filter Expiry Notification: When a Liquid dispenser station reports a filter that is soon to expire, the cloud server 104 sends an email message to the customer, supplying details about the station location, including traffic data, age of the filter, etc.
Monthly Filter Notifications for Customers: Once each month, the cloud server 104 emails a report to each customer. The report includes usage information for liquid dispenser stations, along with the status of each filter. It also predicts the date that each filter will expire. This service is directed to customers who have not subscribed to the filter replacement program.
Cloud Server Database Summary
In an exemplary embodiment, the cloud server 104 maintains a database comprising a set of tables. These tables, the record types and their interrelations, are described below.
User Tables: The User tables identify user logins for authentication and access control. The username is an email address, and the password is stored as a one-way hash. Users are either: stations, customers or staff. Customers can be assigned a category, such as: Elementary School, High School, University, Office, Health Club, etc. A switch on the Staff table grants administrative privileges. Multiple contacts can be entered for each user, in the form of addresses, phone numbers and email addresses. Contact types can be: personal, work, home, etc.
Base station tables: A base station is a type of User, and can log in to access web services.
Media Schedule Tables: A Media Schedule indicates that a media file should be published to a Liquid dispenser station and displayed for a period of time. Media Schedules can be unique to each Liquid dispenser station. The start and end dates are optional. Customers can create media schedules for only their own equipment, but Staff can create media schedules that apply to all Customers, or a subset of Customers.
Liquid dispenser station and Filter Tables: Liquid dispenser stations are owned by Customers. There are hourly and daily records covering the operating lifetime of Liquid dispenser stations and filters.
Application Log Tables: Critical actions by users of an application are captured in log entries in the Application Log Tables.
Regarding the cloud server 104, additional functionality provided in various enhancements to the previously described core functionality of an exemplary embodiment is summarized below.
Media Email Reminder: The cloud server 104 sends an email to a customer whenever the current set of media files was about to expire. Alternative embodiments would include a component to send other types of messages, such as SMS “text” messages, when desired by the customer or administrator.
Advanced Ad Tracking: For media files that are actually paid advertisements, the LDS counts the times an advertisement was playing while water was being dispensed.
Advertising Director: A new type of user on the system is created to allow uploading and scheduling of paid advertising for customer's dispenser stations 106. This user might not be an employee, and may have full administrator privileges or a subset required to manage necessary advertising needs.
Quick Media File Creator: A customer or administrator selects from a list of stock layouts and backgrounds and then uses a page editor to create a text message. The output of the page is a media file for display on the dispenser stations 106.
Tech Support Live Online Chat: A customer uses this live online chat feature to ask for help from tech support.
Track Consumer Usage: Consumers swipe an RFID tag or personalized bottle to enable the bottle filler. This usage could be tracked on the server.
Database Roll-up or Purge: Administrators may either roll-up or purge records from the database.
Central to the networked system depicted in
Turning to
Similarly, the controller 206 is configured with an output interface providing similarly switched power for controlling the condenser fan 203 based upon a temperature signal provided by the sensor 213.
The controller 206 of the LDS tracks usage of the bubble 202 and the filler 204, and reports usage and events via a wireless communication connection between the radio communication interface 214 and a corresponding radio interface of the base station 102. The LDS includes, by way of example, a filter status display 210 including green, yellow and red colored LEDs which indicate filter health. An alphanumeric message display 212 displays a “Green Ticker” indicating how many times the traditional disposal of a plastic bottle was averted.
With an optional graphic display (not shown), a composite graphical representation of the Green Ticker and visual indications of filter usage and other information are displayed. The graphical display plays full motion video content. The graphical display is an add-on to a base version of the LDS depicted in
A water filter 216 is provided with a radio frequency identification (RFID) sticker affixed to the side that serves/facilitates a number of functions and purposes. The RFID stickers indicate the filter model, manufacturing date, etc., and uniquely identify each filter with a serial number. The LDS includes an RFID reader 218 including a Near-Field Communication (NFC) sensor to read the data stored on the sticker. The RFID reader 218 includes a signal line for communication with the controller 206. The filter 216 can expire due to usage (volume) or passage of time. A water filter is generally deemed to expire after a calibrated/designated volume of water has passed through it. The LDS also uses the RFID reader 218 to increment a counter embedded in the RFID sticker affixed to the filter 216 for every gallon of water that passes through the filter 216. An expired filter, therefore, can be reliably and consistently identified, even if the filter is removed and installed in another LDS. In an exemplary embodiment, the filter status LED of the filter status display 210 is green, when an 80 percent of life threshold is reached, the controller 206 causes the yellow LED to illuminate, and the red LED is illuminated when the filter 216 has processed more than 100% of its capacity.
With regard to expiration due to the passage of time, as soon as a filter is opened, the activated carbon of the exemplary filter begins to immediately become consumed. For this reason, even filters such as this that see low usage rates are “expired” after one year from the date they were first installed in the LDS. The controller 206 causes the filter status display 210 to illuminate the yellow LED when a month of life remains, and causes illumination of the red LED after the entire lifetime is expired. The controller 206 is configured with a computer-readable medium including computer-executable instructions for carrying out the functionality summarized below.
Before listing the incorporated/programmed/configured functionality of the LDS under control of the programmed processor, it is importantly noted that the LDS includes an infrared (PIR) sensor assembly 220 to provide the controller 206 with a sensor signal intensity value for detecting, through variations in the IR sensor signal intensity via the “proximity sensor” signal interface of the controller 206, an object (e.g. bottle) positioned under an outlet of the filler 204 outlet. Based upon an infrared sensor assembly signal processing schemes described herein below with reference to
In such environment, the programmed controller 206 is configured to carry out the following enumerated functions:
The following summarizes in further detail an exemplary architecture of the controller 206 for the LSD depicted, by way of example, in
Turning to
The programmed modules/components configure the controller 206 to: provide a wireless bridge to the base station 102 for file (request and retrieval) and configuration; and control and monitor all LDS activities including: water filling, water selection, system error handling, energy management, filter management, LDS configuration, and ensure/monitor system reliability. By way of example, the controller 206 is configured to execute a system initialization thread that performs global resource initialization and then sets up other executable threads to start executing. There is also interrupt service routine handling as needed, such as for communications and external input signal monitoring. The primary functional tasks of the controller 206 are organized, by way of example, as state machines in threads. There is interaction between the threads such as providing data from the Radio Manager to the Display Board Manager. After booting up and initializing all system peripherals, drivers, state machines, data configurations and tables, the Control Board executes the application software modules to monitor and control the LDS activities such as: water management and flow control, filter detection and management, commissioning, radio communications with the base station 102, and controlling operation of the display interface (including graphical/video output).
Having generally described the functionality of the programmed components of the controller 206, attention is now directed to the particular programmed components with reference to
The controller 206, in operation, includes a timer manager component 302 that provides timers facilitating tracking multiple time spans utilized by the LDS. In an exemplary embodiment, the controller 206 utilizes two main timers. A first timer is a real time clock (RTC) which is primarily used in reporting and scheduling functions carried out by the controller 26. A second time is an internal timer. Both timers operate essentially the same. However, the second (internal) timer is used primarily to measure delta times and has a granularity of milliseconds. The first (RTC) timer provides date and time values stored as Coordinated Universal Time (UTC) format. All times exchanged between the base station 102 and the LDS are in UTC format. The times provided by the timers managed by the timer management component 302 are used, by way of example, for the following purposes:
RTC timer synchronization occurs through base station status messages that contain the date and time. Every time the controller 206 receives a base station status message with a non-zero time field where the provided time does not match with the internal RTC time, the controller 206 resets the first (RTC) timer. Note that RTC timer resetting will affect the second (low-level millisecond) timer for relative (delta calculation) timing. Also, the first (RTC) time is protected for short power outages.
The RTC timer is also settable through a local human interface, such as a button/menu interface, in potentially less granular resolution.
The controller 206, in operation, includes a commissioning thread 304. Commissioning of the LDS can occur from either one, or a combination of, commissioning/configuration data received via: a local interface such as a USB port connected to a commissioning personal computer, and a radio communication interface providing such information (from the cloud server 104) in messages issued by the base station 106 to the LDS (e.g. local dispenser station 106(1)); and a one switch selector (to set IR Range(s), Refrigeration, filter capacity and reset bottle count). Exemplary configuration data
Exemplary Configuration data includes:
Radio-specific Commissioning data: Network Join ID for Radio and Device ID
Status/Telemetry data includes: error conditions, filter status (detection, serial number, percent usage, hours used), Date/Time (UTC format for internal storage and M2M communications. For human-readable displays, it is converted to local time.), temperatures and temperature out of range (maintained to 1 decimal place, in Fahrenheit or Celsius), type of display (Graphic, Alphanumeric, none), water usage per hour (over n days), number of drinks from bubbler(s), water usage for life of LDS (although it can be preloaded with a value including 0), bottle count (Green Ticker is based on 20 oz. bottles and is derived from this value), and radio RSSI and Link Quality (for radio interface commissioning).
A water manager component 306, described herein below with reference to
In general, the water manager component 206 provides the following data to other components of the controller 206: water usage delta (since last report), water flow status (Bubbler and/or Bottle, on or off); temperatures and temperature errors, error conditions such as water shut off, Filler tamper detect, etc.; water usage statistics (Fills, Bubbler drinks, etc.); and leak detection notifications. The water manager component 206 uses the following data elements from other components: calibration settings such as flow/second for hot and cold, hot water available setting, water temperature set points, and water filter status. Other provided and received information types are contemplated as the above-mentioned examples are intended to be exemplary in nature.
Turning to
During 410, if liquid flow has been detected (by either the filler or bubbler) by a switch activation signal associated with a liquid flow control valve (for either the filler or bubbler), then control passes to 415 wherein appropriate usage parameters are updated (gallons consumed—for filter management, plastic bottles saved—for green ticker, etc.). Control then passes to 420. If no flow has occurred, then control passes directly from 410 to 420.
During 420, the water management component 306 determines whether the IR sensor assembly 220 has provided a signal value to the controller 206 indicative of an object within the field of view. Object (e.g. bottle) detection is performed with one or more IR detectors that provide a representative sensor signal to the proximity sensor signal input interface of the controller 206. In an illustrative example, the LDS provides a mechanically actuated switch that a user can press to activate the filler if the IR detector is unable to detect the bottle when placed under the filler or in situations where IR sensors may not be advisable (e.g. vandal resistant or outdoor models). After the object is detected and the filler is activated, an override timer (set to 20 seconds for example) will stop flow through the filler even if an object is still in the sensor's field of view. After the override timer is exceeded, the filler will not be re-activated until the filler switch is depressed or the IR sensor detects removal of the object from the sensor field of view and an object is placed in the target area.
If an object is detected during 420, then control passes to 425 wherein a filler state machine is invoked. The operation of the filler state machine is described herein below with reference to
During 430, the water management component 306 determines whether the switch, for activating/deactivating the valve for the bubbler, has changed state (either on or off switch position) to commence/stop liquid flow through the bubbler. If the bubble switch state has indeed changed, then control flows to 435 wherein a bubbler state machine is invoked. By way of example, bubbler switches are connected to general purpose inputs of the controller 206 that are configured as edge-triggered interrupts. This is due to the water flow commencing immediately in response to actuation of a bubbler switch (no wait period). Therefore, the time that water is flowing has to be accurately measured. The controller 206 immediately sets an interrupt flag corresponding to actuation of the bubbler switch and resets and starts a timer (read from the RTC timer managed by the timer manager 302) for determining a total flow of liquid during the bubbler actuation event. The water manager component 306 monitors the flag and time counts to monitor/determine the bubbler flow status and the total volume of water during the bubbler active state. The liquid flow information is recorded and used to update a total flow for use by the filter manager and the output display (if total gallons dispensed are displayed) to record water usage when a subsequent state change of the bubbler switch indicates that flow should end. The flow information is also provided for statistical use by configuration and telemetry components of the controller. After invoking the bubbler state machine, control passes to 440. If the bubbler switch state has not changed, then control passes directly from 430 to 440.
During 440, the water manager component 306 polls a set of timers associated with the various temperature sensors discussed above with reference to
Additionally, the temperature readings are used by the controller 206 to manage (reduce/minimize) energy consumption by the LDS. Under normal operating conditions, on refrigerated models, the cold liquid reservoir temperature (evaporator 203 temperature) is monitored to turn the compressor 201 on or off when further cooling is not needed. In addition to shutting down the compressor 201 when the liquid has reached a low temperature boundary for normal use, advanced control schemes can utilize usage patterns (i.e. absence of uses for extended periods of time) to turn off the cooling function when usage is not likely. This can be determined by usage statistics or via a schedule from the Base Station.
With continued reference to 440, if any of the prescribed wait periods for polling a temperature value have expired, then control passes to 445 where a temperature monitoring event state machine 445 is invoked to handle the new temperature event. In general, the event monitoring state machine, once invoked, compares a current temperature value to an appropriate threshold. If a threshold has been reached/passed, the state machine triggers additional alerts and events for further processing by the controller 206 to take remedial actions relating to the detected temperature event. Examples of responsive actions when a temperature event occurs (for any sensed temperature—including ones within an acceptable operating range) include: recording the sensed temperature, generating a notification for transmission to the cloud server 104 (for further notification processing), invoking a control loop routine (e.g. to stop the compressor when the reservoir contents are sufficiently cool, start a cooling fan, etc.), derating operation of the cooling system of the LDS, etc. After invoking the temperature event monitoring state machine, control passes from 445 back to 410 (after a configured wait). Alternatively, if none of the prescribed wait periods for polling a temperature value have expired, then control passes back to 410 (after a configured wait).
Returning to
By way of example, radio manager component 308 of the LDS (e.g. liquid dispenser station 106(1)) performs the following functions:
By way of example, the radio manager component 308 exhibits the following behaviors with regard to providing data from the LDS to the base station 102:
The wireless communication radio interface configuration is partially performed during factory configuration. Factory calibration includes setting a security key (which is hard-coded) and a local network Join ID (which is programmable). The Join ID is to remain constant for all networks. The controller 206 serial number, which is used for local network authentication, is calculated from a 128 bit Unique ID on the local processor. Transmit power levels are configurable during commissioning.
With continued reference to
Turning to
During 756 the filter manager component 310 determines whether an “add to total usage message” notification is pending (for processing by the filter manager component 310). If one or more “add to total usage message” notifications are present, then control passes to 758 wherein the additional usage specified in the one or more pending messages is added to an accumulated usage total for the current filter. Control then passes to 760. If no new usage message notifications are pending, then control passes from 756 to 760.
The remaining portion of the filter manager component 310 is dedicated to determining which one of a set of LEDs (red, yellow, green) should be illuminated on the filter status display 210 based upon the previously obtained usage capacity/lifetime limits and currently determined usage volume/time values. During 760, if the filter is either not installed or the filter usage limit (either total volume or total time of use) is exceeded, then control passes to 762 wherein the red LED is set for illumination on the filter status display 210 (the yellow and green will be reset if necessary). Appropriate filter status flags are set that are subsequently processed by handlers to generate and provide an alert within a status/alert message passed by the LDS to the cloud server 104 (via the base station 102). Control then passes to 752 (after an interruptible sleep/wait period). If the filter is present and usage limits are not exceeded, then control passes to 764.
During 764, if the filter usage (either volume or time duration) has reached an end of life warning level (e.g. 80 percent of volume capacity or lifetime), then control passes to 766 wherein the yellow LED is set for illumination on the filter status display 210 (the red and green will be reset if necessary). Appropriate filter status flags are set that are subsequently processed by handlers to generate and provide an alert within a status/alert message passed by the LDS to the cloud server 104 (via the base station 102). Control then passes to 752 (after an interruptible sleep/wait period). If the filter usage has not reached the end of life warning level, then control passes to 768. During 768 the green LED is set for illumination on the filer status display 210 (the red and yellow will be reset if necessary). Control then passes to 752 (after an interruptible sleep/wait period).
With continued reference to
Turning to
In an illustrative example, the liquid flow control logic (after initialization) operates in one of the set of operational states consisting of: Off, On, Waiting to Clear (the IR sensor field of view), and Error.
The Off state is characterized by an absence of liquid flow. The liquid flow control logic is waiting for an object to be placed in the detection field of the proximity (e.g., infrared “IR”) sensor assembly for a sufficient period of time before transitioning to the “On” state. It is noted that the “Off” to “On” state transition does not occur until the object (e.g. bottle) in front of the sensor assembly is sufficiently still (if moving, then moving only slightly) for a wait period.
The “On” state is characterized by the presence of liquid flowing. During the “On” state the liquid flow control logic is waiting for the occurrence of one of multiple events that will cause cessation of fluid flow and transition of the logic from the “On” to the “Waiting to Clear” state. Such transition occurs when one of the following occurs: a maximum flow time period expires, the sensor field is empty, or the object in the field is not sufficiently stationary (violating a substantial stillness requirement).
The “Waiting to Clear” state is characterized by an absence of fluid flow and continued monitoring of the IR sensor field while waiting for an object to leave the IR sensor field. The liquid flow control logic transitions from the “Waiting to Clear” to the “Off” state if the object leaves the sensor field within a prescribed time period. Otherwise, the logic transitions from the “Waiting to Clear” to the “Error” state (i.e., the image sensor field is being temporarily/permanently blocked).
The Error state is characterized by an IR sensor continuously sensing an object within the sensor assembly field of view. Depending on the duration of the sensed error state, the liquid flow control logic transitions (initially) into a “soft error” sub-state where a local message is displayed. If an error condition is registered for a substantially longer time period than the one that initially caused a soft error, then the liquid flow control logic transitions from the “soft error” sub-state to the “hard error” sub-state. During the “hard error” sub-state, remedial operations may be taken to provide a maintenance notice to a networked server to render a notification prompting remedial maintenance action with regard to the identified error source and/or the error is logged in a database locally for future diagnostic reference.
Turning to
A bmaxflow parameter 502, also referred to as “Max Flow Time,” specifies a configurable maximum time that a filling event continuously runs (i.e., the liquid is continuously on after sensing an object within the operation range of the infrared sensor). After a measured continuously on time exceeds the time duration corresponding to the Max Flow Time, the control logic for the liquid dispensing station registers a blocked sensor field error event and enters a “Waiting to Clear” state. Exemplary values for the bmaxflow parameter 502 value are from 5 to 30 seconds.
A botmovewin parameter 506 specifies a configurable distance measure (i.e. a “Bottle Move Window”) within which a sensed object may move in the field of view of the infrared sensor of the liquid dispensing station without causing an event signaling the control logic to transition to a liquid flow “Off” state, thereby causing the liquid dispensing station to terminate a flow of liquid. The botmovewin parameter 506 is thus only relevant to control logic executed in association with the liquid flow “On” state of the system. The value for the botmovewin parameter 506 is calculated dynamically, in particular while in the liquid flow “On” state, based upon a product of a last IR measurement and a current value specified for an iroffdeltafrac parameter 520 (described herein below). Thus, the botmovewin parameter 506 specifies a tolerance around a last IR sensor-based distance measurement for a current distance measurement. Thus, an object (e.g. a bottle) will still be considered stationary, for purposes of continuing fluid flow while the system is in the liquid flow “On” state, as long as a calculated distance change value is less than the botmovewin parameter 506 value.
A hyster parameter 508, also referred to as “Low Hysteresis,” specifies a configurable value specifying an amount of a hysteresis defining a “dead band” above an IR sensor signal intensity value for a irlthresh parameter 512 (described herein below). Properly tuning/specifying a value for the hyster parameter 508 avoids dithering around threshold values. In the illustrative example, the hyster parameter 508 is only used by liquid flow control logic associated with the liquid flow “Off” state and is used for specifying a signal value intensity triggering a transition from the liquid flow “Off” state to the “On” state, and only affects the trigger threshold for transition to the “On State”. In an exemplary embodiment, a minimum intensity for transitioning from the “Off” state to the “On” state is calculated by the liquid flow control logic by adding the hyster parameter 508 value to a minimum threshold intensity value determined by adding the irlthresh parameter 512 value to a currently specified average “zero” level IR sensor signal intensity maintained by a minIR parameter 532.
An irhthresh parameter 510, also referred to as “IR High Threshold”, specifies a configurable value for an IR sensor signal intensity measurement (i.e. one that is too high) that indicates an object (e.g. a bottle) may be too close to the sensor. The irhthresh parameter 510 is set to zero to disable the test in the liquid flow control logic for the object being too near the sensor assembly.
An irlthresh parameter 512, also referred to as “IR Low Threshold”, specifies a signal intensity value applied by the liquid flow control logic to a floating “zero” level intensity value to render an IR sensor signal intensity value corresponding to an “empty field of view” for the IR sensor (i.e. no bottle/object present). The irlthresh parameter 512 value is used in conjunction with hyster parameter 508 and the minIR parameter 532 to trigger a transition from the liquid flow “Off”' state to the liquid flow “On” state. The irlthresh parameter 512 is thus a useful parameter to adjust when the “On” logic is activated as an object is moved toward the IR sensor assembly to activate the liquid dispenser.
Similarly, the irlthresh parameter 512 may be used for calculations involving shutting off flow of liquid while the control logic is in the “On” state (i.e. liquid is flowing). When the dispenser is already on, the IR Low Threshold (added to the “zero” intensity level value) determines when the IR sensor field to be effectively empty, i.e. there is not a viable target in the field. The IR Low Threshold value may or may not be a determinant for when the dispenser shuts off. In one implementation, the liquid flow control logic transitions from an “On” to an “Off”' state based on a calculation of allowable change (delta) in IR sensor signal intensity that was detected when the logic transitioned from the “Off” to “On” state. In that case, an IR sensor signal intensity measurement may result in the control logic transitioning to the “Off” state while the measurement exceeds the intensity value determined by summing the Minimum Value and the IR Low Threshold.
In a case where both delta values and the aforementioned sum of the Minimum Value and IR Low Threshold are used to determine a transition to an “Off” state, it is conceivable that there could exist a combination of variables that would result in the IR Low Threshold determining the point at which the dispenser shuts off (the specified low delta, which is subtracted from the measured intensity when the logic transitioned to the “On” state, is very large).
Finally, regarding the irlthresh parameter 512, if the dispenser is in the “Waiting to Clear” state, meaning the dispenser is shut off but the sensor indicates the presence of an object in the field, the liquid flow control logic will not transition to the “Off” state until the measured IR sensor signal intensity value drops below either the sum of the Minimum Value (see irminavesamp 516 below) and the IR Low Threshold or the Minimum Value Wait (see minirclr 530 below) plus the IR Low Threshold.
An irled parameter 514 specifies a configurable value for controlling an intensity of the IR sensor's light emitting diode (LED). In an exemplary embodiment, distance is calculated as a function of sensed infrared light intensity (with highest intensity corresponding to closest proximity). Thus, modifying the intensity affects proximity calculations since increasing intensity will produce relatively higher sensed reflected light intensity values arising from a given target at a given distance. Thus, this value is typically modified only during calibration of the operation of the system.
An irminavesamp parameter 516 specifies a configurable value corresponding to a quantity of IR sensor signal samples that are acquired and then used to calculate an average IR measurement describing a value for a minIR parameter 532.
An irndmax parameter 518 specifies a configurable negative change maximum (with values specifying a range of maximum negative changes of 1000 to 20000. The control logic of the IR object detection system thus optionally limits the negative change in calculated proximity values. The maximum negative change value ensures against the IR sensor proximity calculator returning incorrect (too low values) after previously calculating a very high IR sensor signal intensity value. The value for irndmax 518 should be specified while considering that specifying too small a value may disable other logical tests relating to detecting excessive movement of an object while the system is in a waiting state for the object to become sufficiently still.
An iroffdeltafrac parameter 520 specifies a configurable fraction of the proximity measurement (intensity) value defining a “Off Delta Window” used by the liquid flow control logic to transition from the liquid flow “On” state to the “Off” state in response to movement of the detected object (assumed to be a vessel) away from the dispensing position.
An irval parameter 522 specifies a most recently measured/recorded IR sensor signal intensity value.
A lastirval parameter 524 specifies a previously recorded IR sensor signal intensity value read from the IR proximity sensor. The liquid flow control logic determines a difference between the lastirval parameter 524 value and the irval parameter 524 to calculate a speed and direction of movement of the object (bottle) within the field of view of the IR sensor.
A maxclrtime parameter 526 specifies a configurable time duration value used by the liquid flow control logic to determine whether an object has been detected within the field of view of the IR sensor for an excessive period of time. If the time duration is exceeded, the liquid flow control logic enters/registers an “Error” due to a blocked field.
A maxirclr parameter 528 (also referred to as Maximum Value Wait Empty) specifies a highest recorded IR sensor signal intensity while the liquid flow control logic is in a “Waiting to Clear” state—waiting for a currently sensed object to leave the IR sensor assembly field.
A minirclr parameter 530 (also referred to as Minimum Value Waiting to Clear) specifies a value corresponding to a minimum IR sensor signal intensity recorded while the system is in the “Waiting to Clear” state. The minirclr parameter 530 parameter value corresponds to a greatest displacement of the object within the IR sensor field of view. The minirclr parameter 530 value is used by the liquid flow control logic in conjunction with the irlthresh parameter 514 to determine whether an object has left the relevant field of view of the IR sensor, and the field of view is actually clear-causing the liquid flow control logic to transition from the “Waiting to Clear” to the “Off” state.
A minIR parameter 532 specifies a filtered minimum IR sensor signal intensity recorded in a relatively recent time period while the field of view is effectively empty. The minIR parameter 532 value is continuously calculated to establish a value approximating the minimum IR sensor signal (proximity) measurement recorded by the liquid flow control system in recent history. The minIR parameter 532 value is utilized, by the liquid flow control logic, as a “relative zero” level for determining if an object is within the object detection field of the IR sensor assembly.
A minstilltime parameter 534 (also referred to as Still Time Threshold) specifies a configurable time duration (e.g. 0.1 to 2.55 seconds) that the object must be relatively motionless (IR signal intensity is relatively stable) in the IR sensor's range for transitioning to the liquid flow control logic “On” state. The general idea is that an object (presumed to be a bottle) must be both in the IR sensor's field of view and not moving around (e.g. the user has determined the bottle is properly positioned under the dispenser's liquid outlet).
A minvaluewait parameter 536 stores a copy of the current value for the minIR parameter 532 at the time the liquid flow control logic transitions from the “On” to the “Waiting to Clear” state. The value of the minvaluewait parameter 536 value is updated only in response to the liquid flow control logic's transition from the “On” to the “Waiting to Clear” state.
An offdeltah parameter 538 specifies a configurable value used by the liquid flow control logic during the “On” state to provide an extended boundary to allowable movement towards the sensor (increasing the intensity of the IR sensor signal) before the liquid flow control logic transitions to the “Waiting to Clear” state. The value of the offdeltah parameter 538 establishes an upper boundary for a sensor signal intensity value that will be treated as a signal arising from a still object. Setting the value to zero disables this feature of the liquid flow control logic.
An offdeltal parameter 540 specifies a configurable value used by the liquid flow control logic during the “On” state to provide an extended boundary to allowable movement away from the sensor (decreasing the intensity of the IR sensor signal) before the liquid flow control logic transitions to the “Waiting to Clear” state. The value of the offdeltal parameter 540 establishes a lower boundary for a sensor signal intensity value that will be treated as a signal arising from a still object. Setting the value to zero disables this feature of the liquid flow control logic.
An ondelta parameter 542 specifies a configurable IR sensor signal intensity change value used during operation of the liquid flow control logic, while operating in the “Off” state, to determine whether a running “still” time duration value can be incremented.
A softerrlim parameter 544 specifies a configurable value specifying a maximum time the liquid flow control logic can be in a “Soft Error” state arising from a detected blocked field of view of the IR sensor before transitioning to a “Hard Error” state. In an illustrative example, Soft Error conditions are handled locally through remedial actions such as displaying a message on a display of the liquid dispensing station. Hard Error states result in communications being issued by the liquid dispensing station communicating an electronic message that is passed to, for example, a cloud server for committing to a database that, in turn, creates escalated notifications for taking further action. This may also, for example, cause the liquid dispensing station itself to store a record of the error event for future use in diagnostics.
A stilltime parameter 546 specifies a timer duration value corresponding to how long an identified target has been continuously motionless. The stilltime parameter 546 is used to measure the continuous still time in the “Off” state for the liquid flow control logic.
A flowtime parameter 547 specifies a timer duration value associated with the “On” state of the control logic. The duration specified by the flowtime parameter 547 corresponds to how long liquid has flowed continuously since the liquid flow control logic transitioned to the “On” state.
Similarly, a waittime parameter 548 specifies a timer duration value associated with the “Waiting to clear” state of the control logic. The duration specific by the waittime parameter 548 corresponds to how long the IR sensor has sensed an object in the field of view since the liquid flow control logic transitioned to the “Waiting to Clear” state.
Turning to
Turning to
Thereafter, during 632 the liquid flow control logic determines, based upon the currently sensed value of the IR sensor signal, whether the IR Sensor detection field is clear. In particular, at 632 the liquid flow control logic compares the new value of the IR sensor signal, which was read/received during 628, to a specified/calculated minimum IR sensor signal level considered to be representative of an object present within the field of view of the IR sensor for the liquid dispenser station. In an exemplary embodiment, the minimum (threshold) value for deciding that an object is in the field of view of the IR sensor is a summation of: (1) a current zero/clear field IR sensor value (stored in the minir 532), the low threshold value (stored in the irlthresh 512), and the turn-on hysteresis (stored in the hyster 508). By using the above-provided summation, insignificant increases in IR sensor signal intensity are “rejected” by the liquid flow control logic. If the new value of the IR sensor signal does not meet the minimum detection signal, then control passes to 634.
In a particular embodiment, rather than specify a fixed “zero” level (corresponding to a clear IR sensor field of view) the zero level is continuously updated to accommodate a potentially changing IR sensor signal value over the course of time (e.g. various times of day due to sunlight or other sources of infrared light). Thus, at 634, the liquid flow control logic re-calculates an updated value for the filtered zero level signal stored in the minIR parameter 532. In an exemplary embodiment, the filtered zero level signal is an average of the most recent “N” (irminavesamp 516) IR sensor signal values. In an alternative embodiment a filtering operation is performed by applying a weight to the current signal value and a second weight to the current filtered IR sensor signal value. Thereafter, control passes in the liquid flow control logic from 634 to the wait operation at 626.
On the other hand, if at 632 the liquid flow control logic determines that the sensor detection field is not clear (based upon the IR sensor signal value), then control passes from 632 to 640 (
Initially, during state 640, the control logic ensures that the IR signal sensor is sufficiently strong to register as an object being present within the field of view of the IR sensor assembly. By way of a particular example, the current IR sensor signal is sufficiently strong if it exceeds a sum of: (1) a current zero/clear field IR sensor value (stored in the irminavesamp 516), the low threshold value (stored in the irlthresh 512), and the turn-on hysteresis (stored in the hyster 508). If the signal is sufficiently strong, then control passes to 642 wherein the liquid flow control logic commences further tests to determine whether the object in the IR sensor field of view is sufficiently still. Since movement can either increase or decrease the IR sensor signal reading comparisons are made to upper and lower change boundaries of a range defined by the previous IR sensor value (lastirval 524) and the acceptable sensor reading change (ondelta 542).
Thus, in the illustrative example, at 642 a first test determines whether the current IR sensor signal value has dropped too much. By way of example, the liquid flow control logic determines whether the current IR sensor measurement (irval 522) is less than the last IR sensor measurement (lastirval 524) minus a specified delta value (ondelta 542). If the comparison shows that the IR measurement has not dropped more than the specified delta value, then control passes to 644.
During 644 a second test determines whether the current IR sensor signal value has increased too much. By way of example, the liquid flow control logic determines whether the current IR sensor measurement (irval 522) is greater than the last IR sensor measurement (lastirval 524) plus a specified delta value (ondelta 542). In the illustrative example, the same specified delta value is used to determine the upper and lower boundaries for acceptable change in the IR sensor signal value. However, two distinct values can be used for upper and lower boundaries—especially in the case where the increases tend to be more sensitive than decreases in signal sensor value when an object moves in the IR sensor's field of view. Continuing with 644, if the comparison shows that the IR measurement has not increased more than the specified delta value, then control passes to 646 where the accumulated still time (stilltime 546) is updated.
Thereafter, control passes to 648 wherein if the accumulated still time (stilltime 546) exceeds the prescribed still time for commencing fluid flow (minstilltime 534), then control passes to 650 wherein the liquid flow control logic transitions to the “On” state. Thereafter, control passes to 660. See
If, at 648, the liquid flow control logic determines the prescribed still time (minstilltime 534) has not yet been reached, then control passes to 626 where a wait period is executed before a next IR sensor value is acquired at 628. See
Returning to step 640, if the IR sensor signal is determined to be too weak, then control passes to 652 wherein the accumulated still time value (stilltime 546) is reset to zero and the preliminary sensing period essentially restarts when control returns to 626.
Similarly, if the IR sensor value changed too much, as determined by the comparison performed during either 642 or 644, then control passes to 652.
Turning to
During 664, the liquid flow control logic accesses/receives a current IR sensor measurement (stored in the irval 522). The previous IR sensor measure is re-assigned as the previous IR signal value (lastirval 524). Control then passes to 668.
During 668, the controller initially determines whether the object to be filled is still present. In the illustrative example, such determination is made by comparing the current IR value (irval 522) to a minimum value considered to indicate an object within the IR sensor assembly's field of view. By way of example, the minimum value is a summation of: (1) a current value of the average empty field IR signal value (irminavesamp 516), and (2) a low threshold value (irlthresh 510). If the current IR value exceeds the minimum value for object presence, then control passes to 670.
During 670, 672 and 674 the liquid flow control logic compares a previous IR signal value (lastirval 524) and to a current IR signal value (irval 522) to determine whether the object is sufficiently motionless to continue liquid flow. However, rather than using a fixed value, in accordance with a particular embodiment the control logic, during 670, 672 and 674 uses a fraction/percentage of a measured IR parameter (e.g., irval 522) value to establish an acceptable upper and lower range boundary for differences between consecutive IR sensor signal values. In an alternative embodiment the lower limit and upper limit of the range could be determined by separate fraction/percentages of the measured IR parameter to account for differences in IR response associated with approach vs. departure.
Thus, during 670 the dynamic signal variation range (“bottle move window” above/below a previous IR sensor signal value) for detecting excessive sensor signal value change (bottle movement) is calculated as a product of the current measured IR parameter value (irval 522) and a configured fraction value (iroffdeltafrac 520). Thereafter, during step 672, if the current IR measurement is above a signal floor value determined by subtracting the “bottle move window” value from the previous IR value (lastirval 524), then control passes to 674.
During 674, if the current IR measurement is below a signal ceiling value determined, for example, by adding the “bottle move window” value to the previous IR value (lastirval 524), then the bottle has remained sufficiently motionless to continue liquid flow, and control passes to 676 where the control logic performs a configured wait (e.g. 0.1 seconds) before returning to 662.
Returning to 668, if the current IR signal sensor measurement is too weak to meet the initial minimum threshold, then control passes to 680.
During 680, the control logic transitions to a “Waiting to Clear” state comprising operations described herein below with reference to
Returning to 672 and 674, if the control logic determines that the current IR value is either too small or too large, and thus falling outside the dynamic acceptable IR sensor signal change range defined by the previous IR sensor value and the “Bottle Move Window”, then control passes to 680.
Turning to
Returning to 690, if the IR measurement is not greater than the current maximum IR sensor reading, then control passes to 694.
During 696, the control logic performs a test to ensure that an empty field IR value (minimum IR value) is appropriately updated in response to a degradation to the sensor assembly (e.g. water drop splashed on a lens of the IR sensor assembly) operation. In particular, if the current IR sensor value (irval 522) is less than a threshold minimum established by subtracting a configured “delta” value (ondelta 542) from the above mentioned maximum IR sensor value (maxirclr 528), then control passes to 698 wherein the current IR measurement (irval 522) is assigned to the minimum while waiting to clear parameter (minvaluewait 536). This temporary assignment is intended to accommodate temporary changes in the IR sensor assembly's operating characteristics due to, for example, water on a lens. The time-averaged/filtered minimum IR value (minIR 532) is not changed while the control logic occupies the “Waiting to Clear” state. Control passes from 698 to 700.
If during 696, the IR Measure is greater than the calculated difference (maxirclr 528−ondelta 542), then control passes to 700.
During 700, a first of two comparisons are made to determine whether the IR sensor field is cleared. In particular, if the current IR measurement is less than a calculated sum of the minimum value while waiting to clear (minvaluewait 536) and a low threshold (irlthresh 512) value discussed herein above with reference to
During 702, the control logic clears all state variables (e.g. maxirclr 528, minvaluewait 536, waittime 548) associated with the “Wait to Clear” state and then transitions to the “Off” state and, in particular, 626 where a wait operation is executed while the control logic is in the “Off” state.
Additionally, if the initial test for a clear field fails during 700, control passes from 700 to 704 wherein a second IR sensor field clearing test is performed. However, in this case the minimum IR (minIR 532) value is used in place of the Minimum Value for Wait (minvaluewait 536) value. During 704, if the current IR measure is less than the calculated sum of the minimum IR (minIR 532) and the low threshold (irlthresh 512), then control passes to 702.
On the other hand, if the IR Measurement is too large to pass the test of 704, then control passes to 710. See
Turning to
During 712 the liquid flow control logic enters an “Error” state where commands are executed to cause a display of an error message for a user of the liquid dispenser station (e.g. “Clear Bottle Filler Area”), and control then passes to 720. See
On the other hand, if the current wait time does not exceed the maximum wait time, then control passes to 714. During 714, the 714 the control logic executes a configurable wait cycle (e.g. 0.5 seconds) and then returns to 690. See
Turning to
In particular, during 724, a first of two comparisons is made to determine whether the IR sensor field is cleared. In particular, if the current IR measurement is less than a calculated sum of the minimum value while waiting to clear (minvaluewait 536) and a low threshold (irlthresh 512) value discussed herein above with reference to
During 726, the control logic: removes the previously displayed “Clear Bottle Filler Area” message displayed by the dispenser station, clears all state variables (e.g. maxirclr 528, minvaluewait 536, waittime 548) associated with the combined continuous duration of the “Waiting to Clear” and “Error” states occupied by the liquid flow control logic and then transitions to the “Off” state and, in particular, 626 where a wait operation is executed while the control logic is in the “Off” state.
Additionally, if the initial test for a clear field fails during 724, control passes from 724 to 728 wherein a second IR sensor field clearing test is performed. However, in this case the minimum IR (minIR 532) value is used in place of the Minimum Value for Wait (minvaluewait 536) value. During 728, if the current IR measure is less than the calculated sum of the minimum (minIR 532) and the low threshold (irlthresh 512), then control passes to 726.
On the other hand, if the IR Measurement is too large to pass the test of 728, then control passes to 730. During 730 the control logic determines whether the accumulated wait time (waittime 548) in the “Error” state has exceeded a configured soft error wait limit (e.g. 5 minutes). If the current accumulated continuous time in the error state does not exceed the soft error time limit, then control returns to 720.
On the other hand, after the soft error time limit is exceeded, the control logic passes from 730 to 732. During 732 the control logic issues a hard error message to a message synchronization area of local management service/server for subsequent uploading to a notifications area of a cloud server to cause the creation/scheduling of a maintenance request for the malfunctioning dispenser station and/or local storing of the event in a database or table. Control then passes to 734 wherein the liquid flow control logic executes a configured wait (e.g. 0.5 seconds) before control passes to 736 to determine whether the error condition has been resolved.
During 736, a first of two comparisons are made to determine whether the IR sensor field is cleared. In particular, if the current IR measurement is less than a calculated sum of the minimum value while waiting to clear (minvaluewait 536) and a low threshold (irlthresh 512) value discussed herein above with reference to
During 738, the control logic: removes/recalls the previously uploaded error message to a maintenance service/server, removes the previously displayed “Clear Bottle Filler Area” message displayed by the dispenser station, clears all state variables (e.g. maxirclr 528, minvaluewait 536, wait time 548) associated with the “Error” state and then transitions to the “Off” state and, in particular, 626 where a wait operation is executed while the control logic is in the “Off” state.
Additionally, if the initial test for a clear field fails during 736, control passes from 736 to 740 wherein a second IR sensor field clearing test is performed. However, in this case the minimum IR (minIR 532) value is used in place of the Minimum Value for Wait (minvaluewait 536) value. During 740, if the current IR measure is less than the calculated sum of the minimum (minIR 532) and the low threshold (irlthresh 512), then control passes to 738.
On the other hand, if the IR Measurement is too large to pass the test of 728, then control returns to 732.
A model-based predictive temperature control is described herein below for a cooled water reservoir and supply pre-cooler (carrying the liquid before entering the reservoir) of the evaporator 203. As used herein, a “predicted liquid temperature” is a model-based temperature corresponding to an expected future sensor output if the system were to be allowed to reach equilibrium (without additional disruptive input) such that the temperature sensor body equaled the temperature of the liquid. In this regard the “predicted liquid temperature” is generated by applying a transfer function to actual temperature sensor (e.g., temperature sensor 211 for the evaporator 203) measurements. As such, the predicted liquid temperature is a model-based estimate of a current temperature reading that would be produced by a direct measurement of the liquid of interest.
The model/control scheme is derived from the thermal circuit topology depicted in
While thermodynamic flows in the system are complicated to model, a simplified system is appropriately used, in the present case, to generate an understanding of the system control requirements for a liquid dispenser station including a cooling unit having a cooled liquid reservoir in thermal contact, via a metallic thermal conduction path, with an evaporator coil.
With continued reference to the thermal circuit depicted in
In that regard, the relation of actual interest is the relation between the water temperature (liquid thermal mass 804) to the sensor temperature (temperature sensor thermal mass 806) and the discussion below concerns predicting the liquid temperature (liquid thermal mass 804) given the historical temperature readings provided by the temperature sensor (corresponding to the temperature sensor thermal mass 806) up to present. If the current temperature is 5° C. and the last minute of readings is 5° C. a predictive algorithm predicts that the actual water temperature is 5° C. However if the currently sensed temperature is 4.7° C. and recently the temperature was read at 5° C. then a properly modeled prediction of the actual current liquid temperature that will be registered by the temperature sensor 211 at a future point in time when the system reaches thermal equilibrium (referred to herein as the “predicted liquid temperature”) could successfully/accurately determine at present that the current water temperature (that will not be registered by the temperature sensor until some later time) is actually much lower than currently sensed 4.7° C. with knowledge of a system cooling model a priori. During a cooling cycle, the controller 206 uses the predicted liquid temperature to switch off the compressor 201 sooner which will keep the actual water temperature, sensed after a delay by the temperature sensor 211 of the evaporator 203, from undershooting the desired compressor shutoff threshold temperature.
The prediction of a final registered temperature works in both directions (i.e., for predictions of actual liquid temperature for both temperature increases and temperature decreases). For instance if the sensed temperature of the liquid is within a dead band (a range of temperatures wherein the compressor 201 is not turned on) and water is being consumed, then the temperature sensed by the temperature sensor 211 will start to rise. A temperature prediction is calculated that renders a predicted temperature value that is higher than the currently registered temperature reading by the temperature sensor 211. The higher value of the predicted temperature (for a rising liquid temperature) results in the controller 206 activating the compressor 201 before the temperature sensor 211 actually registers a temperature exceeding a threshold temperature for activating the compressor 201.
Turning to
Applying a first order transfer function (with coefficients of a=15, b=1, giving the transfer function 902 (15 s+1)/(s+1)) to the measured temperature values (the second line) renders the predicted temperatures (the third line). The calculated predicted temperature values (904) are thereafter utilized by the controller 206 to turn off the compressor 201 during a cooling cycle based upon input temperature sensor values 900 provided by the sensor 211 (corresponding to the second line of
Turning to
The two cases depicted in
However there are also effects between “a” and “b” that are difficult to explain in practical terms. Therefore, turning to
So the goal is to provide a transfer function that cancels plant dynamics and provides dynamics that are much more favorable—in this case much faster to respond. There is a practical limit however, the resulting system always needs to be a little slower (otherwise it would be predicting the future or non-causal). This can be understood that if the system is too fast then noise in the measurement could be misinterpreted as actual temperature changes about to happen. The “predicted temperature” response, depicted in the jittering bottom line in
To implement the system in discrete time (i.e. within a microcontroller system where the temperature is sampled at specific intervals) the continuous time transfer function needs to be discretized. This can be done by first applying the bilinear transform to the transfer function. Where the transfer function is Equation 3.
Applying the bilinear transform we get the transfer function in the z domain, where T is the period between samples, in the form of Equation 4.
And therefore Equation 5:
Where u is the input and y is the output, cross multiplying and taking the inverse transform gives us the difference equation (Equation 6):
Finally changing from a forward difference equation to a backward difference equation gives Equation (7):
And rearranging for y(k) yields Equation (8):
Where y(k) is the current temperature prediction, y(k−1) is the previous temperature prediction, u(k) is the current temperature measurement, u(k−1) is the previous temperature measurement, T is the period between samples and a and b are tuned parameters which adapt the algorithm to the system. In a system with constant sample period, the coefficients ((α2+T), (b2+T), (T−a2), (T−b2)) should be calculated once at the beginning to save processor load.
The following is noted about system modeling (i.e., selecting the value of a for the transfer function) and tuning the cooling system described, by way of example herein, for a liquid dispensing station. While there are advanced ways to model a system and account for dynamics in a more rigorous way, a 1st order system model should provide the predictive qualities required for hysteric control of the cooling system for the LDS described herein. The transfer function parameter “a” represents the time constant of the thermal system. Therefore a reasonable value to use can be obtained by applying a step temperature input to the cooling system while recording the temperature measurements over time. The parameter a can be defined as the time in seconds that it takes for the system temperature measurement to reach 63% of the final value—this is valid if there is no overshoot (system is first order). Alternatively it can be calculated by determining the time to reach 98% of the final value and dividing it by 4 to give “a”. These techniques should give a good initial guess at the value of “a” for a particular cooling system for the LDS.
The transfer function parameter “b” can be thought of as the desired response. If b=a, and “a” has been appropriately tuned to cancel the first order dynamics of the plant, then decreasing the value of a will increase the predictive quality of the algorithm and create a more responsive output. Increasing the value of “b” damps the output of the algorithm and makes it slower to respond. Ultimately “b” should be tuned by comparing the actual water temperature with that of the algorithm's output until a satisfactory agreement is achieved.
Trial and error tuning of variables “a” and “b” of the transfer function can be conducted through experimentation. Since the primary concern is to accurately determine an actual water temperature by using the sensor temperature, a potentially useful approach to tuning the cooling system is by creating an experimental unit where there is a temperature sensor in the jacketed copper waterline just before it enters the tank but still while it is adjacent to the evaporator coil. Then, comparing the sensor readings after the transfer function is applied to it with the actual temperature in the waterline the parameters can be adjusted until there is close agreement under various changing no load, high load, input water temperatures and ambient temperature conditions.
Alternatively, the microprocessor could use recent historical actual results to locally and automatically adjust variables “a” and “b” based on actual system response. This dynamic self-tuning would represent an improvement over the generic factory defaults, allowing the system to self-adapt to the specific environment and usage patterns to which it is exposed.
The more advanced experimental way of tuning the system is by executing a number of experiments as described above while capturing the data digitally to a spreadsheet file. The data can then be analyzed to generate a transfer function that creates the best fit under all the experimental conditions.
Finally, while the predictive temperatures have been discussed in the context of a cooling system for a liquid, a similar use of predictive computation is carried out for a heating system for a heated liquid dispenser to accurately provide temperatures for guiding activation of a heating element.
Turning to
Thereafter, the controller commences a series of steps for applying a transfer function (characterized by the provided transfer function coefficients “a” and “b”) that results in the generation of a predicted liquid temperature value. In particular, during 830 the controller applies the provided “a” coefficient to render a true current temperature of the liquid, and during 840 the “b” coefficient is applied to render a system response. Thereafter, at 850 the controller 206 renders a prediction for the actual liquid temperature (if no change to the compressor 201 on/off state occurs). Control then passes to 860 where the controller 206 uses the predicted temperature to execute a control over the state of the compressor. In particular, if the predicted temperature exceeds the upper temperature limit, then control passes to 870. At 870, the controller 206 issues a signal to turn on the compressor. After a wait period (not shown in
On the other hand, if during 805 the compressor is currently running, then control passes to 815. During 815 the controller 206 determines a magnitude of variance between the measured temperature provided by the temperature sensor 211 and the configured lower temperature limit specified for the cooled liquid. Control then passes to 825 wherein the controller 206 uses previous temperature readings to determine a current rate of change in the measured temperatures provided by the temperature sensor 211.
Thereafter, the controller 206 commences a series of steps for applying a transfer function (characterized by the provided transfer function coefficients “a” and “b”) that results in the generation of a predicted liquid temperature. In particular, during 835 the controller applies the provided “a” coefficient to render a true current temperature of the liquid, and during 845 the “b” coefficient is applied to render a system response. Thereafter, at 855 the controller 206 renders a prediction for the actual liquid temperature (if no change to the compressor 201 on/off state occurs). Control then passes to 865 where the controller 206 uses the predicted temperature to execute a control over the state of the compressor. In particular, if the predicted temperature is less than the lower temperature limit, then control passes to 875. At 875, the controller 206 issues a signal to turn off the compressor. After a wait period (not shown in
All references, including publications, patent applications, and patents, cited herein are hereby incorporated by reference to the same extent as if each reference was individually and specifically indicated to be incorporated by reference and were set forth in its entirety herein.
The use of the terms “a” and “an” and “the” and similar referents in the context of describing the invention (especially in the context of the following claims) are to be construed to cover both the singular and the plural, unless otherwise indicated herein or clearly contradicted by context. The terms “comprising,” “having,” “including,” and “containing” are to be construed as open-ended terms (i.e., meaning “including, but not limited to,”) unless otherwise noted. Recitation of ranges of values herein are merely intended to serve as a shorthand method of referring individually to each separate value falling within the range, unless otherwise indicated herein, and each separate value is incorporated into the specification as if it were individually recited herein. All methods described herein can be performed in any suitable order unless otherwise indicated herein or otherwise clearly contradicted by context. The use of any and all examples, or exemplary language (e.g., “such as”) provided herein, is intended merely to better illuminate the invention and does not pose a limitation on the scope of the invention unless otherwise claimed. No language in the specification should be construed as indicating any non-claimed element as essential to the practice of the invention.
Preferred embodiments of this invention are described herein, including the best mode known to the inventors for carrying out the invention. Variations of those preferred embodiments may become apparent to those of ordinary skill in the art upon reading the foregoing description. The inventors expect skilled artisans to employ such variations as appropriate, and the inventors intend for the invention to be practiced otherwise than as specifically described herein. Accordingly, this invention includes all modifications and equivalents of the subject matter recited in the claims appended hereto as permitted by applicable law. Moreover, any combination of the above-described elements in all possible variations thereof is encompassed by the invention unless otherwise indicated herein or otherwise clearly contradicted by context.
This application is a continuation of U.S. application Ser. No. 18/458,370, filed Aug. 30, 2023; which is a continuation of U.S. application Ser. No. 17/817,900, filed Aug. 5, 2022 and now U.S. Pat. No. 11,776,350; which is a continuation of U.S. application Ser. No. 17/062,351, filed on Oct. 2, 2020 and now U.S. Pat. No. 11,410,483; which is a continuation of U.S. application Ser. No. 16/687,352, filed on Nov. 18, 2019 and now U.S. Pat. No. 11,004,298; which is a continuation of U.S. application Ser. No. 15/642,672, filed on Jul. 6, 2017 and now U.S. Pat. No. 10,482,704; which is a continuation of U.S. application Ser. No. 14/701,973, filed on May 1, 2015 and now U.S. Pat. No. 9,704,329; which claims the benefit of U.S. Provisional Application No. 61/987,219, filed on May 1, 2014 and titled “System and Method for Dispensing Consumable Liquids;” the contents of which are expressly incorporated herein by reference in their entirety, including any references therein.
Number | Date | Country | |
---|---|---|---|
61987219 | May 2014 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 18458370 | Aug 2023 | US |
Child | 18661509 | US | |
Parent | 17817900 | Aug 2022 | US |
Child | 18458370 | US | |
Parent | 17062351 | Oct 2020 | US |
Child | 17817900 | US | |
Parent | 16687352 | Nov 2019 | US |
Child | 17062351 | US | |
Parent | 15642672 | Jul 2017 | US |
Child | 16687352 | US | |
Parent | 14701973 | May 2015 | US |
Child | 15642672 | US |