Patent ID: 12229623

DETAILED DESCRIPTION

It is important to note that the embodiments disclosed herein are only examples of the many advantageous uses of the innovative teachings herein. In general, statements made in the specification of the present application do not necessarily limit any of the various claimed embodiments. Moreover, some statements may apply to some inventive features but not to others. In general, unless otherwise indicated, singular elements may be in plural and vice versa with no loss of generality. In the drawings, like numerals refer to like parts through several views.

In accordance with the principles of the disclosure, calibration of a tag that is used to perform measurements of one or more environmental conditions is coordinated with a user device, such as, for example, a mobile phone or tablet, which, for convenience, may be hereinafter referred to herein for convenience of reference as a mobile phone. Advantageously, doing so allows correction of drift of measurements produced from values that are transmitted from the tag which may be derived from signals affected by the environmental condition or from data generated by one or more sensors on the tag. In this regard, it should be appreciated that a mobile phone typically has specific sensors that more directly measure the environmental conditions of interest and that measurements produced by the mobile phone are typically likely to be more accurate than those derived from the values of signals affected by the environmental condition or from one or more sensors that are transmitted from the tag. In addition, in accordance with an aspect of the disclosure, the calibration model used to convert the values of signals affected by the environmental condition that are transmitted from the tag transmitted from the tag into a measurement of an environmental condition may be updated based on the value of the environmental condition indicated by the mobile phone.

Also, the condition of an object to which a tag is attached, such as freshness thereof, may be determined by employing measurements produced over time from values that are transmitted from the tag for a plurality of environmental conditions. Such conditions may be determined in conjunction with their own model, e.g., an object condition model, such as a tag freshness calibration model, and when the value of such condition, e.g., freshness calibration, diverges from that made contemporaneously by a mobile phone, the value determined by the mobile phone may be substituted for that based on tag measurements and the object condition model, e.g., a tag freshness calibration model, may be updated to conform to the value determined by the mobile phone.

FIG.1shows an illustrative hardware environment employed to sense various environmental conditions in accordance with the principles of the disclosure. Shown inFIG.1are tag101, tag reader102, user device103, network105, compute system107and tag calibration model109. Tag reader102, user device103, and compute system107are coupled via network105. Tag101is wirelessly communicatively coupled to tag reader102, and hence is further communicatively coupled via network105, e.g., to compute system107. Compute system107is communicatively coupled to tag calibration model109. Note that in some embodiments compute system107and tag calibration model109may be coupled via a network, e.g., network105.

Tag101is a conventional wireless tag known in the art, e.g., one of Wiliot's IoT Pixels, and, in particular, one of Humidity Sensing IoT Pixels and Light Sensing IoT Pixels. Tag101may employ a battery or be battery-less and rely solely on harvested energy. Such tags typically use Bluetooth® and Bluetooth low energy (BLE) for wireless communication over the 2.4 GHz industrial, scientific and medical (ISM) band. Other low energy communication protocols include LoRa, nRF, DECT® Ultra Low Energy (DECT ULE), Zigbee®, Z-Wave®, EnOcean®, and the like can be used for wireless tags in a similar manner to Bluetooth and BLE. For simplicity and pedagogical purposes, this disclosure uses BLE as an illustrative example, although the disclosure is applicable to tags that employ such other low energy communication protocols.

Tag reader102communicates with tag101using the low-energy communications protocol and may relay messages between tag101and network105. Thus, messages may be transmitted from tag101and delivered to compute system107and vice versa.

User device103is typically a mobile phone, although it may be, a personal computer, a laptop, a tablet computer, a wearable computing device, or other similar device. User device103may also be a tag reader, i.e., bridge, or any nearby network device provided that it has the necessary sensors, e.g., humidity sensor or a camera. User device103has the ability to sense at least one environmental condition and, in particular, the environmental condition for which it will be used to calibrate tag101. User device103may contain one or more dedicated sensors to sense the at least one or more environmental conditions, or it may use other technology to perform the sensing. For example, there are environmental sensors in phones of the Android platform. The techniques of this disclosure are agnostic to the particular way in which user device103performs the sensing. User device103may also detect the presence of tag101as described further hereinbelow.

Network105may be, but is not limited to, a wireless, cellular or wired network, a local area network (LAN), a wide area network (WAN), a metro area network (MAN), the Internet, the worldwide web (WWW), similar networks, and any combination thereof.

Compute system107may be deployed locally, e.g., a local computer or server, it may be deployed in the cloud, or it may be part of a cloud computing platform. Such a cloud computing platform may include a public cloud, a private cloud, a hybrid cloud, or combination thereof.

Tag calibration model109stores a model that is used to convert information, e.g., raw measurements, that are received from the tag at compute system107into an actual measurement of an environmental condition. The model may be a previously trained model for making such conversions.

FIG.2shows a flowchart of an illustrative process for calibrating a tag in coordination with a mobile phone, in accordance with the principles of the disclosure. For purposes of illustration, inFIG.2the environmental condition being monitored is humidity. However, the description is equally applicable to other environmental conditions, e.g., ambient temperature, light, and air pressure, freshness, and the like, as noted above.

The process is entered in S201when a tag, e.g., tag101, is detected by a mobile phone, e.g., mobile phone103. This detection may be done by an application executing on the mobile phone. In one embodiment, such detection is performed by the mobile phone optically detecting the tag. For example, the mobile phone could detect a bar code printed on the tag using the mobile phone's camera, the bar code serving to identify, e.g., uniquely, which tag has been detected. In another embodiment the mobile phone may detect tag101by receiving BLE messages that are transmitted by the tag. Note that many mobile phones can receive BLE messages. There are BLE messages that contain a unique identifier supplied by the tag and such identifier may be used to identify the tag. In the event that the BLE messages are encrypted, mobile phone103can send the message to compute system107to be decrypted and then receive back the decrypted message.

Next, S203may be performed in parallel with S205and S207. In S203a humidity measurement is made by the mobile phone and sent to a compute system, e.g., compute system107. In S205, raw humidity measurements are received from the tag at the compute system. In one embodiment, the raw humidity measurements from the tag could be measurements made by a sensor on the tag. In another embodiment, various functions of the tag are monitored as to how they change with changes of humidity. For example, one or more frequencies that are measured as a byproduct of other processes, such as an energization rate or a communication calibration, e.g., frequencies that are calibrated when a beacon is received and a tag prepares to transmit, may change in response to humidity conditions. The raw humidity measurements correspond to the values of these frequencies and do not directly indicate the humidity level itself but must be processed by the compute system using a tag calibration model, e.g., tag calibration model109, in order to derive the humidity level. Then, in S207, the actual humidity level detected by the tag, i.e., the final humidity measurement, is calculated by the compute system using the tag calibration model. This is typically, though not necessarily, based on more than one raw humidity measurement and, indeed, possibly many more.

After performance of S203and S207, control passes to conditional branch point S209which tests to determine if the final humidity measurement that was derived based on the raw humidity measurements received from tag and the humidity measurement received from the mobile phone measurement disagree by more than a prescribed threshold. S209may be performed by the compute system. If the test result in S209is NO, indicating that the difference between the value determined by the mobile phone and the tag is less than the threshold, i.e., it is not considered to be very large, control passes to S211and the humidity measurement based on the tag's raw measurement and the calibration model is employed and supplied as an output, e.g., by the compute system, that indicates the currently measured humidity. In other words, the humidity measurement calculated in S207is employed and the humidity measurement from the mobile phone is ignored. In this regard, no update of the tag calibration model is required, and it is assumed that the tag calibration model is working reasonably accurately. The process is then exited, or control may be passed back to S201.

If the test result in S209is YES indicating that the difference between the value determined by the mobile phone and the tag is greater than the threshold, i.e., it is considered to be relatively large, control passes to S213and the mobile phone's humidity measurement is employed in real time as the tag's humidity measurement in lieu of employing the humidity measurement calculated in S207based on the tag's raw humidity measures. The mobile phone's humidity measurement is supplied as an output, e.g., by the compute system, that indicates the currently measured humidity as if such was determined based on the tag raw data and using the tag calibration model. The rationale for doing so is the presumption is that it is more likely that the values of the tag have drifted and thus the value of the mobile phone is more reliable. In particular, the mobile phone is trusted more because it is an actively managed device and thus there is an expectation that its value is more accurate.

In an embodiment, an action, such adjusting a level of an environmental control system, may be instigated or automatically performed when the humidity level being output reaches a prescribed level.

In one embodiment, the prescribed threshold may be in a range of 1% to 25%. The threshold value selected may depend upon the particular environmental condition being monitored. For example, temperature sensing by a tag is fairly accurate, so the threshold may be set smaller, e.g., 1%, as such could represent a significant difference between the tag measurement and the phone measurement. Humidity sensing is less accurate, and therefore a larger threshold, e.g., 10%, may be warranted to indicate a difference significant enough to employ the mobile phone measurement in view of that developed based on the tag raw humidity measurements. The threshold value may also, or instead, be based on a desired accuracy or a known tendency for the raw tag data to drift.

Control next passes to S215in which new calibration data for the tag calibration model based on phone measurement and raw tag data is determined in real time, e.g., by the compute system. In this regard, it should be appreciated that the measurement derived from the raw humidity measurements received from tag is only as good as the tag calibration model. Therefore, the model is updated, e.g., by the compute system, to accommodate for the apparent drift over time of the input supplied thereto by the tag. The updating of the tag calibration model is performed in real time because the raw tag data arrives fairly quickly and it is desirable that the tag calibration model should be updated in time for receipt of the next packet from the tag with new raw data so that the actual humidity level detected by the tag, i.e., the final humidity measurement, which is based on the tag calibration model, is as accurate as possible.

Thereafter, in S217the updated tag calibration model is sent to the compute system which stores the updated model, e.g., in tag calibration model109. The process is then exited, or control may be passed back to S201.

FIG.3shows a flowchart of an illustrative process for calibrating a tag for determining the freshness of an asset, i.e., an item, such as a food item, to which the tag is associated, e.g., attached, in coordination with a mobile phone, in accordance with the principles of the disclosure. Freshness of food is a concept well known in the art. However, the description is equally applicable to other conditions in which an asset decays over a period.

It should be appreciated that, as an illustrative example and to a first approximation, in one embodiment a freshness model may be operative to calculate how many days off the expected shelf life of the asset, e.g., the food item such as produce, associated with the tag is, based on the environmental conditions, e.g., temperature and humidity conditions, that the asset has been exposed to. In other words, the model may determine by how many days the shelf life of the asset is reduced as compared to the expected shelf life of the asset had it been subject to ideal conditions of the environmental conditions. Thus, freshness may be viewed as a decay rate based on, e.g., caused by, the environmental conditions to which the asset has been exposed over time.

Given that the tag is associated with the asset, e.g., attached thereto, the tag and the asset have been exposed to the same environmental conditions over time, e.g., at least since the tag was attached to the asset, which may be set as a starting point. Thus, the environmental conditions as measured by the tag may be used to determine freshness of the asset attached thereto. It should also be appreciated that a visual inspection of the asset is considered to be a more accurate and trustworthy measure of freshness because freshness is affected by other factors, e.g., beyond temperature humidity, and any other environmental conditions actually measured by a tag, that a tag may not be usable to measure.

The process is entered in S301when a tag, e.g., tag101, is detected by a mobile phone, e.g., mobile phone103. This detection may be done by an application executing on the mobile phone. In one embodiment, such detection is performed by the mobile phone optically detecting the tag. For example, the mobile phone could detect a bar code printed on the tag using the mobile phone's camera, the bar code serving to identify, e.g., uniquely, which tag has been detected. In another embodiment, the mobile phone may detect tag101by receiving one or more BLE messages that are transmitted by the tag. Note that many mobile phones can receive BLE messages. There are BLE messages that contain a unique identifier that is used to identify the tag. In the event that the BLE messages are encrypted, mobile phone103can send the message to compute system107to be decrypted receive back and then the decrypted message.

Next, S303may be performed in parallel with S305and S307. In S305the user is prompted to use the mobile phone to take an image of the asset using a camera of the mobile phone. Next, in S307. a freshness measurement is made by the mobile phone based on the image and the freshness measurement is transmitted to a compute system, e.g., compute system107. Such freshness measurement may be derived from the image using a model that has been trained to determine freshness of an asset based on a received image.

In S303, an asset freshness, i.e., the freshness of the object with which the tag is associated, is determined by the compute system based on a history of environmental condition measurements, such as temperature and humidity, that have been determined and collected by the compute system based on the raw measurements that were reported by the tag to the compute system and using the tag calibration model for those conditions, e.g., as described hereinabove in connection with S205and S207and using a tag freshness calibration model.

After performance of S303and S307, control passes to conditional branch point S309which tests to determine if the freshness measurement that was derived based on the historical data and the freshness measurement received from the mobile phone measurement disagree by more than a prescribed threshold. In one embodiment, the prescribed threshold may be 10%. However, as noted above, the threshold may be set differently within a range, e.g., 1% to 25%. Furthermore, the threshold may be based on the nature of the asset whose freshness is being measured. The threshold may also, or in the alternative, be based on the known tendency of the raw measurements received from the tag for the environmental conditions employed to determine freshness to drift.

If the test result in S309is NO, indicating that the difference between the freshness value determined by the mobile phone and the freshness value determined based on the history of environmental condition measurements that have been determined and collected by the compute system based on the raw measurements that were reported by the tag is less than the threshold, i.e., it is not very large, control passes to S311and the freshness measurement based on the tag's previous data and the tag freshness calibration model is employed. As such, the freshness measurement based on the tag's previous data and the tag freshness calibration model is supplied as an output, e.g., by the compute system, to indicate the currently measured freshness. In other words, the freshness measurement calculated in S303is employed as an output and the freshness measurement made by the mobile phone in S307is ignored. In this regard, no update of the tag calibration model for freshness, i.e., a tag freshness calibration model, is required, and it is assumed that the a tag freshness calibration mode is working reasonably accurately. The process is then exited, or control may be passed back to S301.

In an embodiment, an action, such as reducing a price of the object or moving the object into a different storage area having different environmental conditions, or adjusting a level of an environmental control system, may be instigated or automatically performed in the event that the freshness reaches a prescribed level.

If the test result in S309is YES indicating that the difference between the value determined by the mobile phone and the historical environmental condition measurements and tag freshness calibration model, i.e., as calculated in S303, is greater than the threshold, i.e., it is relatively large, control passes to S313and the mobile phone's freshness measurement is employed for the tag in lieu of the freshness measurement calculated in S303. The basis for doing so is the presumption that the values measured by the tag have drifted and the value determined by the mobile phone from the image is more reliable, as indicated hereinabove. As such, the freshness measurement value determined by the mobile phone is supplied as an output, e.g., by the compute system, to indicate the currently measured freshness. In other words, the freshness measurement calculated in S307is employed as an output and the freshness measurement made by the mobile phone in S303is ignored.

Control next passes to S315in which new calibration data for the tag freshness calibration model based on phone measurement and measurements of environmental conditions based on tag data is determined in real time.

In an embodiment, in S315, new calibration data for the tag freshness calibration model may be achieved by having the state of the tag freshness calibration model be advanced to match the freshness measurement made by the mobile phone, i.e., to move the lifetime of the asset to the point in the tag freshness calibration model that matches the mobile phone's freshness measurement. This may be achieved by restarting the tag freshness calibration model at the freshness level corresponding to the freshness measurement made by the mobile phone and let the tag freshness calibration model continue from there. In another embodiment the slope of decay employed by the tag freshness calibration model may be adjusted so that it correctly intersects with the point corresponding to the freshness measurement made by the mobile phone.

It should also be appreciated that the freshness measurement derived from the raw tag measurements received from tag, e.g., of temperature and humidity, is only as good as the tag calibration models for those environmental conditions. Therefore, the model for one or more of the underlying tag measurements that are employed to make up the freshness measurement may also be updated to accommodate for the apparent drift over time of the inputs supplied thereto by the tag. Each such updated tag calibration model is sent to the compute system which stores such updated models, e.g., in tag calibration model109, as described hereinabove in connection with S215and S217(FIG.2). This process of updating the model for one or more of the underlying tag measurements may also proceed independently of the process ofFIG.3.

Thereafter, in S317(FIG.3), the updated tag freshness calibration model is sent to the compute system which stores the updated tag freshness calibration model, e.g., in tag calibration model109. The process is then exited, or control may be passed back to S301.

FIG.4shows an illustrative system400according to an embodiment. System400may be used to implement one or more of compute system107, user device103, tag reader102, and even portions of tag101. System400includes a processing circuitry410coupled to a memory420, a storage430, and a network interface440. In an embodiment, the components of the system130may be communicatively connected via a bus450.

The processing circuitry410may be realized as one or more hardware logic components and circuits. For example, and without limitation, illustrative types of hardware logic components that can be used include field programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), application-specific standard products (ASSPs), system-on-a-chip systems (SOCs), graphics processing units (GPUs), tensor processing units (TPUs), general-purpose microprocessors, microcontrollers, digital signal processors (DSPs), and the like, or any other hardware logic components that can perform calculations or other manipulations of information.

The memory420may be volatile, e.g., random access memory, etc., non-volatile, e.g., read only memory, flash memory, etc., or a combination thereof.

In one configuration, software for implementing one or more embodiments disclosed herein may be stored in the storage430. In another configuration, the memory420is configured to store such software. Software shall be construed broadly to mean any type of instructions, whether referred to as software, firmware, middleware, microcode, hardware description language, or otherwise. Instructions may include code, e.g., in source code format, binary code format, executable code format, or any other suitable format of code. The instructions, when executed by the processing circuitry410, cause the processing circuitry410to perform the various processes described herein.

The storage430may be magnetic storage, optical storage, and the like, and may be realized, for example, as flash memory or other memory technology, compact disk-read only memory (CD-ROM), Digital Video Disks (DVDs), or any other medium which can be used to store the desired information.

The network interface440allows the system400to communicate with other elements of an overall system, e.g., elements such as are shown inFIG.1. Network interface440may provide for wired communication, wireless communication, or a combination of both and may employ one or more communication protocols.

It should be understood that the embodiments described herein are not limited to the specific architecture illustrated inFIG.4, and other architectures may be equally used without departing from the scope of the disclosed embodiments.

The various embodiments disclosed herein can be implemented as hardware, firmware, firmware executing on hardware, software, software executing on hardware, or any combination thereof. Moreover, the software is implemented tangibly embodied on a program storage unit or computer readable medium consisting of parts, or of certain devices and/or a combination of devices. The application program may be uploaded to, and executed by, a machine comprising any suitable architecture. Preferably, the machine is implemented on a computer platform having hardware such as one or more central processing units (CPUs), a memory, and input/output interfaces. The computer platform may also include an operating system and microinstruction code. The various processes and functions described herein may be implemented as either part of the microinstruction code or part of the application program, or any combination thereof, which may be executed by a CPU, whether or not such a computer or processor is explicitly shown. In addition, various other peripheral units may be connected to the computer platform such as an additional data storage unit and a printing unit. Furthermore, a non-transitory computer readable medium is any computer readable medium except for a transitory propagating signal.

All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the principles of the disclosed embodiment and the concepts contributed by the inventor to furthering the art and are to be construed as being without limitation to such specifically recited examples and conditions. Moreover, all statements herein reciting principles, aspects, and embodiments of the disclosed embodiments, as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof. Additionally, it is intended that such equivalents include both currently known equivalents as well as equivalents developed in the future, i.e., any elements developed that perform the same function, regardless of structure.

It should be understood that any reference to an element herein using a designation such as “first,” “second,” and so forth does not generally limit the quantity or order of those elements. Rather, these designations are generally used herein as a convenient method of distinguishing between two or more elements or instances of an element. Thus, a reference to first and second elements does not mean that only two elements may be employed there or that the first element must precede the second element in some manner. Also, unless stated otherwise, a set of elements comprises one or more elements.

As used herein, the phrase “at least one of” followed by a listing of items means that any of the listed items can be utilized individually, or any combination of two or more of the listed items can be utilized. For example, if a system is described as including “at least one of A, B, and C,” the system can include A alone; B alone; C alone; 2A; 2B; 2C; 3A; A and B in combination; B and C in combination; A and C in combination; A, B, and C in combination; 2A and C in combination; A, 3B, and 2C in combination; and the like.