Bed system for adjusting sleep environment based on microclimate temperature and sleep quality optimization
By integrating controllers and temperature sensors in the bed system, analyzing sleep quality data using machine learning models, and automatically adjusting the microclimate temperature of the bed system, the problem of difficulty in optimizing user sleep quality in the existing technology is solved, and better sleep quality maintenance is achieved.
Patent Information
- Application Number
- CN202380080450.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-09-20
- Filing Date
- 2023-09-20
- Publication Date
- 2025-06-27
AI Technical Summary
It is difficult for existing bed systems to automatically adjust the microclimate temperature based on the user's sleep quality data to optimize the user's sleep quality.
By integrating controllers in the bed system, using data collected by temperature sensors, machine learning models are applied to identify microclimate temperature data for high-quality sleep periods and generate thermal settings to replicate these temperature conditions during subsequent sleep periods.
It realizes automatic adjustment of the microclimate temperature of the bed system based on the user's sleep quality data, thereby improving or maintaining the user's sleep quality.
Smart Images

Figure CN120225094A_ABST
Abstract
Description
[0001] This disclosure relates to systems and techniques for determining a thermal routine for a bed system based on automatically processed data such as microclimate temperature data of the bed system and sleep quality data of a user's sleep periods from the bed system.
[0002] Cross - reference to related applications
[0003] This application claims the benefit of U.S. Provisional Application Serial No. 63 / 408,241, filed on September 20, 2022. The disclosure of the prior application is considered part of the disclosure of this application and is incorporated herein in its entirety. Background of the disclosure
[0004] Generally, a bed is a piece of furniture for sleeping or relaxing. Many modern beds include a soft mattress on a bed frame. The mattress may include springs, foam materials, and / or air chambers to support the weight of one or more occupants. Summary of the disclosure
[0005] This disclosure generally relates to systems and techniques for determining a thermal routine for a bed system that improves the sleep quality of a user of the bed system. More specifically, the disclosed techniques allow for processing microclimate temperature data collected at the bed system during a user's past sleep periods to determine a thermal routine that can be implemented at the bed system during subsequent sleep periods. Processing the microclimate temperature data may include identifying past sleep periods during which the user experienced a threshold sleep quality level and / or a highest sleep quality level. Processing the microclimate temperature data may also include mapping the microclimate temperature data of the identified past sleep periods to one or more thermal settings that can then be implemented during the user's subsequent sleep periods. These thermal settings can be implemented during subsequent sleep periods to substantially replicate the microclimate of the identified past sleep periods and help the user achieve an improved sleep quality level during subsequent sleep periods.
[0006] The microclimate temperature data may correspond to the temperature of the air around the users when the users are resting on the top surface of the bed system. The microclimate temperature data may also correspond to the temperature at the top surface of the bed system where the user rests. Some patterns of microclimate temperature data can enhance the user's sleep quality by influencing the dynamics of the user's core body temperature (CBT) such that the CBT decreases at sleep onset, remains low during the first two sleep cycles (e.g., for about 5 hours from sleep start), and increases during the final cycle of sleep. Thus, the disclosed techniques provide techniques for controlling microclimate temperature data to improve or otherwise maintain a threshold sleep quality level of the user during a sleep period.
[0007] Some embodiments described herein include a bed system for improving a user's sleep quality by adjusting a sleep environment. The bed system can include: a controller configured to: retrieve data for a set of the user's past sleep periods from a data repository; identify, based on the data, past sleep periods in the set of past sleep periods that meet a sleep quality criterion; determine, based on the data associated with the identified past sleep periods of the user, a thermal setting for the bed system; and apply the thermal setting to the bed system for execution during at least one subsequent sleep period of the user.
[0008] The embodiments described herein can include one or more optional features. For example, the set of past sleep periods can include multiple past sleep periods of the user. Identifying the past sleep periods in the set can include: determining that a sleep quality value in the data for the identified sleep periods is greater than the sleep quality values in the data for other past sleep periods in the set. Identifying the past sleep periods in the set can also include: determining that the sleep quality value in the data for the identified past sleep periods exceeds a threshold sleep quality value. The data for the set of past sleep periods can include a temperature profile for each past sleep period in the set of past sleep periods, where the temperature profile can be a time series of temperature values collected by a temperature sensor at the top surface of the user's bed system throughout the past sleep period. Determining the thermal setting for the bed system can include: applying a model to the temperature profile of the identified past sleep period, the model having been trained to identify segments of temperature values in the temperature profile and to identify a relationship between each segment of temperature values in the temperature profile and one or more predetermined thermal settings.
[0009] As another example, applying the thermal setting to the bed system can include: generating instructions to activate a thermal routine at a heating or cooling unit of the bed system during the at least one subsequent sleep period of the user to adjust the microclimate at the top surface of the bed system to at least one temperature value in the data for the identified past sleep period. Determining the thermal setting for the bed system can include: determining the thermal setting for each segment of the identified past sleep period. Each segment of the identified past sleep period can be a 60-minute time period, where the segments can be non-overlapping time periods during the identified past sleep period. Identifying the past sleep period in the set of past sleep periods that meets the sleep quality criteria based on the data can include: identifying the past sleep period in the set for which a sleep quality metric in the data for the past sleep period exceeds a threshold sleep quality value. The sleep quality metric in the data for the past sleep period can be a numerical value indicating a sleep quality score, and the threshold sleep quality value can be 90. Identifying the past sleep period in the set of past sleep periods that meets the sleep quality criteria based on the data can include: ranking the past sleep periods in the set from highest to lowest sleep quality metric, where the data for each past sleep period in the set can include a sleep quality metric corresponding to the past sleep period; and selecting the past sleep period with the highest rank among the ranked past sleep periods.
[0010] Some embodiments described herein include a bed system for improving a user's sleep quality by adjusting a sleep environment, the bed system including: a controller configured to: receive temperature data collected during a sleep period of a user of the bed system from at least one temperature sensor of the bed system; determine a microclimate temperature value for each predetermined time interval during the sleep period based on applying a model to the temperature data; determine a microclimate temperature value for the sleep period based on aggregating the microclimate temperature values for the predetermined time intervals during the sleep period; and return at least one of: (i) the microclimate temperature value for the predetermined time intervals during the sleep period or (ii) the microclimate temperature value for the sleep period.
[0011] The bed system may optionally include one or more of the following features. For example, the at least one temperature sensor may be configured as a sensor strip that is removably attached to the top surface of the bed system for the user to rest on. The at least one temperature sensor may include five temperature sensors linearly arranged along the sensor strip, where the five temperature sensors may be equally spaced apart by a threshold distance along the sensor strip. The bed system may be a queen-sized bed, and the threshold distance may be 5.5 inches. The bed system may be a king-sized bed, and the threshold distance may be 6.5 inches. The model may be trained to approximate the microclimate temperature value for each predetermined time interval during the sleep period based on the temperature data. The predetermined time interval may be a one-minute segment during the sleep period.
[0012] Some embodiments described herein include a bed system for improving a user's sleep quality by adjusting the sleep environment, the bed system including: a controller configured to: receive a temperature profile of a past sleep period of a user of the bed system; determine a thermal setting that replicates the temperature profile of at least one past sleep period in the past sleep period based on applying a model to the temperature profile of at least one past sleep period in the past sleep period; and return the thermal setting.
[0013] The bed system may optionally include one or more of the following features. For example, the temperature profile of at least one past sleep period in the past sleep period may include a plurality of temperature values detected at the top surface of the bed system during the entire at least one past sleep period in the past sleep period. The controller may be configured to determine a thermal setting for each segment of at least one past sleep period in the past sleep period, where each segment of the sleep period may be a non-overlapping 60-minute time period. The controller may be configured to determine a thermal setting for a continuous time period during which the user is on the bed system during at least one past sleep period in the past sleep period. The controller may further be configured to program a thermal routine of a heating or cooling unit of the bed system to execute the returned thermal setting during at least one subsequent sleep period of the user. When one or more different thermal settings are activated at the bed system, each temperature profile received may include a time series of temperature values collected by a temperature sensor of the bed system during the past sleep period.
[0014] Determining a thermal setting may include: identifying one or more thermal condition parameters of a microclimate at a top surface of a bed system based on fitting a model to each temperature feature map in a temperature feature map, where the thermal condition parameters indicate the impact of one or more different thermal settings on the microclimate at the top surface of the bed system; and determining the thermal setting based on the identified thermal condition parameters. The controller may also: receive temperature feature maps of past sleep periods of a user population including the user; select, among the temperature feature maps for the user population, a temperature feature map that meets a threshold thermal setting criterion; and determine a thermal setting for reproducing the selected temperature feature map based on a relationship between a temperature value identifying the selected temperature feature map and one or more predetermined thermal settings for a heating or cooling unit of the bed system. Sometimes, determining a thermal setting for reproducing a temperature feature map of at least one past sleep period in a past sleep period may include: retrieving a thermal setting library from a data repository, the thermal setting library mapping each of the retrieved thermal settings to the impact of the retrieved thermal setting on the microclimate at the top surface of the bed system; and identifying, based on the impact of the retrieved thermal setting on the microclimate, a thermal setting among the retrieved thermal settings that causes the microclimate at the top surface of the bed system to reach at least one temperature value in at least one temperature feature map of a past sleep period in the past sleep period.
[0015] Some embodiments described herein include a bed system for improving a user's sleep quality by adjusting a sleep environment, the bed system including: a controller configured to: retrieve data for a set of past sleep periods of a user from a data repository; identify, based on the data, past sleep periods in the set of past sleep periods that meet a sleep quality criterion; identify, based on data associated with the identified past sleep periods, a thermal setting for execution during at least one subsequent sleep period of the user; and return the thermal setting.
[0016] The bed system may optionally include one or more of the following features. For example, the sleep quality criteria may indicate temperature profile data that causes the user to experience a threshold sleep quality level during a past sleep period. Identifying a thermal setting may include: applying a model to the identified past sleep period, the model having been trained to identify temperature value segments in the temperature profile in the data for the identified past sleep period during the past sleep period; and identifying the relationship between each temperature value segment in the temperature value segments and one or more predetermined thermal settings. Identifying a thermal setting may include: retrieving from a data repository a mapping of temperature values in the data for a set of past sleep periods to one or more predefined thermal settings, the predefined thermal settings including high heat, medium heat, low heat, high cold, medium cold, low cold, and off; and selecting, based on the mapping, at least one predefined thermal setting corresponding to the temperature values in the temperature profile in the data for the identified past sleep period from the predefined thermal settings. Returning a thermal setting may include storing the thermal setting in a data repository for future use by a controller to determine when to activate a heating or cooling unit of the bed system during at least one subsequent sleep period of the user. The controller may also program a thermal routine of the heating or cooling unit of the bed system to execute the returned thermal setting during at least one subsequent sleep period of the user.
[0017] Some embodiments described herein include a bed system for improving a user's sleep quality by adjusting a sleep environment, the bed system including: a controller configured to: retrieve from a data repository temperature profiles corresponding to a threshold amount of the user's past sleep periods, wherein each temperature profile is a time series of temperature values collected by temperature sensors at the top surface of the user's bed during the user's entire sleep period; identify, among the retrieved temperature profiles, a temperature profile that meets a threshold thermal setting criterion, wherein the threshold thermal setting criterion may indicate temperature profile data that causes the user to experience a threshold sleep quality level during the sleep period; process the identified temperature profile to identify the relationship between the temperature values of the identified temperature profile and a thermal setting for a heating or cooling unit of the bed, wherein the execution of the thermal setting by the heating or cooling unit of the bed during a subsequent sleep period of the user adjusts the microclimate at the top surface of the bed to the temperature values of the identified temperature profile to cause the user to experience a threshold sleep quality level during the subsequent sleep period; and return a thermal setting.
[0018] The bed system may optionally include one or more of the following features. For example, processing the identified temperature profile may include: applying a model to the identified temperature profile, the model having been trained to identify temperature value segments in the temperature profile over the user's entire sleep period; and identifying the relationship between each temperature value segment in the temperature value segments and one or more predetermined heat settings. Returning the heat settings may include: generating instructions to activate a heat routine at the heating or cooling unit of the bed during a subsequent sleep period of the user to adjust the microclimate at the top surface of the bed to at least one temperature value in the temperature values of the identified temperature profile. During the subsequent sleep period, the controller may be configured to: receive, when the user is in bed, real-time temperature values detected at the top surface of the bed from a temperature sensor; determine whether the real-time temperature values meet a threshold heat routine activation criterion; and activate the heat routine based on a determination that the threshold heat routine activation criterion is met.
[0019] Sometimes, activating the heat routine may include: turning on the heating element of the heating or cooling unit to a setting defined by the heat setting until at least one temperature value in the identified temperature profile is detected by the temperature sensor at the top surface of the bed. Activating the heat routine may also include: turning off the heating element of the heating or cooling unit when at least one temperature value in the identified temperature profile is detected by the temperature sensor at the top surface of the bed. Activating the heat routine may include: turning on the cooling element of the heating or cooling unit until at least one temperature value in the identified temperature profile is detected by the temperature sensor at the top surface of the bed. Activating the heat routine may include: turning off the cooling element of the heating or cooling unit when at least one temperature value in the identified temperature profile is detected by the temperature sensor at the top surface of the bed. Additionally, determining whether the real-time temperature values meet the threshold heat routine activation criterion may include: determining that the average value of the real-time temperature values exceeds a threshold average temperature value for the identified temperature profile. Determining whether the real-time temperature values meet the threshold heat routine activation criterion may also include: determining that the average value of the real-time temperature values is less than a threshold average temperature value for the identified temperature profile. In some embodiments, the subsequent sleep period of the user may include one or more segments, the threshold heat routine activation criterion may be different for each segment of the sleep period, and the controller may activate the heat routine during each segment of the subsequent sleep period based on a determination of whether the corresponding threshold heat routine activation criterion for the segment is met.
[0020] In some specific implementations, identifying a temperature feature map among the retrieved temperature feature maps may include: retrieving a sleep quality metric from a data repository and for each of a threshold amount of past sleep periods; identifying, among the threshold amount of past sleep periods, the sleep periods in which the sleep quality metric exceeds a threshold sleep quality value; and selecting the temperature feature map corresponding to the identified sleep periods. The sleep quality metric may be a numerical value indicating a sleep quality score. The sleep quality metric may be a user-perceived sleep quality value. The sleep quality metric may be a numerical value, and the threshold sleep quality value may be 90.
[0021] As another example, identifying a temperature feature map among the retrieved temperature feature maps may include: retrieving a sleep quality metric from a data repository and for each of a threshold amount of past sleep periods; identifying, among the threshold amount of past sleep periods, the sleep period having the highest sleep quality metric among the sleep quality metrics of the threshold amount of past sleep periods; and selecting the temperature feature map corresponding to the identified sleep period. Identifying a temperature feature map among the retrieved temperature feature maps may further include: ranking the retrieved temperature feature maps based on the corresponding sleep quality metrics; and selecting the highest-ranked temperature feature map among the ranked temperature feature maps. The retrieved temperature feature maps may be ranked from the highest sleep quality metric to the lowest sleep quality metric. The threshold amount of the user's past sleep periods may be between 7 consecutive sleep periods and 8 consecutive sleep periods. The threshold heat setting criteria may vary based on the current season, which includes at least one of winter, spring, summer, or fall. The threshold heat setting criteria may vary based on the user's circadian rhythm. The threshold heat setting criteria may vary based on the user's age. The threshold heat setting criteria may also vary based on the day of the week.
[0022] As another example, the returned heat settings may include: sending instructions to the user's computing device that cause the computing device to present, in a graphical user interface (GUI) display, user-selectable options for selecting heat settings to be performed by a heating or cooling unit of the bed, as part of a heat routine during a subsequent sleep period of the user. The controller may also be configured to: detect the presence of a user on a first side of the bed based on a first pressure value collected by at least one sensor of the bed; detect the presence of a second user on a second side of the bed based on a second pressure value collected by at least one sensor of the bed; when the user and the second user are detected in the bed, receive a temperature value detected at the top surface of the bed from a temperature sensor; generate corresponding temperature feature maps for the user and the second user based on applying a temperature model to the received temperature value, the temperature model having been trained to distinguish the received temperature values for corresponding sides of the bed and generate temperature feature maps for each side of the bed; and store the corresponding temperature feature maps for the user and the second user in a data repository for later use by the controller to determine heat settings for each side of the bed during subsequent sleep periods of the corresponding user and the second user.
[0023] Some embodiments described herein may include a bed system for improving a user's sleep quality by adjusting a sleep environment, the bed system including: a controller configured to: retrieve from a data repository temperature feature maps corresponding to a threshold amount of the user's past sleep periods, wherein each temperature feature map is a time series of temperature values collected by a temperature sensor at the top surface of the user's bed during the user's entire sleep period; identify, among the retrieved temperature feature maps, temperature feature maps that meet a threshold heat setting criterion, wherein the threshold heat setting criterion indicates temperature feature map data that causes the user to experience a threshold sleep quality level during the sleep period; identify heat settings for a heating or cooling unit of the bed based on applying a model to the identified temperature feature maps, the model having been trained to identify segments of temperature values in the identified temperature feature maps and identify the relationship between each segment in the segments and one or more predetermined heat settings; and return the heat settings for execution by the heating or cooling unit of the bed, wherein performing the heat settings during a subsequent sleep period of the user causes the microclimate at the top surface of the bed to be automatically adjusted by the heating or cooling unit of the bed to one or more of the temperature values of the identified temperature feature maps to cause the user to experience a threshold sleep quality level during the subsequent sleep period.
[0024] The bed system may optionally include one or more of the above features.
[0025] Some embodiments described herein include a bed system for improving a user's sleep quality by adjusting a sleep environment. The bed system includes: a controller configured to: retrieve from a data repository a temperature profile corresponding to a threshold amount of the user's past sleep periods, where each temperature profile can be a time series of temperature values collected by a temperature sensor at the top surface of the user's bed over the user's entire sleep period; retrieve from the data repository and for each sleep period a corresponding sleep quality metric; identify a target sleep period for reproducing the microclimate at the top surface of the bed by identifying a past sleep period among the threshold amount of past sleep periods in which the corresponding sleep quality metric exceeds a threshold sleep quality value; select among the retrieved temperature profiles the temperature profile corresponding to the identified target sleep period; determine a thermal setting corresponding to the temperature values of the selected temperature profile, where the thermal setting includes a heating or cooling routine that, when activated by a component of the bed, adjusts the microclimate at the top surface of the bed to the microclimate of the identified target sleep period; and return the thermal setting.
[0026] The bed system may optionally include one or more of the above features and / or one or more of the following features. For example, the sleep quality metric can be a numerical value indicating the average sleep quality level experienced by the user during the user's identified target sleep period. The threshold sleep quality value can be 90. Identifying the target sleep period may include: ranking the threshold amount of past sleep periods from highest corresponding sleep quality metric to lowest corresponding sleep quality metric; and identifying the target sleep period based on selecting the top-ranked sleep period among the ranked past sleep periods.
[0027] Some embodiments described herein include a system for determining and applying a thermal setting for a subsequent sleep period based on past sleep periods that meet a sleep quality criterion. The system may optionally include one or more of the above features.
[0028] Some embodiments described herein include a system for identifying a thermal setting for a subsequent sleep period based on temperature data for past sleep periods that meet a sleep quality criterion. The system may optionally include one or more of the above features.
[0029] Some embodiments described herein include a system for modeling temperature sensor readings to determine an interval-based microclimate temperature and an integrated microclimate temperature for an entire sleep period. The system may optionally include one or more of the above features.
[0030] Some embodiments described herein include a system for modeling a temperature profile of a past sleep period to determine a thermal setting that reproduces the microclimate of the past sleep period. The system may optionally include one or more of the above features. Additionally, the thermal setting may be generated by the system in response to the modeling. The thermal setting may be a past thermal setting applied to one of the past sleep periods in the past sleep period.
[0031] Some embodiments described herein include one or more methods that may be configured to perform one or more of the above systems and / or features.
[0032] The devices, systems, and techniques described herein may provide one or more of the following advantages. For example, the disclosed techniques provide non-invasive techniques for optimizing the sleep quality of a user of a bed system. The disclosed techniques utilize existing components of the bed system (such as temperature sensors attached to the top surface of a mattress attached to the bed system) to determine microclimate conditions during past sleep periods in which the user experienced a threshold sleep quality level. The disclosed techniques also utilize machine learning techniques and / or thermodynamic equations to model microclimate temperature data corresponding to past sleep periods with one or more thermal settings. The thermal settings may be designed / generated to replicate or otherwise reproduce the microclimate conditions that caused the user to experience a threshold sleep quality level during the past sleep period. By implementing the thermal settings during subsequent sleep periods, the user may improve sleep quality or otherwise maintain an improved sleep quality. Thus, these improvements in sleep quality may result from non-invasively measuring microclimate conditions and continuously modeling / processing sleep quality data for past sleep periods.
[0033] Similarly, the disclosed techniques may allow for the iterative improvement or adjustment of the determined thermal settings as data continues to be collected during the user's sleep period. Thus, the user's sleep environment may be dynamically modified to control different microclimate conditions that may cause the user to experience an improved sleep quality level.
[0034] In addition, remote computing resources can be used to perform analysis and modeling of past sleep periods, thereby leveraging processing power and enabling efficient and accurate determinations to be made. A large amount of data collected over the entire past sleep period of a user of the in-bed system can be sent to a cloud-based system and processed away from the in-bed system to generate robust and accurate microclimate optimization determinations for a specific user. At least some processing (such as determining when to activate a thermal routine and which thermal routine to activate during the user's current sleep period) can be performed at the edge (e.g., by the controller of the in-bed system, by the user's mobile computing device) to allow for quick and accurate real-time adjustment of the in-bed system to ensure that the user maintains or improves their sleep quality level during the current sleep period. Thus, both remote computing resources and edge computing resources can be utilized with the disclosed technology to provide accurate and efficient microclimate optimization at the user's in-bed system.
[0035] As another example, the disclosed technology can utilize robust historical sleep and / or microclimate data about a specific user and user groups to determine thermal settings that control the microclimate conditions of the user's in-bed system and thus improve the user's sleep quality. By using such rich data collected over many past sleep periods of the user and / or user groups, more accurate determinations for controlling the microclimate conditions can be made.
[0036] Similarly, the disclosed technology can utilize machine learning models, algorithms, and techniques to accurately model data on the thermal settings of the in-bed system from past sleep periods. The modeled thermal settings can then be automatically applied to the in-bed system during the user's subsequent sleep periods to control the microclimate conditions of the in-bed system and thus improve the user's sleep quality.
[0037] As another example, the disclosed technology allows for personalization of the sleep experience. A separate thermal profile can be established for the user based on temperature data unique to each user of each in-bed system and also threshold sleep quality information / data unique to that specific user. The individualized thermal profile can be used during future sleep periods of the specific user to improve the overall sleep quality of that user. Similarly, the disclosed technology is adapted to change data about a specific user. The thermal profile can change based on the age of the user. For example, older users may have different CBT variations compared to children. The disclosed technology enables the automatic update of the parameters of the individualized thermal profile to accommodate changes associated with the user, such as changes in age.
[0038] In addition, the disclosed technology implements an "open-loop" adjustment of the thermal settings of the bed system. After all, the disclosed technology essentially reproduces the thermal settings recorded during a previous sleep period in which a threshold sleep quality level has been reached. The disclosed technology does not additionally consume computing resources and processing power to continuously adjust the microclimate of the bed system based on real-time sleep monitoring. Thus, computing resources and processing power can be used more efficiently to make other sleep-based determinations in real-time during the sleep period, while also automatically adjusting the microclimate of the bed system based on the reproduced thermal settings.
[0039] Details of one or more specific implementations are set forth in the accompanying drawings and the detailed description below. Other features, aspects, and potential advantages will become apparent from the accompanying description and drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0040] Figure 1 An example air mattress bed system is shown.
[0041] Figure 2 is a block diagram of examples of various components of the air mattress bed system.
[0042] Figure 3 An example environment including a bed communicating with devices located in and around a home is shown.
[0043] Figure 4A and Figure 4B is a block diagram of an example data processing system that may be associated with the bed.
[0044] Figure 5 and Figure 6 is a block diagram of an example of a motherboard that may be used in a data processing system associated with the bed.
[0045] Figure 7 is a block diagram of an example of a daughterboard that may be used in a data processing system associated with the bed.
[0046] Figure 8 is a block diagram of an example of a motherboard without a daughterboard that may be used in a data processing system associated with the bed.
[0047] Figure 9A is a block diagram of an example of a sensor array that may be used in a data processing system associated with the bed.
[0048] Figure 9B is a schematic top view of a bed having an example of a sensor strip with one or more sensors that may be used in a data processing system associated with the bed.
[0049] Figure 9C is a schematic view of an example bed with force sensors located at the bottom of the legs of the bed.
[0050] Figure 10 is a block diagram of an example of a control array that can be used in a data processing system associated with a bed.
[0051] Figure 11 is a block diagram of an example of a computing device that can be used in a data processing system associated with a bed.
[0052] Figures 12 to 16 is a block diagram of an example of a cloud service that can be used in a data processing system associated with a bed.
[0053] Figure 17 is a block diagram of an example of using a data processing system that can be associated with a bed to automate peripheral devices around the bed.
[0054] Figure 18 is a schematic diagram showing examples of a computing device and a mobile computing device.
[0055] Figure 19A is a conceptual diagram for determining a thermal setting and applying the thermal setting to a bed system to control the microclimate of the bed system and improve the user's sleep quality.
[0056] Figure 19B is for as Figure 19A shown, a flowchart of a process for controlling the microclimate of a bed system.
[0057] Figure 20 is a conceptual diagram of a process for determining microclimate temperature data of a bed system when a user is resting on the bed system.
[0058] Figures 21A to 21B is a conceptual diagram of a process for determining a thermal setting to be achieved during a user's subsequent sleep period based on processing data corresponding to the user's past sleep periods.
[0059] Figure 22 is for applying the thermal setting determined in the Figures 21A to 21B process to improve the user's sleep quality level during a subsequent sleep period, a conceptual diagram of the process.
[0060] Figure 23 is a conceptual diagram of a process for modeling microclimate temperature data collected at a bed system as a thermal setting.
[0061] Figure 24 is a flowchart of a process for determining microclimate temperature data of a bed system when a user is resting on the bed system.
[0062] Figure 25 is a flowchart of a process for determining a thermal setting to be achieved during a user's subsequent sleep period based on processing data corresponding to the user's past sleep periods.
[0063] Figure 26 is a flowchart of another process for determining a thermal setting to be achieved during a subsequent sleep period of a user based on processing data corresponding to the user's past sleep periods.
[0064] Figure 27 is a flowchart of a process for determining when to activate a thermal setting at a bed system and what thermal setting to activate at the bed system during a subsequent sleep period to improve the sleep quality level of a user.
[0065] Like reference numerals in the various figures indicate like elements. DETAILED DESCRIPTION
[0066] Systems and techniques for controlling the microclimate of a bed system to improve the sleep quality level of a user of the bed system are described generally herein. Data associated with a user's past sleep periods, such as microclimate temperature data and sleep quality data, can be processed by a computer system to identify microclimate conditions during the past sleep periods that caused the user to experience at least a threshold sleep quality level. The computer system can then model the microclimate temperature data of the identified past sleep periods to determine thermal settings to be achieved during a subsequent sleep period that reproduce the microclimate conditions during the identified past sleep periods. As a result of such techniques for controlling the microclimate conditions of a bed system during a subsequent sleep period, a user can improve and / or maintain their sleep quality.
[0067] Example air mattress hardware
[0068] Figure 1 An example air mattress system 100 including a bed 112 is shown. The bed 112 can be a mattress including at least one air chamber 114 surrounded by an elastic border 116 and encapsulated by a bed cover 118. The elastic border 116 can include any suitable material, such as foam. In some embodiments, the elastic border 116 can be combined with a top layer or multiple layers of foam ( Figure 1 not shown) to form an inverted foam basin. In other embodiments, the mattress structure can vary according to the needs of the application.
[0069] As Figure 1 shown, the bed 112 can be a two-chamber design having a first fluid chamber and a second fluid chamber, such as a first air chamber 114A and a second air chamber 114B. Sometimes, the bed 112 can include a chamber for use with a fluid other than air suitable for the application. For example, the fluid can include a liquid. In some embodiments, such as a twin bed or a child's bed, the bed 112 can include a single air chamber 114A or 114B or multiple air chambers 114A and 114B. Although not shown, sometimes the bed 112 can include additional air chambers.
[0070] The first air chamber 114A and the second air chamber 114B can be in fluid communication with the pump 120. The pump 120 can be in electrical communication with the remote controller 122 via the control box 124. The control box 124 can include a wired or wireless communication interface for communicating with one or more devices including the remote controller 122. The control box 124 can be configured to operate the pump 120 based on commands input by the user using the remote controller 122 to cause an increase and a decrease in the fluid pressure of the first air chamber 114A and the second air chamber 114B. In some specific embodiments, the control box 124 is integrated into the housing of the pump 120. Additionally, sometimes, the pump 120 can communicate wirelessly with a mobile device via the control box 124 (e.g., via a home network, WIFI, Bluetooth, or other wireless network). The mobile device can include, but is not limited to, the user's smart phone, mobile phone, laptop computer, tablet computer, computer, wearable device, home automation device, or other computing device. A mobile application can be presented at the mobile device and provide the user with functions for controlling the bed 112 and viewing information about the bed 112. The user can input commands in the mobile application presented at the mobile device. The input commands can be sent to the control box 124, which can operate the pump 120 based on the commands.
[0071] The remote controller 122 can include a display 126, an output selection mechanism 128, a pressure increase button 129, and a pressure decrease button 130. The remote controller 122 can include one or more additional output selection mechanisms and / or buttons. The display 126 can present information to the user about the settings of the bed 112. For example, the display 126 can present the pressure settings of both the first air chamber 114A and the second air chamber 114B or of one of the first air chamber 114A and the second air chamber 114B. Sometimes, the display 126 can be a touch screen and can receive input from the user indicating one or more commands to control the pressure in the first air chamber 114A and the second air chamber 114B and / or other settings of the bed 112.
[0072] The output selection mechanism 128 can allow a user to switch the airflow generated by the pump 120 between the first air chamber 114A and the second air chamber 114B, thereby enabling multiple air chambers to be controlled with a single remote control 122 and a single pump 120. For example, the output selection mechanism 128 can be a physical control (e.g., a switch or a button) or an input control presented on the display 126. Alternatively, a separate remote control unit can be provided for each of the air chambers 114A and 114B, and each remote control unit can include the ability to control multiple air chambers. The pressure increase button 129 and the pressure decrease button 130 can allow the user to increase or decrease the pressure in the air chamber selected by the output selection mechanism 128, respectively. Adjusting the pressure within the selected air chamber can cause a corresponding adjustment to the firmness of the corresponding air chamber. In some embodiments, the remote control 122 can be omitted or modified as appropriate for the application.
[0073] Figure 2 is a block diagram of examples of various components of an air mattress system. These components can be used in the exemplary air mattress system 100. The control box 124 can include a power supply 134, a processor 136, a memory 137, a switching mechanism 138, and an analog-to-digital (A / D) converter 140. The switching mechanism 138 can be, for example, a relay or a solid-state switch. In some embodiments, the switching mechanism 138 can be located in the pump 120 rather than in the control box 124. The pump 120 and the remote control 122 can communicate bidirectionally with the control box 124. The pump 120 includes a motor 142, a pump manifold 143, a safety valve 144, a first control valve 145A, a second control valve 145B, and a pressure transducer 146. The pump 120 is fluidly connected to the first air chamber 114A and the second air chamber 114B via a first tube 148A and a second tube 148B, respectively. The first control valve 145A and the second control valve 145B can be controlled by the switching mechanism 138 and are operable to regulate the fluid flow between the pump 120 and the first air chamber 114A and the second air chamber 114B, respectively.
[0074] In some embodiments, the pump 120 and the control box 124 can be provided and packaged as a single unit. In some embodiments, the pump 120 and the control box 124 can be provided as physically separate units. The control box 124, the pump 120, or both can be integrated in or contained within the bed frame, base, or bed support structure of the support bed 112. Sometimes, the control box 124, the pump 120, or both can be located outside the bed frame, base, or bed support structure (as Figure 1 shown in the example).
[0075] Figure 2 The air mattress system 100 in includes two air chambers 114A and 114B and Figure 1A single pump 120 of the bed 112 shown. However, other embodiments may include an air mattress system having two or more air chambers and one or more pumps incorporated into the air mattress system to control the air chambers. For example, separate pumps may be associated with each air chamber. As another example, a pump may be associated with multiple chambers. A first pump may be associated with an air chamber that extends longitudinally from the left side of the air mattress system 100 to the midpoint, and a second pump may be associated with an air chamber that extends longitudinally from the right side of the air mattress system 100 to the midpoint. Separate pumps may allow each air chamber to be inflated and / or deflated independently and / or simultaneously. Additional pressure transducers may also be incorporated into the air mattress system 100 such that separate pressure transducers may be associated with each air chamber.
[0076] As an illustrative example, in use, the processor 136 may transmit a pressure reduction command to one of the air chambers 114A or 114B, and the switch mechanism 138 may convert the low voltage command signal transmitted by the processor 136 into a higher operating voltage sufficient to operate the safety valve 144 of the pump 120 and open the corresponding control valve 145A or 145B. Opening the safety valve 144 may allow air to escape from the air chamber 114A or 114B through the corresponding air tube 148A or 148B. During deflation, the pressure transducer 146 may transmit a pressure reading to the processor 136 via the A / D converter 140. The A / D converter 140 may receive analog information from the pressure transducer 146 and may convert the analog information into digital information usable by the processor 136. The processor 136 may transmit a digital signal to the remote control 122 to update the display 126 to convey pressure information to the user. The processor 136 may also transmit a digital signal to other devices that communicate with the air mattress system, either wired or wirelessly, including but not limited to the mobile devices described herein. The user may then view the pressure information associated with the air mattress system at the device rather than at the remote control 122 or at the device together with the remote control.
[0077] As another example, the processor 136 may transmit an increase pressure command. The pump motor 142 may be energized in response to the increase pressure command and convey air through the air tube 148A or 148B into one of the designated air chambers 114A or 114B by electrically operating the corresponding valve 145A or 145B. When air is delivered to the designated air chamber 114A or 114B to increase the firmness of the air chamber, the pressure transducer 146 may sense the pressure within the pump manifold 143. The pressure transducer 146 may transmit the pressure reading to the processor 136 via the A / D converter 140. The processor 136 may use the information received from the A / D converter 140 to determine the difference between the actual pressure and the desired pressure in the air chamber 114A or 114B. The processor 136 may transmit a digital signal to the remote controller 122 to update the display 126.
[0078] Generally speaking, during the inflation or deflation process, the pressure sensed within the pump manifold 143 may provide an approximation of the actual pressure within the corresponding air chamber in fluid communication with the pump manifold 143. Example methods include shutting off the pump 120, allowing the pressure in the air chamber 114A or 114B and the pump manifold 143 to equalize, and then sensing the pressure within the pump manifold 143 using the pressure transducer 146. Providing a sufficient amount of time to allow the pressure in the pump manifold 143 and the chamber 114A or 114B to equalize can result in a pressure reading that is an accurate approximation of the actual pressure within the air chamber 114A or 114B. In some specific implementations, multiple pressure sensors (not shown) may be used to continuously monitor the pressure of the air chamber 114A and / or 114B. The pressure sensors may be located within the air chamber. The pressure sensors may also be fluidly connected to the air chamber, for example, along the air tubes 148A and 148B.
[0079] In some specific implementations, the information collected by the pressure transducer 146 can be analyzed to determine various states of a user lying on the bed 112. For example, the processor 136 can use the information collected by the pressure transducer 146 to determine the user's heart rate or respiratory rate. As an illustrative example, the user can lie on one side of the bed 112 that includes the chamber 114A. The pressure transducer 146 can monitor the pressure fluctuations in the chamber 114A, and this information can be used to determine the user's heart rate and / or respiratory rate. As another example, the collected data can be used to perform additional processing to determine the user's sleep state (e.g., awake, light sleep, deep sleep). For example, the processor 136 can determine when the user falls asleep and the various sleep states of the user during sleep (e.g., sleep stages). Based on the determined heart rate, respiratory rate, and / or sleep state of the user, the processor 136 can determine information regarding the user's sleep quality. The processor 136 can, for example, determine how well the user sleeps during a particular sleep cycle. The processor 136 can also determine the user's sleep cycle trend. Thus, the processor 136 can generate recommendations for improving the user's sleep quality and overall sleep cycle. The determined information regarding the user's sleep cycle (e.g., heart rate, respiratory rate, sleep state, sleep quality, suggestions for improving sleep quality, etc.) can be sent to the user's mobile device and presented in a mobile application, as described above.
[0080] Additional information associated with a user of the air mattress system 100 that can be determined using the information collected by the pressure transducer 146 includes user movement, presence on the surface of the bed 112, weight, arrhythmia, snoring, partner snoring, and apnea. One or more other health conditions of the user can also be determined based on the information collected by the pressure transducer 146. Taking user presence detection as an example, the pressure transducer 146 can be used to detect the presence of the user on the bed 112, for example, via total pressure change determination and / or via one or more of a respiratory rate signal, a heart rate signal, and / or other biometric signals. Detection of the presence of the user can facilitate adjustments made by the processor 136 to the settings of the bed 112 (e.g., adjusting the firmness to the user-preferred firmness setting when the user is present) and / or peripheral devices (e.g., turning off the lights, activating the heating or cooling system, etc. when the user is present).
[0081] For example, a simple pressure detection process can identify an increase in pressure as an indication of user presence. As another example, if the detected pressure increases above a specified threshold (to indicate that a person or other object of a certain weight is located on the bed 112), the processor 136 can determine user presence. As yet another example, the processor 136 can identify an increase in pressure in combination with detected slight, regular pressure fluctuations as corresponding to user presence. The presence of regular fluctuations can be identified as being caused by the user's breathing or heart rhythm (or both). Detection of breathing or a heartbeat can distinguish between a user being present on the bed and another object (e.g., a suitcase, a pet, a pillow, etc.) being placed on the bed.
[0082] In some specific implementations, pressure fluctuations can be measured at the pump 120. For example, one or more pressure sensors can be located in one or more inner cavities of the pump 120 to detect pressure fluctuations within the pump 120. Fluctuations detected at the pump 120 can indicate pressure fluctuations in the chambers 114A and / or 114B. One or more sensors located at the pump 120 can be in fluid communication with the chambers 114A and / or 114B, and the sensors can be used to determine the pressure within the chambers 114A and / or 114B. The control box 124 can be configured to determine at least one vital sign (e.g., heart rate, respiratory rate) based on the pressure within the chamber 114A or the chamber 114B.
[0083] The control box 124 can also analyze the pressure signals detected by one or more pressure sensors to determine the heart rate, respiratory rate, and / or other vital signs of a user lying or sitting on the chambers 114A and / or 114B. More specifically, when a user lies on the bed 112 and is located above the chamber 114A, each of the user's heartbeat, breathing, and other movements (e.g., hand, arm, leg, foot, or other whole-body movements) can generate a force on the bed 112, which is transmitted to the chamber 114A. As a result of this force input, waves can propagate through the chamber 114A and into the pump 120. The pressure sensors located at the pump 120 can detect the waves, and thus the pressure signals output by the sensors can indicate the heart rate, respiratory rate, or other information about the user.
[0084] Regarding the sleep state, the air mattress system 100 can determine the user's sleep state by using various biometric signals, such as the user's heart rate, breathing, and / or movement. When the user is sleeping, the processor 136 can receive one or more of the user's biometric signals (e.g., heart rate, breathing, movement, etc.) and can determine the user's current sleep state based on the received biometric signals. In some specific implementations, signals indicating pressure fluctuations in one or both of the chambers 114A and 114B can be amplified and / or filtered to allow for more precise detection of the heart rate and respiratory rate.
[0085] Sometimes, the processor 136 may receive additional biometric signals of the user from one or more other sensors or sensor arrays located on or otherwise integrated into the air mattress system 100. For example, one or more sensors may be attached to or removably attached to the top surface of the air mattress system 100 and configured to detect signals such as heart rate, respiratory rate, and / or movement. The processor 136 may combine the biometric signals received from the pressure sensor at the pump 120, the pressure transducer 146, and / or the sensors throughout the air mattress system 100 to generate accurate and more precise information about the user and their sleep quality.
[0086] Sometimes, the control box 124 may perform pattern recognition algorithms or other calculations based on the amplified and filtered pressure signals to determine the user's heart rate and / or respiratory rate. For example, the algorithm or calculation may be based on the assumption that the heart rate portion of the signal has a frequency in the range of 0.5 Hz - 4.0 Hz and the respiratory rate portion of the signal has a frequency in the range less than 1 Hz. Sometimes, the control box 124 may use one or more machine learning models to determine the user's health information. Training data including training pressure signals and expected heart rate and / or respiratory rate may be used to train the model. Sometimes, the control box 124 may determine the user's health information by using a look-up table corresponding to the sensed pressure signal.
[0087] The control box 124 may also be configured to determine other characteristics of the user based on the received pressure signals, such as blood pressure, tossing movement, rolling movement, limb movement, weight, presence or absence of the user, and / or the identity of the user.
[0088] For example, the pressure transducer 146 may be used to monitor the air pressure in the chambers 114A and 114B of the bed 112. If the user on the bed 112 does not move, the change in air pressure in the air chamber 114A or 114B may be relatively minimal and may be attributed to breathing and / or heartbeat. However, when the user on the bed 112 is moving, the air pressure in the mattress may fluctuate more. The pressure signal generated by the pressure transducer 146 and received by the processor 136 may be filtered and indicated as corresponding to movement, heartbeat, or breathing. The processor 136 may attribute such air pressure fluctuations to the user's sleep quality. Such attribution may be determined based on applying one or more machine learning models and / or algorithms to the pressure signal. For example, if the user frequently shifts and turns during a sleep cycle (e.g., compared to the historical trend of the user's sleep cycle), the processor 136 may determine that the user has experienced poor sleep during that particular sleep cycle.
[0089] In some specific implementations, instead of using the processor 136 to perform data analysis in the control box 124, a digital signal processor (DSP) can be provided to analyze the data collected by the pressure transducer 146. Alternatively, the collected data can be transmitted to a cloud-based computing system for remote analysis.
[0090] In some specific implementations, the exemplary air mattress system 100 further includes a temperature controller configured to increase, decrease, or maintain the temperature of the bed 112, for example, to make the user comfortable. For example, a pad (e.g., a cushion, a layer, etc.) can be placed on top of the bed 112 or be part of the bed, or can be placed on top of or be part of one or both of the chambers 114A and 114B. Air can be pushed through the pad and exhausted to cool the user lying on the bed 112. Additionally or alternatively, the pad can include heating elements for keeping the user warm. In some specific implementations, the temperature controller can receive temperature readings from the pad. The temperature controller can determine whether the temperature reading is less than or greater than a certain threshold range and / or value. Based on this determination, the temperature controller can actuate components to push air through the pad to cool the user or activate the heating elements. In some specific implementations, separate pads are used for different sides of the bed 112 (e.g., corresponding to the positions of the chambers 114A and 114B) to provide different temperature controls for different sides of the bed 112. Each pad can be selectively controlled by the temperature controller to provide each user's preferred cooling or heating on different sides of the bed 112. For example, a first user on the left side of the bed 112 may prefer to have the side of the bed 112 where they are located cooled at night, while a second user on the right side of the bed 112 may prefer to have the side of the bed 112 where they are located warmed at night.
[0091] In some specific implementations, a user of the air mattress system 100 can use an input device, such as the remote control 122 or a mobile device as described above, to input the desired temperature of the surface of the bed 112 (or a part of the surface of the bed 112, such as the foot area, the lower back or lumbar area, the shoulder area, and / or the head area of the bed 112). The desired temperature can be encapsulated in a command data structure that includes the desired temperature and also identifies the temperature controller as the desired component to be controlled. The command data structure can then be sent to the processor 136 via Bluetooth or another suitable communication protocol (e.g., WIFI, local area network, etc.). In various examples, the command data structure is encrypted before being sent. The temperature controller can then configure its elements to increase or decrease the temperature of the pad according to the temperature input provided by the user at the remote control 122.
[0092] In some specific implementations, data can be sent back from the components to the processor 136 or to one or more display devices, such as the display 126 of the remote control 122. For example, the current temperature determined by the sensor element of the temperature controller, the pressure of the bed, the current position of the base, or other information can be sent to the control box 124. The control box 124 can send this information to the remote control 122 for display to the user (e.g., on the display 126). As described above, the control box 124 can also send the received information to the mobile device for display to the user in a mobile application or other graphical user interface (GUI).
[0093] In some specific implementations, the exemplary air mattress system 100 further includes an adjustable base and a joint motion controller configured to adjust the position of the bed 112 by adjusting the adjustable base that supports the bed. For example, the joint motion controller can adjust the bed 112 from a horizontal position to a position where the head portion of the mattress of the bed is tilted upward (e.g., to facilitate the user sitting up in bed and / or watching TV). The bed 112 can also include a plurality of independently articulable sections. As an illustrative example, the bed 112 can include one or more of a head portion, a lower back / lumbar portion, a leg portion, and / or a foot portion, all of which can be articulated independently. As another example, the portions of the bed 112 corresponding to the positions of the chambers 114A and 114B can be articulated independently of each other to allow one user located on the surface of the bed 112 to rest in a first position (e.g., a horizontal position or other desired position), while a second user rests in a second position (e.g., a reclined position with the head lifted at an angle starting from the waist or other desired position). Separate positions can also be set for two different beds (e.g., two double beds placed side by side). The base of the bed 112 can include more than one independently adjustable area.
[0094] Sometimes, the bed 112 can be adjusted to one or more user-defined positions based on user input and / or user preferences. For example, the bed 112 can be automatically adjusted to one or more user-defined settings by the joint motion controller. As another example, the user can control the joint motion controller to adjust the bed 112 to one or more user-defined positions. Sometimes, the bed 112 can be adjusted to one or more positions that can provide improved or otherwise enhanced sleep and sleep quality for the user. For example, when one or more sensors of the air mattress system 100 detect that a user sleeping on one side of the bed 112 is snoring, the head on that side of the bed 112 can be automatically articulated by the joint motion controller. Thus, the user's snoring can be reduced so that the snoring does not wake up another user sleeping on the bed 112.
[0095] In some specific implementations, one or more devices that communicate with the joint motion controller or the joint motion controller itself can be used to adjust the bed 112. For example, a user can use the remote control 122 described above to change the position of one or more parts of the bed 112. The user can also use a mobile application or other graphical user interface presented on the user's mobile computing device to adjust the bed 112.
[0096] The joint motion controller can also provide different degrees of massage to one or more parts of the bed 112 for one or more users. The user can use the remote control 122 and / or a mobile device that communicates with the air mattress system 100 to adjust one or more massage settings of the parts of the bed 112.
[0097] Example of a bed in a bedroom environment
[0098] Figure 3 An example environment 300 including a bed 302 that communicates with devices located in and around a home is shown. In the example shown, the bed 302 includes a pump 304 (as described above) for controlling the air pressure within two air chambers 306a and 306b. The pump 304 additionally includes a circuit 334 for controlling the inflation and deflation functions performed by the pump 304. The circuit 334 is programmed to detect air pressure fluctuations in the air chambers 306a - 306b and use the detected fluctuations to identify the presence of the user 308 in the bed, the user's sleep state, movement, and biometric signals (e.g., heart rate, respiratory rate). The detected fluctuations can also be used to detect when the user 308 snores and whether the user 308 suffers from sleep apnea or other health conditions. The detected fluctuations can also be used to determine the overall sleep quality of the user 308.
[0099] In the example shown, the pump 304 is located within the support structure of the bed 302, and the control circuit 334 for controlling the pump 304 is integrated with the pump 304. In some specific implementations, the control circuit 334 is physically separated from the pump 304 and communicates with the pump 304 wirelessly or wired. In some specific implementations, the pump 304 and / or the control circuit 334 are located outside the bed 302. In some specific implementations, various control functions can be performed by systems located at different physical locations. For example, the circuit for controlling the operation of the pump 304 can be located within the pump housing of the pump 304, while the control circuit 334 for performing other functions associated with the bed 302 can be located in another part of the bed 302 or outside the bed 302. The control circuit 334 located within the pump 304 can also communicate with the control circuit 334 at a remote location via a LAN or WAN (e.g., the Internet). The control circuit 334 can also be included in Figure 1 and Figure 2 the control box 124.
[0100] In some specific implementations, in addition to, or as a supplement to, the pump 304 and the control circuit 334, one or more devices can be utilized to identify the presence of the user 308 in the bed, the sleep state, movement, biometric signals, and other information about the user (e.g., health-related sleep quality). For example, the bed 302 can include a second pump, with each pump connected to a respective one of the air chambers 306a - 306b. For example, the pump 304 can be in fluid communication with the air chamber 306b to control the inflation and deflation of the air chamber 306b and to detect user signals of a user located above the air chamber 306b. The second pump can be in fluid communication with the air chamber 306a and be used to control the inflation and deflation of the air chamber 306a and to detect user signals of a user located above the air chamber 306a.
[0101] As another example, the bed 302 can include one or more pressure-sensitive pads or surface portions that are operable to detect movement, including the presence of the user, movement, breathing, and heart rate. The first pressure-sensitive pad can be incorporated into the surface of the bed 302, above the left portion of the bed 302, where the first user typically lies during sleep; and the second pressure-sensitive pad can be incorporated into the surface of the bed 302, above the right portion of the bed 302, where the second user typically lies. The movement detected by the pressure-sensitive pad or surface portion can be used by the control circuit 334 to identify the user's sleep state, presence in the bed, or biometric signals of each user. The pressure-sensitive pad can also be removable rather than incorporated into the surface of the bed 302.
[0102] The bed 302 can also include one or more temperature sensors and / or sensor arrays that are operable to detect the temperature in the microclimate of the bed 302. The control circuit 334 can use the temperatures detected in different microclimates of the bed 302 to determine one or more modifications to the sleep environment of the user 308. For example, a temperature sensor near the core region where the user 308 of the bed 302 rests can detect a high temperature value. Such a high temperature value can indicate that the user 308 is warm. To lower the user's body temperature in such a microclimate, the control circuit 334 can determine that the cooling element of the bed 302 can be activated. As another example, the control circuit 334 can determine that the cooling unit in the home can be automatically activated to cool the ambient temperature in the environment 300.
[0103] The control circuit 334 can also process combinations of signals sensed by different sensors integrated into, located on, or otherwise communicating with the bed 112. For example, pressure and temperature signals can be processed by the control circuit 334 to more accurately determine one or more health conditions of the user 308 and / or the sleep quality of the user 308. Acoustic signals detected by one or more microphones or other audio sensors can also be used in combination with pressure or motion sensors to determine when the user 308 is snoring, whether the user 308 has sleep apnea, and / or the overall sleep quality of the user 308. Combinations of one or more other sensed signals are also possible for the control circuit 334 to more accurately determine one or more health and / or sleep conditions of the user 308.
[0104] Accordingly, information (e.g., motion information) detected by one or more sensors or other components of the bed 112 can be processed by the control circuit 334 and provided to one or more user devices, such as the user device 310, for presentation to the user 308 or other users. The information can be presented in a mobile application or other graphical user interface at the user device 310. The user 308 can view different information processed and / or determined by the control circuit 334 and based on signals detected by components of the bed 302. For example, the user 308 can view their overall sleep quality during a particular sleep cycle (e.g., the previous night), historical trends in sleep quality, and health information. The user 308 can also use the mobile application presented at the user device 310 to adjust one or more settings of the bed 302 (e.g., increase or decrease the pressure in one or more regions of the bed 302, tilt or lower different regions of the bed 302, turn on or off the massage feature of the bed 302, etc.).
[0105] In Figure 3In the example shown, the user device 310 is a mobile phone; however, the user device 310 can also be any one of the following: a tablet computer, a personal computer, a laptop computer, a smart phone, a smart TV (e.g., TV 312), a home automation device, or other user devices capable of wired or wireless communication with the control circuit 334, one or more other components of the bed 302, and / or one or more devices in the environment 300. The user device 310 can communicate with the control circuit 334 of the bed 302 via a network or via direct point-to-point communication. For example, the control circuit 334 can be connected to a LAN (e.g., via a WIFI router) and communicate with the user device 310 via the LAN. As another example, both the control circuit 334 and the user device 310 can be connected to the Internet and communicate via the Internet. For example, the control circuit 334 can be connected to the Internet via a WIFI router, and the user device 310 can be connected to the Internet via communication with a cellular communication system. As another example, the control circuit 334 can communicate directly with the user device 310 via a wireless communication protocol (such as Bluetooth). As yet another example, the control circuit 334 can communicate with the user device 310 via a wireless communication protocol (e.g., ZigBee, Z-Wave, infrared, or another wireless communication protocol suitable for the application). As another example, the control circuit 334 can communicate with the user device 310 via a wired connection (such as a USB connector, serial / RS232, or another wired connection suitable for the application).
[0106] As mentioned above, the user device 310 can display various information and statistics related to sleep or the interaction between the user 308 and the bed 302. For example, the user interface displayed by the user device 310 can present information that includes the amount of sleep of the user 308 over a period of time (e.g., one night, one week, one month, etc.), the amount of deep sleep, the ratio of deep sleep to restless sleep, the elapsed time between when the user 308 gets into bed and falls asleep, the total amount of time spent on the bed 302 within a given period, the heart rate over a period of time, the breathing rate over a period of time, or other information related to the user interaction between the user 308 or one or more other users and the bed 302. In some specific implementations, the information of multiple users can be presented on the user device 310. For example, the information of the first user located above the air chamber 306a can be presented together with the information of the second user located above the air chamber 306b. In some specific implementations, the information presented on the user device 310 can vary according to the age of the user 308, such that the presented information evolves as the user 308 ages.
[0107] The user device 310 can also be used as an interface to the control circuit 334 of the bed 302 to allow the user 308 to input information and / or adjust one or more settings of the bed 302. The information input by the user 308 can be used by the control circuit 334 to provide better information to the user 308 or various control signals for controlling the functions of the bed 302 or other devices. For example, the user 308 can input information such as the user 308's weight, height, and age. The control circuit 334 can use this information to provide the user 308 with a comparison of the user 308's tracked sleep information with the sleep information of other people having similar weight, height, and / or age to the user 308. The control circuit 308 can also accurately determine the overall sleep quality and / or health of the user 308 based on the information detected by the components (e.g., sensors) of the bed 302 and use this information.
[0108] The user 308 can also use the user device 310 as an interface for controlling the air pressure of the air chambers 306a and 306b, the various reclined or tilted positions of the bed 302, the temperature of one or more surface temperature control devices of the bed 302, or for allowing the control circuit 334 to generate control signals for other devices (as described below).
[0109] The control circuit 334 can also communicate with other devices or systems, including but not limited to a television 312, a lighting system 314, a thermostat 316, a security system 318, home automation devices, and / or other household devices (e.g., an oven 322, a coffee maker 324, a lamp 326, a night light 328). Other examples of devices and / or systems include a system for controlling blinds 330, a device for detecting or controlling the state of one or more doors 332 (e.g., detecting whether a door is open, detecting whether a door is locked, or automatically locking a door), and a system for controlling a garage door 320 (e.g., a control circuit 334 integrated with a garage door opener for identifying the open or closed state of the garage door 320 and for causing the garage door opener to open or close the garage door 320). The communication between the control circuit 334 and other devices can be carried out via a network (e.g., a LAN or the Internet) or point-to-point communication (e.g., Bluetooth, radio communication, or a wired connection). The control circuits 334 of different beds 302 can also communicate with different groups of devices. For example, a crib may not communicate with an adult bed and / or control the same devices. In some embodiments, the bed 302 can evolve with the age of the user such that the control circuit 334 of the bed 302 communicates with different devices according to the age of the user of the bed 302.
[0110] The control circuit 334 can receive information and inputs from other devices / systems and use the received information and inputs to control the actions of the bed 302 and / or other devices. For example, the control circuit 334 can receive information from the thermostat 316 indicating the current ambient temperature of the house or room in which the bed 302 is located. The control circuit 334 can use the received information (and other information, such as signals detected by one or more sensors of the bed 302) to determine whether the temperature of all or part of the surface of the bed 302 should be increased or decreased. The control circuit 334 can then cause the heating or cooling mechanism of the bed 302 to increase or decrease the temperature of the surface of the bed 302. The control circuit 334 can also cause the heating or cooling unit of the house or room in which the bed 302 is located to increase or decrease the ambient temperature around the bed 302. Thus, by adjusting the temperature of the bed 302 and / or the room in which the bed 302 is located, the user 308 can experience better sleep quality and comfort.
[0111] For example, the user 308 can indicate a desired sleep temperature of 74 degrees Fahrenheit, while a second user of the bed 302 indicates a desired sleep temperature of 72 degrees Fahrenheit. The thermostat 316 can send a signal indicating the room temperature to the control circuit 334 at a predetermined time. The thermostat 316 can also transmit a continuous stream of detected room temperature values to the control circuit 334. The signal sent can indicate to the control circuit 334 that the current temperature of the bedroom is 72 degrees Fahrenheit. The control circuit 334 can identify that the user 308 has indicated a desired sleep temperature of 74 degrees Fahrenheit and can accordingly transmit a control signal to a heating pad on the user 308 side of the bed to increase the temperature of the portion of the surface of the bed 302 where the user 308 is located until the desired temperature of the user 308 is reached. Additionally, the control circuit 334 can transmit control signals to the thermostat 316 and / or the heating unit in the house to increase the temperature of the room in which the bed 302 is located.
[0112] The control circuit 334 can generate control signals to control other devices and propagate the control signals to other devices. The control signals can be generated based on information collected by the control circuit 334, including information related to user 308 and / or one or more other users' interactions with the bed 302. Information collected from other devices other than the bed 302 can also be used when generating the control signals. For example, when generating control signals for various devices that communicate with the control circuit 334 of the bed 302, information related to environmental events (such as ambient temperature, ambient noise level, and ambient light level), time of day, time of year, day of the week, or other information can be used.
[0113] For example, information about the time of day can be combined with information about the movement of user 308 and the presence of the user in bed to generate a control signal for lighting system 314. Control circuit 334 can determine when user 308 is in bed 302 and when user 308 falls asleep based on the detected pressure signal of user 308 on bed 302. Once control circuit 334 determines that the user has fallen asleep, control circuit 334 can send a control signal to lighting system 314 to turn off the lights in the room where bed 302 is located, lower the blinds 330 in the room, and / or activate the night light 328. Additionally, control circuit 334 can receive an input (e.g., via user device 310) from user 308 indicating the time when user 308 wants to wake up. When that time approaches, control circuit 334 can send a control signal to one or more devices in environment 300 to control the devices that can wake up user 308. For example, the control signal can be transmitted to a home automation device that controls multiple devices in the home. Control circuit 334 can instruct the home automation device to raise the blinds 330, turn off the night light 328, turn on the lighting under bed 302, start the coffee maker 324, change the temperature inside the house via thermostat 316, or perform some other home automation. The home automation device can also be instructed to activate an alarm that can wake up user 308. Sometimes, user 308 can input information at user device 310 that indicates actions that the home automation device or other devices in environment 300 can take.
[0114] In some embodiments, in addition to, or as a supplement to, providing control signals for other devices, control circuit 334 can provide the collected information (e.g., information related to user movement, presence in bed, sleep state, or biometric signals) to one or more other devices to allow the one or more other devices to utilize the collected information in generating control signals. For example, control circuit 334 of bed 302 can provide information related to the user interaction of user 308 with bed 302 to a central controller (not shown), which can use the provided information to generate control signals for various devices including bed 302.
[0115] The central controller can be, for example, a hub device that provides various information about user 308 and control information associated with bed 302 and other devices in the house. The central controller can include sensors that detect signals, and control circuitry 334 and / or the central controller can use these signals to determine information about user 308 (e.g., biometric or other health data, sleep quality). The sensors can detect signals including, such as, ambient light, temperature, humidity, volatile organic compounds, pulse, motion, and audio. These signals can be combined with signals detected by sensors of bed 302 to determine accurate information about the health and sleep quality of user 308. The central controller can provide control for bed 302 (e.g., user-defined, preset, automatic, user-initiated), determine and view sleep quality and health information, smart alarm, speaker, or other home automation devices, smart photo frame, night light, and one or more mobile applications that user 308 can install and use at the central controller. The central controller can include a display screen that outputs information and receives user input. The display can output information such as the health of user 308, sleep quality, weather, security integration features, lighting integration features, heating and cooling integration features, and other controls that automate devices in the house. The central controller can operate to provide user 308 with functionality and control over a variety of different types of devices in the house as well as bed 302 of user 308.
[0116] As Figure 3As an illustrative example, the control circuit 334 integrated with the pump 304 can detect characteristics of the mattress of the bed 302, such as an increase in pressure in the air chamber 306b, and use the detected increase to determine the presence of the user 308 on the bed 302. The control circuit 334 can also identify a heart rate or a respiration rate for the user 308 to identify that the increased pressure is due to a person sitting on, lying on, or resting on the bed 302, rather than an inanimate object (e.g., a suitcase) being placed on the bed 302. In some embodiments, the information indicating the presence of the user on the bed can be combined with other information to identify the current or future possible states of the user 308. For example, the presence of the user detected at 11:00 a.m. on the bed can indicate that the user is sitting on the bed (e.g., tying shoelaces, or reading a book) and does not intend to sleep, while the presence of the user detected at 10:00 p.m. on the bed can indicate that the user 308 is lying on the bed at night and intends to fall asleep soon. As another example, if the control circuit 334 detects that the user 308 has left the bed 302 at 6:30 a.m. (e.g., indicating that the user 308 has woken up for the day), and then detects the presence of the user 308 on the bed 302 at 7:30 a.m., the control circuit 334 can use this information that the newly detected presence is likely to be temporary (e.g., when the user 308 is tying shoelaces before going to work), rather than an indication that the user 308 intends to stay on the bed 302 for an extended period of time.
[0117] If the control circuit 334 determines that the user 308 is likely to stay on the bed 302 for an extended period of time, the control circuit 334 can determine one or more home automation controls that can assist the user 308 in falling asleep and experiencing improved sleep quality throughout the user 308's sleep cycle. For example, the control circuit 334 can communicate with the security system 318 to ensure that the doors are locked. The control circuit 334 can communicate with the oven 322 to ensure that the oven 322 is turned off. The control circuit 334 can also communicate with the lighting system 314 to dim or turn off the lights in the room where the bed 302 is located and / or throughout the house, and the control circuit 334 can communicate with the thermostat 316 to ensure that the house is at the desired temperature of the user 308. The control circuit 334 can also determine one or more adjustments that can be made to the bed 302 to facilitate the user 308 in falling asleep and staying asleep (e.g., changing the position of one or more areas of the bed 302, warming the feet, massage features, pressure / firmness of one or more areas of the bed 302, etc.).
[0118] In some specific implementations, the control circuit 334 can use the collected information (including information related to the user interaction between the user 308 and the bed 302, environmental information, time information, and user input) to identify the usage pattern of the user 308. For example, the control circuit 334 can use the information collected over a period of time indicating the presence and sleep state of the user 308 in the bed to identify the sleep pattern of the user. The control circuit 334 can, based on the information collected over a week or different time periods indicating the user presence and biometrics of the user 308, identify that the user 308 usually goes to bed between 9:30 PM and 10:00 PM, usually falls asleep between 10:00 PM and 11:00 PM, and usually wakes up between 6:30 AM and 6:45 AM. The control circuit 334 can use the identified pattern of the user 308 to better process and identify the user interaction with the bed 302.
[0119] Given the above examples of the user presence, sleep, and wake-up patterns of the user 308 in the bed, if the user 308 is detected to be on the bed 302 at 3:00 PM, the control circuit 334 can determine that the presence of the user 308 on the bed 302 is temporary and use this determination to generate control signals different from when the control circuit 334 determines that the user 308 is lying in the bed at night (e.g., at 3:00 PM, the head area of the bed 302 can be raised to facilitate reading or watching TV on the bed 302, while at night, the bed 302 can be adjusted to a horizontal position to facilitate falling asleep). As another example, if the control circuit 334 detects that the user 308 gets up at 3:00 AM, the control circuit 334 can use the identified pattern of the user 308 to determine that the user has gotten up temporarily (e.g., to use the toilet, have a glass of water). The control circuit 334 can turn on the under-bed lighting to help the user 308 move carefully around the bed 302 and the room. In contrast, if the control circuit 334 identifies that the user 308 gets up from the bed 302 at 6:40 AM, the control circuit 334 can determine that the user 308 has woken up and generate a different set of control signals (e.g., the control circuit 334 can turn on the lamp 326 near the bed 302 and / or raise the blinds 330). For other users, getting up at 3:00 AM can be the normal wake-up time, and the control circuit 334 can learn and respond accordingly. Additionally, if the bed 302 is used by two users, the control circuit 334 can learn and respond to the patterns of each of the two users.
[0120] The bed 302 can also generate control signals based on communication with one or more devices. As an illustrative example, the control circuit 334 can receive an indication that the television 312 is turned on from the television 312. If the television 312 is located in a different room from the bed 302, the control circuit 334 can generate a control signal to turn off the television 312 when it determines that the user 308 has gone to bed or remains in the room of the bed 302. If the presence of the user 308 on the bed 302 is detected during a specific time range (e.g., between 8:00 p.m. and 7:00 a.m.) and the duration is longer than a threshold time period (e.g., 10 minutes), the control circuit 334 can determine that the user 308 is in bed at night. If the television 312 is on, as described above, the control circuit 334 can generate a control signal to turn off the television 312. The control signal can be sent to the television (e.g., via a directional communication link or via a network such as WIFI). As another example, the control circuit 334 can generate a control signal to reduce the volume of the television 312 by a predetermined amount instead of turning off the television 312 in response to detecting the presence of the user in bed.
[0121] As another example, when it is detected that the user 308 has left the bed 302 during a specified time range (e.g., between 6:00 a.m. and 8:00 a.m.), the control circuit 334 can generate a control signal to turn on the television 312 and tune it to a pre-specified channel (e.g., the user 308 indicates a preference to watch the morning news when getting up). The control circuit 334 can generate the control signal accordingly and send it to the television 312 (the control signal can be stored in the control circuit 334, the television 312, or another location). As another example, when it is detected that the user 308 has gotten up to start the day's work, the control circuit 334 can generate and send a control signal to turn on the television 312 and start playing a previously recorded program from a digital video recorder (DVR) that communicates with the television 312.
[0122] As another example, if the television 312 is in the same room as the bed 302, the control circuit 334 may not turn off the television 312 in response to detecting the presence of the user in the bed. Instead, the control circuit 334 may generate and send a control signal to turn off the television 312 in response to determining that the user 308 is sleeping. For example, the control circuit 334 may monitor biometric signals of the user 308 (e.g., movement, heart rate, respiratory rate) to determine that the user 308 has fallen asleep. Upon detecting that the user 308 is sleeping, the control circuit 334 generates and sends a control signal to turn off the television 312. As another example, the control circuit 334 may generate a control signal to turn off the television 312 after a threshold period of time has elapsed since the user 308 has fallen asleep (e.g., 10 minutes after the user has fallen asleep). As another example, after determining that the user 308 is asleep, the control circuit 334 generates a control signal to lower the volume of the television 312. As yet another example, the control circuit 334 generates and sends a control signal to gradually lower the volume of the television over a period of time and then turn off the television in response to determining that the user 308 is asleep. Any of the control signals described above with reference to the television 312 may also be determined by the central controller described previously.
[0123] In some specific implementations, the control circuit 334 may similarly interact with other media devices, such as a computer, a tablet computer, a mobile phone, a smart phone, a wearable device, a stereo system, etc. For example, upon detecting that the user 308 is sleeping, the control circuit 334 may generate a control signal and send it to the user device 310 to cause the user device 310 to turn off or lower the volume of a video or audio file being played by the user device 310.
[0124] The control circuit 334 can additionally communicate with the lighting system 314, receive information from the lighting system 314, and generate control signals for controlling the functions of the lighting system 314. For example, when the presence of a user on the bed 302 is detected during a specific time frame (e.g., between 8:00 p.m. and 7:00 a.m.) with a duration longer than a threshold time period (e.g., 10 minutes), the control circuit 334 of the bed 302 can determine that the user 308 is in bed at night and generate a control signal to turn off the lights in one or more rooms outside the room where the bed 302 is located. The control circuit 334 can generate and send a control signal to turn off the lights in all common rooms but not in other bedrooms. As another example, the control signal can indicate that the lights in all rooms except the room where the bed 302 is located will be turned off, while one or more lights outside the house containing the bed 302 will be turned on. The control circuit 334 can generate and send a control signal to turn on the night light 328 in response to determining the presence of the user 308 in bed or the user 308 being asleep. The control circuit 334 can also generate a first control signal for turning off a first group of lights (e.g., the lights in common rooms) in response to detecting the presence of the user in bed and generate a second control signal for turning off a second group of lights (e.g., the lights in the room where the bed 302 is located) when detecting that the user 308 is asleep.
[0125] In some specific implementations, in response to determining that the user 308 is in bed at night, the control circuit 334 of the bed 302 can generate a control signal to cause the lighting system 314 to implement a sunset lighting scenario in the room where the bed 302 is located. The sunset lighting scenario can include, for example, dimming the lights (either gradually over time or suddenly) in combination with changing the color of the light in the bedroom environment, such as adding an amber color to the lighting in the bedroom. When the control circuit 334 has determined that the user 308 is in bed at night, the sunset lighting scenario can help the user 308 fall asleep. Sometimes, the control signal can cause the lighting system 314 to dim the lights in the bedroom environment or change the color of the lights, but not both.
[0126] When user 308 wakes up in the morning, control circuit 334 can also implement a sunrise lighting scheme. Control circuit 334 can determine that user 308 has woken up on that day, for example, by detecting that user 308 has left bed 302 (e.g., is no longer present on bed 302) during a specified time range (e.g., between 6:00 a.m. and 8:00 a.m.). Control circuit 334 can also monitor the movement, heart rate, respiration rate, or other biometric signals of user 308 to determine whether user 308 is awake or waking up, even if user 308 has not yet gotten out of bed. If control circuit 334 detects that user 308 is awake or wakes up during the specified time frame, then control circuit 334 can determine that user 308 has woken up on that day. The specified time frame can be based, for example, on previously recorded information about the presence of the user in bed over a period of time (e.g., two weeks), which indicates that user 308 typically wakes up between 6:30 a.m. and 7:30 a.m. In response to control circuit 334 determining that user 308 has woken up, control circuit 334 can generate a control signal to cause lighting system 314 to implement a sunrise lighting scheme in the bedroom where bed 302 is located. The sunrise lighting scheme can include, for example, turning on the lights (e.g., light 326 or other lights in the bedroom). The sunrise lighting scheme can also include gradually increasing the light level in the room where bed 302 is located (or one or more other rooms). The sunrise lighting scheme can also include turning on only lights of a specific color. The sunrise lighting scheme can include illuminating the bedroom with blue light to gently help user 308 wake up and become active.
[0127] Control circuit 334 can also generate different control signals for controlling the actions of components based on the detected time of day of user interaction with bed 302. For example, control circuit 334 can use historical user interaction information to determine that user 308 typically goes to sleep between 10:00 p.m. and 11:00 p.m. on weekdays and typically wakes up between 6:30 a.m. and 7:30 a.m. If user 308 is detected as getting out of bed at 3:00 a.m. (e.g., turning on the lights that lead user 308 to the bathroom or kitchen), then control circuit 334 can use this information to generate a first set of control signals for controlling lighting system 314, and if user 308 is detected as getting out of bed after 6:30 a.m., then generate a second set of control signals for controlling lighting system 314.
[0128] In some specific implementations, if user 308 is detected as waking up before the designated morning wake-up time of user 308, the control circuit 334 can cause the lighting system 314 to turn on a dimmer light than the light turned on by the lighting system 314 when user 308 is detected as waking up after the designated morning wake-up time. Causing the lighting system 314 to turn on a dim light only when user 308 wakes up at night (e.g., before user 308's normal wake-up time) can prevent other occupants of the house from waking up due to the light, while still allowing user 308 to see to reach their destination in the house.
[0129] Historical user interaction information about the interaction between user 308 and the bed 302 can be used to identify user sleep and wake time frames. For example, the time of user presence in bed and sleep time can be determined for a set period (e.g., two weeks, one month, etc.). The control circuit 334 can identify the typical time range or time frame when user 308 goes to bed, the typical time frame when user 308 falls asleep, and the typical time frame when user 308 wakes up (and in some cases, different time frames for when user 308 wakes up and when user 308 actually gets out of bed). Buffer times can be added to these time frames. For example, if the user is identified as typically going to bed between 10:00 PM and 10:30 PM, a half-hour buffer can be added in each direction to the time frame, such that any detection of the user going to bed between 9:30 PM and 11:00 PM is interpreted as user 308 going to bed at night. As another example, detecting the presence of user 308 in bed starting from a half-hour before the earliest typical time when user 308 goes to bed and extending until user 308's typical wake-up time (e.g., 6:30 AM) can be interpreted as user 308 going to bed at night. For example, if user 308 typically goes to bed between 10:00 PM and 10:30 PM and the presence of user 308 in bed is sensed at 12:30 AM on a certain night, this can be interpreted as user 308 going to bed at night, even though this is outside the typical time frame for user 308 to go to bed, because it occurs before user 308's normal wake-up time. In some specific implementations, different time frames are identified for different times of the year (e.g., earlier bedtime in winter compared to summer) or different times of the week (e.g., user 308 wakes up earlier on weekdays than on weekends).
[0130] The control circuit 334 can distinguish between a user 308 being in bed for a long period (e.g., overnight) and a user being in bed for a shorter period (e.g., taking a nap) by sensing the duration of the user 308's presence (e.g., by detecting pressure and / or temperature signals of the user 308 on the bed 302 through sensors integrated into the bed 302). In some examples, the control circuit 334 can distinguish between a user 308 being in bed for a long period (e.g., overnight) or a short period (e.g., taking a nap) by sensing the duration of the user 308's sleep. The control circuit 334 can set a time threshold such that if the time the user 308 is sensed on the bed 302 is longer than the threshold, the user 308 is considered to have gone to bed for the night. In some examples, the threshold can be about 2 hours, such that if the user 308 is sensed on the bed 302 for more than 2 hours, the control circuit 334 registers it as an extended sleep event. In other examples, the threshold can be greater than or less than two hours. The threshold can be determined based on historical trends indicating how long the user 302 typically sleeps or stays in bed 302.
[0131] The control circuit 334 can detect repeated extended sleep events to automatically determine the typical bedtime range of the user 308 without the user 308 having to input a bedtime range. This can allow the control circuit 334 to accurately estimate when the user 308 is likely to go to bed for an extended sleep event, regardless of whether the user 308 typically goes to bed using a traditional or non - traditional sleep schedule. The control circuit 334 can then use the knowledge of the user 308's bedtime range to control one or more components (including components of the bed 302 and / or non - bed peripheral devices) based on the sensed presence in bed during or outside of the bedtime range.
[0132] The control circuit 334 can automatically determine the bedtime range of the user 308 without user input. The control circuit 334 can also automatically and in combination with user input (e.g., using signals sensed by sensors of the bed 302 and / or a central controller) determine the bedtime range. The control circuit 334 can directly set the bedtime range based on user input. The control circuit 334 can associate different bedtimes with different days of the week. In each of these examples, the control circuit 334 can control components (e.g., lighting system 314, thermostat 316, security system 318, oven 322, coffee maker 324, lamp 326, night light 328) based on the sensed presence in bed and the bedtime range.
[0133] The control circuit 334 can also determine a control signal to be sent to the thermostat 316 based on the user's input preferences and / or to maintain an improved or preferred sleep quality of the user 308. For example, the control circuit 334 can determine that the user 308 experiences their best sleep when the bedroom is at 74 degrees Fahrenheit based on the user 308's historical sleep patterns and quality and by applying a machine learning model. The control circuit 334 can receive a temperature signal indicating the temperature in the bedroom from devices and / or sensors in the bedroom. When the temperature is below 74 degrees Fahrenheit, the control circuit 334 can determine a control signal that causes the thermostat 316 to activate the heating unit to raise the temperature in the bedroom to 74 degrees Fahrenheit. When the temperature is above 74 degrees Fahrenheit, the control circuit 334 can determine a control signal that causes the thermostat 316 to activate the cooling unit to lower the temperature back to 74 degrees Fahrenheit. Sometimes, the control circuit 334 can determine a control signal that causes the thermostat 316 to maintain the bedroom within a temperature range designed to keep the user 308 in a particular sleep state and / or transition to the next preferred sleep state.
[0134] Similarly, the control circuit 334 can generate control signals to cause the heating or cooling elements on the surface of the bed 302 to change temperature at different times, or in response to user interaction with the bed 302, at different pre-programmed times, based on user preferences, and / or in response to detecting the microclimate temperature of the user 308 on the bed 302. For example, when it is detected that the user 308 has fallen asleep, the control circuit 334 can activate the heating element to raise the temperature of one side of the surface of the bed 302 to 73 degrees Fahrenheit. As another example, when it is determined that the user 308 has gotten out of bed for the day, the control circuit 334 can turn off the heating or cooling elements. The user 308 can pre-program various times when the temperature at the bed surface should increase or decrease. As another example, a temperature sensor on the bed surface can detect the microclimate of the user 308. When the detected microclimate drops below a predetermined threshold temperature, the control circuit 334 can activate the heating element to raise the body temperature of the user 308, thereby increasing the comfort of the user 308, maintaining the sleep cycle, transitioning the user 308 to the next preferred sleep state, and / or maintaining or improving the sleep quality of the user 308.
[0135] In response to detecting the presence of the user in the bed and / or that the user 308 is sleeping, the control circuit 334 can also cause the thermostat 316 to change the temperature in different rooms to different values. Other control signals are possible and can be based on user preferences and user input. Additionally, the control circuit 334 can receive temperature information from the thermostat 316 and use that information to control the functions of the bed 302 or other devices (e.g., adjust the temperature of the heating elements (such as foot warmers) of the bed 302). The control circuit 334 can also generate and send control signals for controlling other temperature control systems, such as floor heating elements in the bedroom or other rooms.
[0136] The control circuit 334 can communicate with the security system 318, receive information from the security system 318, and generate control signals for controlling the functions of the security system 318. For example, in response to detecting that the user 308 has gone to bed at night, the control circuit 334 can generate a control signal to enable or disarm the security functions of the security system 318. As another example, the control circuit 334 can generate and send a control signal to disable the security system 318 in response to determining that the user 308 has woken up on the same day (e.g., the user 308 is no longer present on the bed 302).
[0137] The control circuit 334 can also receive an alert from the security system 318 and indicate the alert to the user 308. For example, the security system can detect a security breach (e.g., someone opened the door 332 without entering a security code, someone opened a window while the security system 318 was enabled) and communicate the security breach to the control circuit 334. The control circuit 334 can then generate a control signal to warn the user 308, such as causing the bed 302 to vibrate, causing a portion of the bed 302 to perform articulating motion (e.g., the head section raises or lowers), causing the light 326 to flash at regular intervals, and so on. The control circuit 334 can also warn the user 308 of a security breach in another bedroom, such as an open window in a child's bedroom. The control circuit 334 can transmit an alert to a garage door controller (e.g., close and lock the door). The control circuit 334 can transmit an alert that a security measure has been disarmed. The control circuit 334 can also trigger a smart alarm or other alarm device / alarm clock near the bed 302. The control circuit 334 can send a push notification, text message, or other indication of the security breach to the user device 310. Additionally, the control circuit 334 can send a notification of the security breach to a central controller, which can then determine one or more responses to the security breach.
[0138] The control circuit 334 can additionally generate and send control signals for controlling the garage door 320 and receive information indicating the status of the garage door 320 (e.g., open or closed). The control circuit 334 can also request information about the current status of the garage door 320. If the control circuit 334 receives a response that the garage door 320 is open (e.g., from a garage door opener), the control circuit 334 can notify the user 308 that the garage door is open (e.g., by displaying a notification or other message at the user device 310, outputting a notification at the central controller), and / or generate a control signal to cause the garage door opener to close the door. The control circuit 334 can also cause the bed 302 to vibrate, cause the lighting system 314 to flash in the bedroom, and so on. The control signal can also vary according to the age of the user 308. Similarly, the control circuit 334 can similarly transmit and receive communications for controlling or receiving status information associated with the door 332 or the oven 322.
[0139] In some specific implementations, different alarms can be generated for different events. For example, the control circuit 334 can cause the light 326 (or other lights, via the lighting system 314) to flash in a first mode when the security system 318 detects a breach, flash in a second mode when the garage door 320 is opened, flash in a third mode when the door 332 is opened, flash in a fourth mode when the oven 322 is opened, and flash in a fifth mode when another bed has detected that the user 308 of that bed has gotten up (e.g., a child in a crib has gotten up in the middle of the night as sensed by a sensor in the crib). Other examples of alarms include a smoke detector that detects smoke (and transmits that detection to the control circuit 334), a carbon monoxide tester, a heater failure, or an alarm from another device that can communicate with the control circuit 334 and detect an event that draws the attention of the user 308.
[0140] The control circuit 334 can also communicate with a system or device for controlling the status of the blinds 330. For example, in response to determining that the user 308 has gotten up for the day or that the user 308 has set an alarm to wake up at a specific time, the control circuit 334 can generate and send a control signal to cause the blinds 330 to open. In contrast, if the user 308 gets up before the user 308's normal wake-up time, the control circuit 334 can determine that the user 308 has not woken up for the day and may not generate a control signal to cause the blinds 330 to open. The control circuit 334 can also generate and send a control signal that causes a first set of blinds to close in response to detecting the presence of the user in bed and causes a second set of blinds to close in response to detecting that the user 308 is asleep.
[0141] As other examples, in response to determining that user 308 wakes up on the current day, control circuit 334 may generate a control signal and send it to coffee machine 324 to cause coffee machine 324 to brew coffee. Control circuit 334 may generate a control signal and send it to oven 322 to cause oven 322 to start preheating. Control circuit 334 may use the information indicating that user 308 wakes up on the current day and the information indicating that the current time of year is winter and / or the external temperature is below a threshold to generate and send a control signal to turn on the vehicle engine block heater. Control circuit 334 may, in response to detecting the presence of the user in bed, or in response to detecting that user 308 is asleep, generate and send a control signal to cause the device to enter a sleep mode (e.g., cause user 308's mobile phone to switch to a sleep or night mode such that notifications are muted so as not to disturb user 308's sleep). Later, upon determining that user 308 has gotten out of bed on the current day, control circuit 334 may generate and send a control signal to cause the mobile phone to switch out of the sleep / night mode.
[0142] Control circuit 334 may also communicate with one or more noise control devices. For example, once it is determined that user 308 is in bed at night, or user 308 is asleep (e.g., based on a pressure signal received from bed 302, an audio / dB signal received from an audio sensor located on or around bed 302), control circuit 334 may generate and send a control signal to activate a noise cancellation device. The noise cancellation device may be part of bed 302 or located in the bedroom. When it is determined that user 308 is in bed at night or user 308 is asleep, control circuit 334 may generate and send a control signal to turn on, turn off, turn up, or turn down the volume of one or more sound generating devices (such as a stereo system radio, television, computer, tablet computer, mobile phone, etc.).
[0143] Additionally, the functions of bed 302 may be controlled by control circuit 334 in response to user interaction. For example, a joint motion controller may adjust bed 302 from a horizontal position to a position where the head portion of the mattress of bed 302 is tilted upward (e.g., to facilitate the user sitting up in bed, reading, and / or watching television). Sometimes, bed 302 includes multiple independent joint - movable sections. The portions of the bed corresponding to the positions of air chambers 306a and 306b may move independently of each other to allow one person to rest in a first position (e.g., a flat - lying position) while another person rests in a second position (e.g., a reclined position with the head lifted at an angle starting from the waist). Separate positions may be set for two different beds (e.g., two double beds placed side by side). The base of bed 302 may include more than one independently adjustable area. As described above, the joint motion controller may also provide different levels of massage to one or more users on bed 302, or cause the bed to vibrate to convey an alert to user 308.
[0144] The control circuit 334 can adjust the position in response to user interaction with the bed 302 (e.g., the recline and decline positions of the user 308 and / or additional users) (e.g., in response to sensing the presence of a user in the bed, causing the joint motion controller to adjust to a first reclined position). The control circuit 334 can cause the joint motion controller to adjust the bed 302 to a second reclined position (e.g., a less reclined or flat position) in response to determining that the user 308 is asleep. As another example, the control circuit 334 can receive a communication from the television 312 indicating that the user 308 has turned off the television 312, and in response, the control circuit 334 can cause the joint motion controller to adjust the position of the bed to a preferred user sleep position (e.g., since the user turns off the television 312 while the user 308 is in the bed, indicating that the user 308 wishes to go to sleep).
[0145] In some embodiments, the control circuit 334 can control the joint motion controller to wake one user without waking another user of the bed 302. For example, the user 308 and the second user can each set different wake-up times (e.g., 6:30 am and 7:15 am, respectively). When the wake-up time of the user 308 arrives, the control circuit 334 can cause the joint motion controller to vibrate or only change the position of the side of the bed where the user 308 is located. When the wake-up time of the second user arrives, the control circuit 334 can cause the joint motion controller to vibrate or only change the position of the side of the bed where the second user is located. Alternatively, when the second wake-up time occurs, the control circuit 334 can use other methods (such as an audio alarm or turning on the light) to wake the second user because the user 308 has already woken up and will not be disturbed when the control circuit 334 attempts to wake the second user.
[0146] Still referring to Figure 3 , the control circuit 334 of the bed 302 can use information about the interaction of multiple users with the bed 302 to generate control signals for controlling the functions of various other devices. For example, the control circuit 334 can wait to generate control signals for a device until the user 308 and the second user are detected in the bed 302. The control circuit 334 can generate a first set of control signals when the presence of the user 308 in the bed is detected to cause the lighting system 314 to turn off a first set of lights, and generate a second set of control signals in response to detecting the presence of the second user in the bed to turn off a second set of lights. The control circuit 334 can also wait until it is determined that both users are awake before generating control signals to open the blinds 330. One or more other home automation control signals can be determined and generated by the control circuit 334, the user device 310, and / or the central controller.
[0147] Example of a data processing system associated with a bed
[0148] Describes example systems and components for data processing tasks associated with, for example, a bed. In some cases, multiple examples of a particular component or group of components are presented. Some examples are redundant and / or mutually exclusive alternatives. The connections between components are shown as examples to illustrate possible network configurations that allow communication between components. Different forms of connections can be used depending on technical needs / desires. Connections generally represent logical connections that can be created in any technically feasible format. For example, a network on a motherboard can be created with a printed circuit board, a wireless data connection, and / or other types of network connections. For clarity, some logical connections (e.g., connections to power and / or computer-readable memory) are not shown.
[0149] Figure 4A is a block diagram of an example data processing system 400 that can be associated with a bed system, including those described above (e.g., see Figures 1 to 3 ). System 400 includes a pump motherboard 402 and a pump daughter board 404. System 400 includes a sensor array 406 having one or more sensors configured to sense environmental and / or physical phenomena of the bed and report the sensed data back to the pump motherboard 402 (e.g., for analysis). The sensor array 406 can include one or more different types of sensors, including but not limited to pressure, temperature, light, movement (e.g., motion), and audio sensors. System 400 also includes a controller array 408 that can include one or more controllers configured to control logical control devices of the bed and / or the environment (e.g., home automation devices, security systems, lighting systems, and Figure 3 other devices described in
[0150] In Figure 4A , the pump motherboard 402 and the daughter board 404 are communicatively coupled. They can be conceptually described as the center or hub of system 400, while the other components are conceptually described as the spokes of system 400. This means that each spoke element communicates primarily or exclusively with the pump motherboard 402. For example, the sensors of the sensor array 406 may not be configured to or be unable to communicate directly with the corresponding controller. Instead, the sensors can report sensor readings to the motherboard 402, and the motherboard 402 can determine that, in response, the controllers of the controller array 408 should adjust some parameters of the logical control devices or modify the state of one or more peripheral devices.
[0151] One advantage of a hub-and-spoke network configuration or a star network is that it reduces network traffic compared to, for example, a mesh network with dynamic routing. If a particular sensor generates a large, continuous flow of traffic, that traffic is sent through a spoke to the motherboard 402. The motherboard 402 can collate and compress that data into a smaller data format for retransmission and storage in the cloud service 410. Additionally or alternatively, the motherboard 402 can generate a single small command message to be transmitted along a different spoke in response to a large flow. For example, if the large data flow is pressure readings sent from the sensor array 406 several times per second, the motherboard 402 can respond to the controller array 408 with a single command message to increase the pressure in the air chambers of the bed. In this case, the single command message can be several orders of magnitude smaller than the pressure reading flow.
[0152] As another advantage, a hub-and-spoke network configuration can allow for a scalable network that adapts to components being added, removed, failing, etc. This can allow for more, fewer, or different sensors in the sensor array 406, more, fewer, or different controllers in the controller array 408, can allow for more, fewer, or different computing devices 414, and / or more, fewer, or different cloud services 410. For example, if a particular sensor fails or is deprecated by a newer version, the system 400 can be configured such that only the motherboard 402 needs to be updated with a replacement sensor. This can allow for product differentiation (where the same motherboard 402 can support an entry-level product with fewer sensors and controllers, a higher-value product with more sensors and controllers), as well as customer personalization (where a customer can add components of their own choosing to the system 400).
[0153] Additionally, a range of air mattress products can use the system 400 with different components. In an application where each air mattress on the production line includes a central logic unit and a pump, the motherboard 402 (and optionally the daughterboard 404) can be designed to be installed in a single common housing. For each upgrade of the product in the product line, additional sensors, controllers, cloud services, etc. can be added. Compared to a product line where each product has a custom logic control system, by designing all the products in the product line on this basis, design, manufacturing, and testing time can be reduced.
[0154] Each of the components discussed above can be implemented in a variety of technologies and configurations. Some examples of each component are discussed below. Sometimes, two or more components of the system 400 can be implemented in a single alternative component; some components can be implemented in multiple separate components; and / or some functions can be provided by different components.
[0155] Figure 4Bis a block diagram showing the communication paths of system 400. As described, the motherboard 402 and the daughterboard 404 can act as the hub of system 400. When the pump daughterboard 404 communicates with the cloud service 410 or other components, the communication can be routed through the motherboard 402. This can allow the bed to have a single connection to the Internet 412. The computing device 414 can also have a connection to the Internet 412, possibly through the same gateway and / or a different gateway (e.g., a cellular service provider) used by the bed.
[0156] In Figure 4B , cloud services 410d and 410e can be configured such that the motherboard 402 communicates directly with the cloud service (e.g., without having to use another cloud service 410 as an intermediary). Additionally or alternatively, some cloud services 410 (e.g., 410f) may only be reachable by the motherboard 402 through an intermediary cloud service (e.g., 410e). Although not shown here, some cloud services 410 can be reached directly or indirectly through the pump motherboard 402.
[0157] Additionally, some or all of the cloud services 410 can communicate with other cloud services, including data transfer and / or remote function calls in any technically suitable format. For example, one cloud service 410 can request a copy of the data of another cloud service 410 (e.g., for backup, coordination, migration, computation, data mining purposes). Many cloud services 410 can also contain data indexed according to a specific user tracked by the user account cloud 410c and / or the bed data cloud 410a. When accessing specific data of a specific user or bed, these cloud services 410 can communicate with the user account cloud 410c and / or the bed data cloud 410a.
[0158] Figure 5 is a block diagram of an example motherboard 402 in a data processing system associated with a bed system (e.g., refer to Figures 1 to 3 ). In this example, compared to other examples described below, this motherboard 402 includes relatively few parts and can be limited to providing a relatively limited feature set.
[0159] The motherboard 402 includes a power supply 500, a processor 502, and a computer memory 512. Generally, the power supply 500 includes hardware for receiving power from an external source and providing it to the components of the motherboard 402. The power supply can include a battery pack and / or a wall socket adapter, an AC to DC converter, a DC to AC converter, a power regulator, a capacitor bank, and / or one or more interfaces for providing power in the current type, voltage, etc. required by the other components of the motherboard 402.
[0160] The processor 502 is generally a device for receiving inputs, performing logical determinations, and providing outputs. The processor 502 can be a central processing unit, a microprocessor, general logic circuitry, an application specific integrated circuit, combinations thereof, and / or other hardware.
[0161] The memory 512 is generally one or more devices for storing data, which can include long-term stable data storage (e.g., on a hard disk), short-term volatile data storage (e.g., in random access memory), or any other technically suitable configuration.
[0162] The motherboard 402 includes a pump controller 504 and a pump motor 506. The pump controller 504 can receive commands from the processor 502 to control the operation of the pump motor 506. For example, the pump controller 504 can receive a command to increase the pressure in an air chamber by 0.3 pounds per square inch (PSI). In response, the pump controller 504 enables a valve such that the pump motor 506 pumps air into the selected air chamber and can enable the pump motor 506 for a period of time corresponding to 0.3 PSI or until a sensor indicates that the pressure has increased by 0.3 PSI. Sometimes, the message can specify that the chamber should be inflated to a target PSI, and the pump controller 504 can enable the pump motor 506 until the target PSI is reached.
[0163] The valve solenoid 508 can control which air chamber the pump is connected to. In some cases, the solenoid 508 can be directly controlled by the processor 502. In some cases, the solenoid 508 can be controlled by the pump controller 504.
[0164] The remote interface 510 of the motherboard 402 can allow the motherboard 402 to communicate with other components of the data processing system. For example, the motherboard 402 can communicate with one or more daughterboards, peripheral sensors, and / or peripheral controllers via the remote interface 510. The remote interface 510 can provide any technically suitable communication interface, including but not limited to multiple communication interfaces such as WIFI, Bluetooth, and copper wire networks.
[0165] Figure 6 is a block diagram of another example motherboard 402. Compared with the Figure 5 motherboard 402 in Figure 6 the motherboard 402 in
[0166] This motherboard 402 can also include a valve controller 600, a pressure sensor 602, a universal serial bus (USB) stack 604, a WiFi radio 606, a Bluetooth low energy (BLE) radio 608, a ZigBee radio 610, a Bluetooth radio 612, and a computer memory 512.
[0167] The valve controller 600 can convert commands from the processor 502 into control signals for the valve solenoid 508. For example, the processor 502 can issue a command to the valve controller 600 to connect the pump to a specific air chamber in a set of air chambers of the air mattress. The valve controller 600 can control the position of the valve solenoid 508 such that the pump is connected to the indicated air chamber.
[0168] The pressure sensor 602 can read pressure readings from one or more air chambers of the air mattress. The pressure sensor 602 can also perform digital sensor conditioning. As described herein, multiple pressure sensors 602 can be included as part of the motherboard 402 or otherwise communicate with the motherboard 402.
[0169] The motherboard 402 can include a set of network interfaces 604, 606, 608, 610, 612, etc., including but not limited to Figure 6 those shown. These network interfaces can allow the motherboard to communicate with any device via a wired or wireless network, including but not limited to peripheral sensors, peripheral controllers, computing devices, and devices and services connected to the Internet 412.
[0170] Figure 7 is a block diagram of an exemplary daughter board 404 used in a data processing system associated with the bed system described herein. One or more daughter boards 404 can be connected to the motherboard 402. Some daughter boards 404 can be designed to offload specific and / or discrete tasks from the motherboard 402. This can be advantageous if the specific task is computationally intensive, proprietary, or subject to future revisions. For example, the daughter board 404 can be used to compute specific sleep data metrics. The metric can be computationally intensive, and computing the metric on the daughter board 404 can free up the resources of the motherboard 402 while the metric is being computed. The sleep metric may be revised in the future. To update the system 400 with the new metric, it is possible that only the daughter board 404 computes the metric to be replaced. In this case, the same motherboard 402 and other components can be used, thus saving the need for unit testing additional components beyond just the daughter board 404.
[0171] The daughter board 404 includes a power supply 700, a processor 702, a computer-readable memory 704, a pressure sensor 706, and a WiFi radio component 708. The processor 702 can use the pressure sensor 706 to collect information about the pressure of the air mattress chamber. The processor 702 can execute algorithms to calculate sleep metrics (e.g., sleep quality, presence in bed, whether the user is asleep, heart rate, respiratory rate, movement, etc.). Sometimes, the sleep metrics can be calculated based solely on the air chamber pressure. Signals from various sensors (e.g., movement, pressure, temperature, and / or audio sensors) can also be used to calculate the sleep metrics. The processor 702 can receive data from sensors inside the daughter board 404, which can be accessed via the WiFi radio component 708 or otherwise communicate with the processor 702. Once the sleep metrics are calculated, the processor 702 can report the sleep metrics to, for example, the motherboard 402. The motherboard 402 can generate instructions for outputting the sleep metrics to the user or using the sleep metrics to determine other user information or controls to control the bed and / or peripheral devices.
[0172] Figure 8 is a block diagram of an example motherboard 800 that does not use a daughter board in a data processing system associated with the bed system. In this example, the motherboard 800 can perform most, all, or more of the features described for the motherboard 402 in Figure 6 and the daughter board 404 in Figure 7
[0173] Figure 9A is a block diagram of an example sensor array 406 used in a data processing system associated with the bed system described herein. The sensor array 406 is a conceptual grouping of some or all of the peripheral sensors that communicate with the motherboard 402 but are not part of the motherboard 402. The peripheral sensors 902, 904, 906, 908, 910, etc. of the sensor array 406 communicate with the motherboard 402 through one or more network interfaces 604, 606, 608, 610, and 612 of the motherboard, which is suitable for the configuration of a particular sensor. For example, a sensor that outputs readings via a USB cable can communicate through the USB stack 604.
[0174] Some of the peripheral sensors of the sensor array 406 can be sensors 900 mounted on the bed (e.g., temperature sensor 906, light sensor 908, sound sensor 910). The sensors 900 mounted on the bed can be embedded in the bed structure and sold with the bed, or subsequently attached to the structure (e.g., a part of a pressure sensing pad removably mounted on the top surface of the bed, a part of a temperature sensing or heating pad removably mounted on the top surface of the bed, integrated into the top surface, connected along the connecting pipe between the pump and the air chamber, inside the air chamber, attached to the headboard, attached to one or more areas of the adjustable base). One or more of the sensors 902 can be load cells or force sensors, as Figure 9C shown. Other sensors 902 and 904 may not be mounted on the bed and can include pressure sensors 902 and / or peripheral sensors 904. For example, sensors 902 and 904 can be integrated into a user mobile device (e.g., a mobile phone, a wearable device) or be a part of the user mobile device. Sensors 902 and 904 can also be a part of a central controller for controlling the bed and peripheral devices. Sometimes, sensors 902 and 904 can be a part of one or more home automation devices or other peripheral devices.
[0175] Sometimes, some or all of the sensors 900 mounted on the bed and / or sensors 902 and 904 share network hardware (e.g., a conduit, a multi-wire cable, or a plug containing wires from each sensor that connects all associated sensors to the motherboard 402 when attached to the motherboard 402). One, some, or all of the sensors 902, 904, 906, 908, and 910 can sense characteristics of the mattress (e.g., pressure, temperature, light, sound, and / or other characteristics) and characteristics outside the mattress. Sometimes, the pressure sensor 902 can sense the pressure of the mattress, while some or all of the sensors 902, 904, 906, 908, and 910 sense characteristics of the mattress and / or characteristics outside the mattress.
[0176] Figure 9B is a schematic top view of a bed 920 having a sensor strip 932 with sensors 934A-N for a data processing system associated with the bed 920. The bed 920 includes a mattress 922 (e.g., refer to Figure 1 ). The mattress 922 can have a foam basin 930 below the top of the mattress 922. The foam basin 930 can have air chambers 923A and / or 923B, similar to these air chambers described herein.
[0177] The sensor strip 932 can be attached across the top 924 of the mattress from one lateral side to the opposite lateral side (e.g., from left to right). The sensor strip 932 can be attached near the head section of the mattress 922 to measure temperature and / or humidity values around the chest area of the user 936. The sensor strip 932 can also be placed at the center point (e.g., midpoint) of the mattress 922 such that the distances 938 and 940 are equal to each other. The sensor strip 932 can be placed at other locations to obtain temperature and / or humidity values of the top of the mattress 922.
[0178] The sensors 934A-N can be Figure 9A any one or more of the temperature sensors 906 described therein. The sensor strip 932 can also include a carrier strip 933 having a first strip portion 933A and a second strip portion 933B. The carrier strip 933 can be releasably attached to the foam basin layer 920 and extend between opposite side ends of the foam basin 920. The sensor strip 932 can have a first sensor 934A-N and a second sensor 934A-N. Each of the first sensor and the second sensor 934A-N can have five sensors. For example, a sensor strip 932 for a king or queen size mattress can have a total of ten sensors. When the user 936 is positioned on the top of the mattress 922 above the air chamber 923A, the first sensor 934A-N can measure the temperature and / or humidity of the top 924 of the mattress above the air chamber 923A. These values can be used, for example, to determine the conditioned air flow supplied to the air chamber 923A. The temperature and / or humidity values measured by the second sensor 934A-N can be used, for example, to determine the conditioned air flow supplied to the air chamber 923B. The bed system 920 can provide customized air flow to different parts of the mattress 922 based on the user's body temperature and / or the temperature of different parts of the top 924 of the mattress.
[0179] Sometimes, two separate sensor strips can be attached to the mattress 922 (e.g., a first sensor strip above the air chamber 923A and a second sensor strip separate from the first sensor strip above the air chamber 923B). The first sensor strip and the second sensor strip can be attached to the center of the top 924 of the mattress via a fastening element such as an adhesive. The sensor strip 932 can also be easily replaced with another sensor strip.
[0180] Figure 9C is a schematic diagram of an example bed having a force sensor 955 at the bottom of the legs 953 of the bed (e.g., among four, six, eight or other number of legs). The force sensor 955 can also be located elsewhere on the bed with a similar effect (e.g., between the legs 953 and the platform 950). When a strain gauge is used as the force sensor 955, the force sensor 955 can be positioned closer to the center of the legs 953. The force sensor 955 can be a load cell.
[0181] Figure 10 It is a block diagram of an example controller array 408 used in a data processing system associated with a bed system. The controller array 408 is a conceptual grouping of some or all of the peripheral controllers that communicate with the motherboard 402 but are not part of the motherboard 402. The peripheral controllers can communicate with the motherboard 402 through one or more of the network interfaces 604, 606, 608, 610, and 612 of the motherboard, which is suitable for the configuration of a particular controller. Some of the controllers can be controllers 1000 mounted on the bed, such as a temperature controller 1006, a light controller 1008, and a speaker controller 1010, as described for the sensors mounted on the bed in the reference Figure 9A as described for the sensors mounted on the bed. The peripheral controllers 1002 and 1004 can communicate with the motherboard 402, but are optionally not mounted on the bed.
[0182] Figure 11 It is a block diagram of an example computing device 412 used in a data processing system associated with a bed system. The computing device 412 can include computing devices used by the user of the bed, including but not limited to mobile computing devices (e.g., mobile phones, tablet computers, laptop computers, smartphones, wearable devices), desktop computers, home automation devices, and / or central controllers or other hub devices.
[0183] The computing device 412 includes a power supply 1100, a processor 1102, and a computer-readable memory 1104. User input and output can be sent by a speaker 1106, a touch screen 1108, or other components not shown (e.g., a pointing device or a keyboard). The computing device 412 can run application programs 1110, including, for example, application programs that allow the user to interact with the system 400. These application programs can allow the user to view information about the bed (e.g., sensor readings, sleep metrics), information about themselves (e.g., health conditions detected based on signals sensed in the bed), and / or configure the behavior of the system 400 (e.g., set the desired firmness, set the desired behavior of the peripheral devices). In addition to the above remote control 122, the computing device 412 can also be used, or the computing device can be used instead of the above remote control.
[0184] Figure 12 It is a block diagram of an example bed data cloud service 410a used in a data processing system associated with a bed system. Here, the bed data cloud service 410a is configured to collect sensor data and sleep data from a particular bed and match the data with one or more users who used the bed when the data was generated.
[0185] The bed data cloud service 410a includes a network interface 1200, a communication manager 1202, server hardware 1204, and server system software 1206. The bed data cloud service 410a is also shown as having a user identification module 1208, a device management 1210 module, a sensor data module 1210, and an advanced sleep data module 1214. The network interface 1200 includes hardware and low-level software to allow hardware devices (e.g., components of service 410a) to communicate over a network (e.g., communicate with each other, communicate with other destinations over the Internet 412). The network interface 1200 can include network cards, routers, modems, and other hardware. The communication manager 1202 generally includes hardware and software that operate on top of the network interface 1200, such as software for initiating, maintaining, and tearing down network communications used by service 410a (e.g., TCP / IP, SSL or TLS, Torrent, and other communication sessions on a local area or wide area network). The communication manager 1202 can also provide load balancing and other services to other elements of service 410a. The server hardware 1204 generally includes physical processing devices for instantiating and maintaining service 410a. This hardware includes, but is not limited to, processors (e.g., central processing units, ASICs, graphics processors) and computer-readable memory (e.g., random access memory, stable hard drives, tape backups). One or more servers can be configured as clusters, multiple computers, or data centers that can be geographically separated or connected. The server system software 1206 generally includes software that runs on the server hardware 1204 to provide an operating environment for applications and services (e.g., an operating system running on a physical server, virtual machines instantiated on a physical server to create many virtual servers, server-level operations such as data migration, redundancy, and backup).
[0186] The user identification 1208 can include or reference data related to the user of the bed with an associated data processing system. The user can include a customer, owner, or other user who has registered with service 410a or another service. Each user can have a unique identifier, user credentials, contact information, billing information, demographic information, or any other technically appropriate information.
[0187] The device manager 1210 can include or reference data related to the bed or other products associated with the data processing system. The bed can include products sold or registered with the system associated with service 410a. Each bed can have a unique identifier, model number, and / or serial number, sales information, geographic information, delivery information, a list of associated sensors and control peripherals, etc. One or more indexes stored by service 410a can identify the users associated with the bed. The index can record the sale of the bed to the user, the users sleeping in the bed, etc.
[0188] Sensor data 1212 can record raw or compressed sensor data recorded by a bed having an associated data processing system. For example, the data processing system of the bed can have temperature, pressure, motion, audio, and / or light sensors. Readings from these sensors, whether in raw form or in a format generated from the raw data (e.g., sleep metrics), can be transmitted by the data processing system of the bed to service 410a for storage in sensor data 1212. One or more indexes stored by service 410a can identify the user and / or the bed associated with sensor data 1212.
[0189] Service 410a can use any available data of its own (e.g., sensor data 1212) to generate advanced sleep data 1214. Advanced sleep data 1214 includes sleep metrics and other data generated from sensor readings (e.g., health information). Some of these calculations can be performed in service 410a rather than locally on the data processing system of the bed because these calculations can be computationally complex or require a large amount of storage space or processor performance, which the data processing system of the bed may not be able to provide. This can help allow the bed system to operate with a relatively simple controller when part of a system performing relatively complex tasks and calculations.
[0190] For example, service 410a can retrieve one or more machine learning models from a remote data repository and use these models to determine advanced sleep data 1214. Service 410a can retrieve one or more models to determine the overall sleep quality of the user based on currently detected sensor data 1212 and / or historical sensor data. Service 410a can retrieve other models to determine whether the user snores based on detected sensor data 1212. Service 410a can retrieve other models to determine whether the user is experiencing a health condition based on data 1212.
[0191] Figure 13FIG. 0 is a block diagram of an example sleep data cloud service 410b used in a data processing system associated with a bed system. Here, the sleep data cloud service 410b is configured to record data related to a user's sleep experience. The service 410b includes a network interface 1300, a communication manager 1302, server hardware 1304, and server system software 1306. The service 410b also includes a user identification module 1308, a pressure sensor manager 1310, a pressure-based sleep data module 1312, a raw pressure sensor data module 1314, and a non-pressure sleep data module 1316. Sometimes, the service 410b can include a sensor manager for each sensor. The service 410b can also include a sensor manager associated with multiple sensors in the bed (e.g., a single sensor manager can be associated with pressure, temperature, light, movement, and audio sensors in the bed).
[0192] The pressure sensor manager 1310 can include or reference data related to the configuration and operation of pressure sensors in the bed. This data can include identifiers of sensor types in a particular bed, their settings, and calibration data, etc. The pressure-based sleep data 1312 can use the raw pressure sensor data 1314 to calculate sleep metrics related to the pressure sensor data. For example, the presence, movement, weight change, heart rate, and breathing rate of a user can be determined from the raw pressure sensor data 1314. One or more indexes stored by the service 410b can identify the user associated with the pressure sensors, the raw pressure sensor data, and / or the pressure-based sleep data. The non-pressure sleep data 1316 can use other data sources to calculate sleep metrics. User-entered preferences, light sensor readings, and sound sensor readings can be used to track sleep data. The presence of a user can also be determined based on a combination of the raw pressure sensor data 1314 and the non-pressure sleep data 1316 (e.g., raw temperature data). Sometimes, the presence in the bed can be determined using only temperature data. Changes in temperature data can be monitored to determine if there is a presence in the bed during a time interval of a given duration (e.g., a time window). The temperature and / or pressure data can also be combined with other sensing forms or motion sensors (such as load cells) that reflect different forms of movement to accurately detect the presence of a user. For example, the temperature and / or pressure data can be provided as input to a bed presence classifier that can determine the presence of a user in the bed based on real-time or near-real-time data collected at the bed. The classifier can be trained to distinguish between temperature data and pressure data, identify peaks in the temperature and pressure data, and generate an indication of the presence in the bed based on the peaks being within a threshold distance of each other. One or more indexes stored by the service 410b can identify the user associated with the sensors and / or data 1316.
[0193] Figure 14 It is a block diagram of an example user account cloud service 410c used in a data processing system associated with a bed system. Here, the service 410c is configured to record a list of users and identify other data related to those users. The service 410c includes a network interface 1400, a communication manager 1402, server hardware 1404, and server system software 1406. The service 410c also includes a user identification module 1408, a purchase history module 1410, an enablement module 1412, and an application usage history module 1414.
[0194] As described above, the user identification module 1408 may include or reference data related to users of a bed with an associated data processing system. The purchase history module 1410 may include or reference data related to user purchases. Purchase data may include sales contact information, billing information, and salesperson information associated with a user's purchase of a bed system. One or more indexes stored by the service 410c may identify users associated with a bed purchase.
[0195] The enablement module 1412 may track user interactions with the manufacturer, supplier, and / or administrator of the bed / cloud service. This data may include communications (e.g., emails, service calls), sales data (e.g., sales receipts, configuration logs), and social network interactions. The data may also include repairs, maintenance, or replacements of components of the user's bed system. The usage history module 1414 may contain data regarding user interactions with the applications and / or remote controls of the bed. Monitoring and configuration applications may be distributed to run on, for example, the computing device 412 described herein. The applications may record and report user interactions for storage in the application usage history module 1414. One or more indexes stored by the service 410c may also identify the users associated with each log entry. User interactions stored in the module 1414 may optionally be used to determine or predict user preferences and / or settings for the user's bed and / or peripherals that may improve the user's overall sleep quality.
[0196] Figure 15 It is a block diagram of an example point-of-sale cloud service 1500 used in a data processing system associated with a bed system. Here, the service 1500 may record data related to a user's purchase, particularly data related to the purchase of a bed system described herein. The service 1500 is shown as having a network interface 1502, a communication manager 1504, server hardware 1506, and server system software 1508. The service 1500 also includes a user identification module 1510, a purchase history module 1512, and a bed settings module 1514.
[0197] The purchase history module 1512 can include or reference data related to purchases made by the user identified in module 1510, such as sales data, price, sales location, delivery address, and configuration options selected by the user at the time of sale. The configuration options can include choices made by the user regarding how they wish to set up the newly purchased bed and can include the expected sleep schedule, a list of peripheral sensors and controllers that have been or will be installed, and the like.
[0198] The bed setup module 1514 can include or reference data related to the installation of the bed purchased by the user. The bed setup data can include the date and address to which the bed was delivered, the person who accepted the delivery, the configuration applied to the bed at the time of delivery (e.g., firmness setting), the name of the bed user, which side of the bed each user will use, and the like. The data recorded in service 1500 can be referenced later by the user's bed system to control the functions of the bed system and / or transmit control signals to peripheral components. This can allow sales personnel to collect information from the user at the time of sale and subsequently facilitate bed system automation. Sometimes, some or all aspects of the bed system can be automated, with little or no user input data required after the sale. Sometimes, the data recorded in service 1500 can be used in combination with other user input data.
[0199] Figure 16 FIG. is a block diagram of an example environment cloud service 1600 used in a data processing system associated with a bed system. Here, service 1600 is configured to record data related to a user's home environment. Service 1600 includes a network interface 1602, a communication manager 1604, server hardware 1606, and server system software 1608. Service 1600 also includes a user identification module 1610, an environmental sensor module 1612, and an environmental factor module 1614. The environmental sensor module 1612 can include a list and identification of sensors that have been installed in and / or around the user's bed as identified by the user in module 1610 (e.g., light, noise / audio, vibration, thermostat, movement / motion sensors). Module 1612 can also store historical readings or reports from the environmental sensors. Module 1612 can be accessed later and used by one or more of the cloud services described herein to determine the user's sleep quality and / or health information. The environmental factor module 1614 can include reports generated based on the data in module 1612. For example, module 1614 can generate and retain a report based on the light sensor data stored in the environmental sensor module 1612 that indicates the frequency and duration of instances of increased lighting while the user is asleep.
[0200] In the examples discussed herein, each cloud service 410 is shown to have some of the same components. These same components may be shared partially or fully between services or may be independent. Sometimes, each service may have separate copies of some or all of the components, which are the same or different in some respects. These components are provided as illustrative examples. In other examples, each cloud service may have a different number, type, and style of components that are technically possible.
[0201] Figure 17 FIG. is a block diagram of an example of using a data processing system associated with a bed to automate peripheral devices around the bed. A behavior analysis module 1700 running on a motherboard 402 is shown here. The behavior analysis module 1700 may be one or more software components stored in a computer memory 512 and executed by a processor 502. Generally speaking, the module 1700 may collect data from various sources (e.g., sensors 902, 904, 906, 908, and / or 910, non-sensor local source 1704, cloud data services 410a and / or 410c), and use a behavior algorithm 1702 (e.g., a machine learning model) to generate actions to be taken (e.g., commands to be sent to a peripheral controller, data to be sent to a cloud service such as a bed data cloud 410a and / or a user account cloud 410c). For example, this is useful in tracking user behavior and automating devices that communicate with the user's bed.
[0202] Module 1700 can collect data from any technically suitable source (e.g., sensors of sensor array 406) to collect data about the characteristics of the bed, the environment of the bed, and / or the user of the bed. This data can provide module 1700 with information about the current state of the environment of the bed. For example, module 1700 can access the readings from pressure sensor 902 to determine the air chamber pressure in the bed. From this reading and potentially other data, the presence of a user can be determined. In another example, module 1700 can access light sensor 908 to detect the amount of light in the environment. Module 1700 can also access temperature sensor 906 to detect the temperature in the environment and / or the microclimate in the bed. Using this data, module 1700 can determine whether temperature adjustments should be made to the environment and / or components of the bed to improve the user's sleep quality and overall comfort. Similarly, module 1700 can access data from cloud services to more accurately determine the user's sleep quality, health information, and / or control the bed and / or peripheral devices. For example, behavior analysis module 1700 can access bed cloud service 410a to access historical sensor data 1212 and / or advanced sleep data 1214. Module 1700 can also access weather report services, third-party data providers (e.g., traffic and news data, emergency broadcast data, user travel data), and / or clock and calendar services. Using the data retrieved from cloud service 410, module 1700 can accurately determine the user's sleep quality, health information, and / or control of the bed and / or peripheral devices. Similarly, module 1700 can access data from non-sensor source 1704, such as local clock and calendar services (e.g., components of motherboard 402 or processor 502). Module 1700 can use this information to determine, for example, the time when the user is in bed, sleeping, waking up, and / or going to bed.
[0203] Behavior analysis module 1700 can aggregate and prepare this data for use with one or more behavior algorithms 1702 (e.g., machine learning models). Behavior algorithms 1702 can be used to learn the behavior of the user and / or perform certain actions based on the state of the accessed data and / or predicted user behavior. For example, behavior algorithm 1702 can use the available data (e.g., pressure sensor, non-sensor data, clock and calendar data) to create a model of when the user goes to bed each night. Later, the same or different behavior algorithms 1702 can be used to determine whether an increase in air chamber pressure is likely to indicate that the user has gone to bed, and if so, transmit some data to third-party cloud service 410 and / or enable peripheral controllers 1002 or 1004, base actuator 1006, temperature controller 1008, and / or under-bed lighting controller 1010.
[0204] Here, module 1700 and behavior algorithm 1702 are shown as components of motherboard 402. Other configurations are possible. For example, the same or similar behavior analysis module 1700 and / or behavior algorithm 1702 may run in one or more cloud services, and the resulting output may be transmitted to pump motherboard 402, a controller in controller array 408, or any other technically suitable recipient described herein.
[0205] Figure 18 Examples of a computing device 1800 and examples of a mobile computing device that may be used to implement the techniques described herein are shown. Computing device 1800 is intended to represent various forms of digital computers, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframes, and other suitable computers. The mobile computing device is intended to represent various forms of mobile devices, such as personal digital assistants, cellular phones, smart computers, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are only meant to be exemplary and do not imply limitations to the specific implementations of the invention described and / or claimed herein.
[0206] The computing device 1800 includes a processor 1802, a memory 1804, a storage device 1806, a high-speed interface 1808 connected to the memory 1804 and a plurality of high-speed expansion ports 1810, and a low-speed interface 1812 connected to a low-speed expansion port 1814 and the storage device 1806. Each of the processor 1802, the memory 1804, the storage device 1806, the high-speed interface 1808, the high-speed expansion ports 1810, and the low-speed interface 1812 is interconnected using various buses and may be mounted on a common motherboard or otherwise as appropriate. The processor 1802 can process instructions for execution within the computing device 1800, including instructions stored in the memory 1804 or on the storage device 1806 to display graphical information for a GUI on an external input / output device (such as a display 1816 coupled to the high-speed interface 1808). In other specific embodiments, multiple processors and / or multiple buses may be used in conjunction with multiple memories and multiple types of memory. Additionally, multiple computing devices may be connected, with each device providing a portion of the necessary operations (e.g., as a server array, a set of blade servers, or a multi-processor system). The memory 1804 stores information within the computing device 1800. In some specific embodiments, the memory 1804 is one or more volatile memory units. In some specific embodiments, the memory 1804 is one or more non-volatile memory units. The memory 1804 may also be another form of computer-readable medium, such as a magnetic disk or optical disk. The storage device 1806 is capable of providing mass storage for the computing device 1800. In some specific embodiments, the storage device 1806 may be or include a computer-readable medium, such as a floppy disk device, a hard disk device, an optical disk device, or a tape device, a flash memory, or other similar solid-state storage devices, or an array of devices including devices in a storage area network or other configurations. A computer program product may be tangibly embodied in an information carrier. The computer program product may also contain instructions that, when executed, perform one or more methods (such as those described above). The computer program product may also be tangibly embodied in a computer-readable medium or a machine-readable medium, such as the memory 1804, the storage device 1806, or the memory on the processor 1802.
[0207] The high-speed interface 1808 manages the bandwidth-intensive operations of the computing device 1800, while the low-speed interface 1812 manages the less bandwidth-intensive operations. This functional allocation is merely exemplary. In some specific implementations, the high-speed interface 1808 is coupled to the memory 1804, the display 1816 (e.g., via a graphics processor or accelerator), and is coupled to a high-speed expansion port 1810 that can accept various expansion cards (not shown). In this specific implementation, the low-speed interface 1812 is coupled to the storage device 1806 and the low-speed expansion port 1814. The low-speed expansion port 1814, which may include various communication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet), can be coupled to one or more input / output devices (such as a keyboard, a pointing device, a scanner) or networking devices (such as a switch or a router) via, for example, a network adapter. As shown, the computing device 1800 can be implemented in a variety of different forms. For example, it can be implemented as a standard server 1820, or implemented multiple times in a group of such servers. Additionally, it can be implemented in a personal computer such as a laptop computer 1822. It can also be implemented as part of a rack-mounted server system 1824. Alternatively, the components from the computing device 1800 can be combined with other components in a mobile device (not shown) such as a mobile computing device 1850. Each of these devices can include one or more of the computing device 1800 and the mobile computing device 1850, and the entire system can be composed of multiple computing devices that communicate with each other. The mobile computing device 1850 includes a processor 1852, a memory 1864, input / output devices (such as a display 1854), a communication interface 1866, and a transceiver 1868, as well as other components. The mobile computing device 1850 can also be provided with a storage device, such as a microdrive or other device, to provide additional storage. Each of the processor 1852, the memory 1864, the display 1854, the communication interface 1866, and the transceiver 1868 is interconnected using various buses, and several components can be mounted on a common motherboard or in other suitable ways.
[0208] The processor 1852 can execute instructions within the mobile computing device 1850, including instructions stored in the memory 1864. The processor 1852 can be implemented as a chipset including separate multiple analog and digital processors. The processor 1852 can, for example, provide coordination of other components of the mobile computing device 1850, such as control of the user interface, applications running on the mobile computing device 1850, and wireless communications conducted by the mobile computing device 1850. The processor 1852 can communicate with a user through a control interface 1858 and a display interface 1856 coupled to a display 1854. The display 1854 can be, for example, a TFT (Thin Film Transistor Liquid Crystal Display) display or an OLED (Organic Light Emitting Diode) display, or other suitable display technologies. The display interface 1856 can include appropriate circuitry for driving the display 1854 to present graphics and other information to the user. The control interface 1858 can receive commands from the user and convert them for submission to the processor 1852. Additionally, an external interface 1862 can provide communication with the processor 1852 to enable near area communication of the mobile computing device 1850 with other devices. The external interface 1862 can provide, for example, wired communication in some specific implementations, or wireless communication in other specific implementations, and can also use multiple interfaces.
[0209] The memory 1864 stores information within the mobile computing device 1850. The memory 1864 can be implemented as one or more computer-readable media, one or more volatile memory units, or one or more non-volatile memory units, or a combination thereof. An extended memory 1874 can also be provided and connected to the mobile computing device 1850 through an extended interface 1872, which can include, for example, a SIMM (Single In-line Memory Module) card interface. The extended memory 1874 can provide additional storage space for the mobile computing device 1850, or can also store applications or other information for the mobile computing device 1850. Specifically, the extended memory 1874 can include instructions for executing or supplementing the above processes, and can also include security information. Thus, for example, the extended memory 1874 can be provided as a security module of the mobile computing device 1850 and can be programmed with instructions that allow secure use of the mobile computing device 1850. Additionally, security applications and additional information can be provided via the SIMM card, such as placing identification information on the SIMM card in an unbreakable manner.
[0210] The memory may include, for example, flash memory and / or NVRAM memory (non-volatile random access memory), as discussed below. In some embodiments, a computer program product is tangibly embodied in an information carrier. The computer program product contains instructions that, when executed, perform one or more methods (such as those described above). The computer program product may be a computer-readable medium or a machine-readable medium, such as the memory 1864, the extended memory 1874, or the memory on the processor 1852. In some embodiments, the computer program product may be received in a propagated signal, for example, via the transceiver 1868 or the external interface 1862.
[0211] The mobile computing device 1850 may communicate wirelessly via the communication interface 1866, which may include digital signal processing circuitry as necessary. The communication interface 1866 may provide communication under various modes or protocols, such as GSM voice calls (Global System for Mobile Communications), SMS (Short Message Service), EMS (Enhanced Messaging Service), or MMS messaging (Multimedia Messaging Service), CDMA (Code Division Multiple Access), TDMA (Time Division Multiple Access), PDC (Personal Digital Cellular), WCDMA (Wideband Code Division Multiple Access), CDMA2000, or GPRS (General Packet Radio Service), and so on. Such communication may be performed, for example, via the transceiver 1868 using radio frequency. In addition, short-range communication may be performed, for example, using Bluetooth, WiFi, or other such transceivers (not shown). In addition, the GPS (Global Positioning System) receiver module 1870 may provide additional navigation and location-related wireless data to the mobile computing device 1850, which may be used by the applications running on the mobile computing device 1850 as appropriate. The mobile computing device 1850 may also communicate audibly using the audio codec 1860, which may receive oral information from the user and convert it into usable digital information. The audio codec 1860 may similarly generate audible sounds for the user, for example, via a speaker, such as in the handset of the mobile computing device 1850. Such sounds may include sounds from a voice telephone call, may include recorded sounds (e.g., voice messages, music files, etc.), and may also include sounds generated by applications operating on the mobile computing device 1850. As shown, the mobile computing device 1850 may be implemented in a variety of different forms. For example, it may be implemented as a cellular phone 1880. It may also be implemented as part of a smart phone 1882, a personal digital assistant, or other similar mobile devices.
[0212] The various specific implementations of the systems and techniques described herein can be implemented in digital electronic circuits, integrated circuits, specially designed ASICs (Application Specific Integrated Circuits), computer hardware, firmware, software, and / or combinations thereof. These various specific implementations can include those implemented in one or more computer programs executable and / or interpretable on a programmable system, the programmable system including at least one programmable processor that can be either special-purpose or general-purpose, the processor being coupled to receive data and instructions from, and to send data and instructions to, a storage system, at least one input device, and at least one output device.
[0213] These computer programs (also referred to as programs, software, software applications, or code) include machine instructions for a programmable processor and can be implemented using high-level procedural and / or object-oriented programming languages and / or assembly / machine languages. As used herein, the terms machine-readable medium and computer-readable medium refer to any computer program product, apparatus, and / or device (e.g., a disk, optical disk, memory, and programmable logic device (PLD)) used to provide machine instructions and / or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The term machine-readable signal refers to any signal used to provide machine instructions and / or data to a programmable processor.
[0214] To provide for interaction with a user, the systems and techniques described here can be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user can provide input to the computer. Other types of devices can also be used to provide for interaction with the user; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form, including acoustic, speech, or tactile input. The systems and techniques described here can be implemented in a computing system that includes a backend component (e.g., as a data server), or includes a middleware component (e.g., an application server), or includes a frontend component (e.g., a client computer having a graphical user interface or a web browser through which the user can interact with an implementation of the systems and techniques described here), or any combination of such backend, middleware, or frontend components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network (LAN), a wide area network (WAN), and the Internet. The computing system can include clients and servers. The clients and servers are typically remote from each other and typically interact through a communication network. The relationship between the client and the server results from computer programs running on the respective computers and has a client-server relationship with each other.
[0215] Figure 19A is a conceptual diagram for determining a thermal setting and applying the thermal setting to the bed system 1900 to control the microclimate of the bed system 1900 and improve the user's sleep quality. At least one user 1902 can rest on the bed system 1900. The bed system 1900 can be any bed system described herein. The size of the bed system 1900 can be set to accommodate two users, such as the user 1902 and a companion. The bed system 1900 can include a sensor strip 1904 having sensors 1906A-N. The bed system 1900 can also include a heating and / or cooling unit 1907.
[0216] Briefly, the sensor strip 1904 can be attached to the top surface of the bed system 1900. The sensor strip 1904 can extend laterally across the top surface of the bed system 1900 from the left side to the right side of the bed system 1900. In an implementation where the bed system 1900 is intended for two users, two sensor strips can be arranged on the top surface of the bed system 1900. The first sensor strip can extend from the left side of the bed system 1900 to the midpoint of the bed system 1900 where the first user rests, and the second sensor strip can extend from the right side of the bed system 1900 to the midpoint of the bed system 1900 where the second user rests.
[0217] The sensor strip 1904 may include a plurality of sensors 1906A-N. The sensors 1906A-N may be linearly and evenly spaced along the length of the sensor strip 1904 and are configured to detect sensor data at the top surface of the bed system 1900. The sensors 1906A-N may be equally spaced along the length of the sensor strip 1904. For example, for a queen-sized bed system, the sensors 1906A-N may be equally spaced 5.5 inches apart. As another example, for a king-sized bed system, the sensors 1906A-N may be equally spaced 6.5 inches apart.
[0218] As described herein, the sensors 1906A-N may be temperature sensors configured to detect the microclimate temperature data of the bed system 1900 when the user 1902 is resting on top of the bed system 1900. In some embodiments, the sensors 1906A-N may be one or more other types of sensors, including but not limited to pressure and / or force sensors. Refer Figure 9B Further discussion of the bed system 1900 having the sensor strip 1904 with the sensors 1906A-N.
[0219] Components of the bed system 1900, such as the sensors 1906A-N and the heating / cooling unit 1907, may communicate with each other (e.g., wired and / or wirelessly) and communicate with at least the computing system 1908 via the network 1912. The computing system 1908 may be configured to perform one or more of the processes described herein. The computing system 1908 may be part of the bed system 1900, such as a controller of the bed system 1900. The computing system 1908 may also be remote from the bed system 1900, such as a cloud-based computing system or other network of computing devices. In some embodiments, the computing system 1908 may also be an edge computing device. One or more other variations and / or configurations of the computing system 1908 are also possible.
[0220] Still referring Figure 19A, the processes described herein may be performed at one or more different times. For example, at a first time t = 1, temperature data collected at the in-bed system 1900 during a sleep period may be used to generate a microclimate temperature profile for the sleep period of user 1902. Refer to boxes A - F discussed below. Boxes A - F may be performed during each sleep period of user 1902. Thus, the first time t = 1 may occur during the current sleep period of user 1902 and / or during a threshold amount of time after the current sleep period of user 1902 (e.g., once it is detected that user 1902 has left the in-bed system, once user 1902 accesses a mobile application regarding their sleep health / quality via their mobile computing device, after the expected or actual wake-up time / schedule of user 1902). The first time t = 1 may be defined in a variety of other ways. For example, the first time t = 1 may quantify any other unit of time.
[0221] At a second time t = 2, a thermal setting for controlling the microclimate conditions of the in-bed system 1900 during a subsequent sleep period of user 1902 may be determined. Refer to boxes M - P discussed further below. The second time may occur during the first time or as part of the first time. Additionally or alternatively, the second time may occur a threshold amount of time after the first time. The second time may also occur at a predetermined time interval. For example, the second time may occur after every 3, 5, 7, 10, 14, etc. consecutive sleep periods of user 1902 (e.g., where each sleep period is a night's sleep of user 1902). The second time may also occur whenever any other threshold condition is met (e.g., a threshold amount of consecutive sleep periods in the past, a threshold change in sleep quality occurs within a certain amount of time). In some specific implementations, the second time may occur before or after each sleep period of user 1902.
[0222] At a third time t = 3, the thermal setting determined at the second time t = 2 may be applied to the in-bed system 1900. Refer to boxes A - B and X - Y discussed below. The third time may occur during the current sleep period of user 1902. Thus, the microclimate conditions of the in-bed system 1900 may be dynamically controlled while user 1902 is resting on the in-bed system 1900 to promote improved sleep quality for user 1902. In some specific implementations, the third time may occur before a subsequent sleep period of user 1902. For example, the third time may be part of or during the second time t = 2. The computing system 1908 may determine when to implement the thermal setting during a subsequent sleep period based on historical sleep data and / or microclimate temperature data. Then, the computing system 1908 may cause the heating / cooling unit 1907 of the in-bed system 1900 to load or be pre-programmed with the determined thermal setting such that during runtime (e.g., during the current sleep period of user 1902), the thermal setting may be automatically implemented to achieve optimal microclimate conditions at the in-bed system 1900.
[0223] Referring to the boxes A - F at the first time t = 1, the sensors 1906A - N of the sensor strip 1904 can collect temperature data (box A). The temperature data can be collected continuously throughout the sleep period of the user 1902. The temperature data can be collected at a predetermined time interval during the sleep period of the user 1902 (e.g., epoch, every 30 seconds, every 1 minute, every 3 minutes, every 5 minutes). In box B, the temperature data can be sent to the computing system 1908. The temperature data can be sent in real - time or near real - time when it is collected. In some embodiments, the temperature data can be sent in batches. For example, the temperature data can be sent at a predetermined time interval, once the current sleep period of the user 1902 ends, after a threshold amount of time after the end of the current sleep period of the user 1902, after a threshold amount of consecutive / continuous sleep periods, and / or before the start of a subsequent sleep period. The temperature data can also be sent at one or more other time points before, during, or after collecting the temperature data in box A.
[0224] At time t = 1, the computing system 1908 can process the received temperature data to determine one or more microclimate temperature values at one or more predetermined time intervals (box C). For example, as further shown and described in the process 2000 of Figure 20 , the computing system 1908 can apply one or more machine - learning - trained models to the temperature data to determine different microclimate temperature values at the top surface of the bed system 1900 based on the data at a predetermined time interval. The predetermined time interval can vary. For example, the microclimate temperature values can be determined for every 5 minutes, 10 minutes, 15 minutes, 20 minutes, 25 minutes, 30 minutes, etc. of the sleep period of the user 1902.
[0225] In box D, the computing system 1908 can determine the integrated microclimate temperature for the entire sleep period of the user 1902. For example, the computing system 1908 can sum all the microclimate temperature values determined in box C. The computing system 1908 can also average the summed microclimate temperature values to determine the integrated microclimate temperature value for the entire sleep period of the user 1902. Aggregating many microclimate temperature values in box D can be beneficial for accurately determining the average microclimate temperature for the entire sleep period of the user 1902. One or more other aggregation techniques can be used to determine the integrated microclimate temperature in box D.
[0226] The computing system 1908 may also determine a sleep quality metric for user 1902 at time t = 1 in block E. Block E may be performed at the end of the current sleep period. A sleep quality metric may be determined for each sleep period of user 1902. Step E may also be performed before, during, or after one or more of blocks A - D. The sleep quality metric may be a numerical value indicating the level of sleep quality experienced by user 1902 during the sleep period. The sleep quality metric may indicate how well user 1902 slept, which may be based on various inputs and / or sensor data collected by sensors and other components of the bed system 1900. For example, as described above, the sleep quality metric may be determined based on pressure data sensed at the bed system 1900 during the sleep period, where changes in pressure may indicate movement (e.g., tossing and turning), snoring, changes in heart rate, changes in respiratory rate, etc. of user 1902 during their sleep. Machine learning techniques may be used to model the pressure data as one or more values indicating the sleep quality metric for user 1902.
[0227] The computing system 1902 may store the microclimate and sleep quality information in a temperature map for the sleep period of user 1902 (block F). This information may be stored in the data repository 1910. The data repository 1910 may be any type of database, data storage device, and / or cloud - based storage device. In some embodiments, the data repository 1910 may be part of the computing system 1908. The computing system 1902 may store the integrated microclimate temperature and / or microclimate temperature values for time intervals throughout the sleep period in the temperature map for the sleep period. Once the temperature information is determined in block C or block D, the computing system 1902 may store the temperature information. When the sleep quality metric is determined in block E, the computing system 1902 may also store the sleep quality metric in association with information about the sleep period. Then, the microclimate and / or sleep quality information may be retrieved from the data repository 1910 at a later time (e.g., during a second time and / or a third time) for additional processing.
[0228] Referring to the frame M-P at the second time t = 2, the computing system 1902 can retrieve temperature feature maps (frame M) for one or more past sleep periods of the user 1902. The temperature feature maps can be retrieved from the data repository 1910. The computing system 1902 can retrieve temperature feature maps for a threshold amount of past sleep periods. For example, the computing system 1902 can retrieve temperature feature maps for the past 3, 5, 7, 8, 9, etc. past sleep periods of the user 1902. The computing system 1902 can retrieve temperature feature maps for consecutive sleep periods. The computing system 1902 can also retrieve temperature feature maps for sleep periods that are not necessarily consecutive (e.g., the first sleep period, the third sleep period, the fifth sleep period). The computing system 1902 can retrieve temperature feature maps for any amount of past sleep periods, which can be used to accurately and efficiently determine the thermal settings aimed at controlling the microclimate at the bed system 1900 during subsequent sleep periods of the user 1902, and thus enable the user 1902 to experience a higher level of sleep quality. In some specific implementations, the threshold amount of past sleep periods can vary based on season (e.g., winter, summer, spring, fall), the circadian rhythm of the user 1902, month, year, age, and / or other demographic information about the user 1902.
[0229] In still other specific implementations, the computing system 1908 can retrieve temperature feature maps for a threshold amount of past sleep periods of a general user population. The user population can include the user 1902. The user population can also include users having similar health data, sleep quality data, geographical location, and / or other demographic data as the user 1902. Using the temperature feature maps of sleep periods from a robust set of users can allow for the accurate identification of a target temperature feature map, which can achieve improved sleep quality for a specific user 1902.
[0230] The computing system 1908 can identify a target temperature feature map among the retrieved temperature feature maps in frame N. The computing system 1908 can identify the target temperature feature map based on evaluating the sleep quality metrics associated with each of the retrieved temperature feature maps. The target temperature feature map can be identified as having the highest sleep quality metric among all the retrieved temperature feature maps. As another example, the target temperature feature map can be identified as having a sleep quality metric that exceeds a threshold sleep quality value. In some examples, the threshold sleep quality value can be the numerical value 90. One or more other criteria can also be used to identify the target temperature feature map in frame N.
[0231] Next, in frame O, the computing system 1908 can map the microclimate information of the target temperature feature map to thermal settings. As referenced Figures 21A to 21BAs described in process 2100, computing system 1908 can use machine learning models and techniques to decompose and map the microclimate temperature values in the target temperature feature map to predetermined thermal routine settings. Thus, computing system 1908 can determine and / or identify thermal routine settings that, when implemented at bed system 1900, can reproduce the microclimate temperature values (or some of the microclimate temperature values) in the target temperature feature map when user 1902 experiences a threshold sleep quality level.
[0232] Computing system 1908 can return the thermal settings in block P. For example, computing system 1908 can store the thermal settings in data repository 1910. Computing system 1908 can additionally or alternatively store the thermal settings in local memory such that the thermal settings can be quickly retrieved and executed at runtime during a subsequent sleep period of user 1902. As another example, computing system 1908 can send the thermal settings to heating / cooling unit 1907 of bed system 1900 or to the controller of bed system 1900 such that heating / cooling unit 1907 can be preprogrammed with the thermal settings. Thus, at runtime during a sleep period of user 1902, heating / cooling unit 1907 can automatically execute the thermal settings as described below.
[0233] Referring to blocks A - B and X - Y at a third time t = 3, sensors 1906A - N can collect temperature data (block A) during a sleep period of user 1902, such as a subsequent sleep period of that user. The collected temperature data can then be sent to and received by computing system 1908 (block B). Computing system 1908 can determine whether the temperature data received during the current sleep period of user 1902 meets a thermal setting routine activation criterion (block X). This criterion can be used to determine whether and / or when to activate the thermal settings at bed system 1900. For example, computing system 1908 can determine whether the current temperature at the top surface of bed system 1900 has dropped below a threshold temperature, where the threshold temperature corresponds to a threshold preferred sleep quality level (e.g., the bed is too cold for user 1902 to comfortably fall asleep or stay asleep). If the current temperature is less than the threshold temperature, the criterion can be met and computing system 1908 can send an instruction to heating / cooling unit 1907 to activate the thermal settings (block Y). As another example, if the current temperature exceeds the threshold temperature (e.g., the bed is too hot for user 1902 to comfortably fall asleep or stay asleep), the criterion can be met and the thermal settings can be activated in block Y. As another example, computing system 1908 can compare the temperature data with one or more threshold temperature values and / or temperature value ranges. Computing system 1908 can also compare the derivative of the received temperature data with thresholds and / or ranges to determine whether to activate the thermal settings in block Y.
[0234] One or more other criteria may be used at runtime during the sleep period of user 1902. The criteria may also establish different rules and / or thresholds based on the age, health status, gender, geographical location, season, etc. of user 1902. The criteria may also establish different rules and / or thresholds for different intervals and / or sleep stages during the sleep period of user 1902. Thus, different thermal settings may be activated at different points during the sleep period of user 1902 based on whether the current temperature of the bed system 1900 should be decreased, increased, and / or maintained to achieve a desired microclimate for improving / maintaining the sleep quality of user 1902. In some specific implementations, the heating / cooling unit 1907 and / or the controller of the bed system 1900 may make a determination in block X and activate the thermal setting in block Y.
[0235] In some specific implementations, user 1902 may override the thermal setting and / or selectively determine when to activate the thermal setting at the bed system 1900. For example, the thermal setting may be presented as a suggestion in a GUI display at the computing device of user 1902. Then, user 1902 may select whether they want to activate the thermal setting at the current time, during the next / subsequent sleep period, or at any other time. User 1902 may also select an option to allow the heating / cooling unit 1907 to automatically activate the thermal setting when, for example, it is determined that a routine activation criterion is met. As another example, user 1902 may choose to ignore the suggested thermal setting. Thus, the thermal setting may not be activated at the bed system 1900 during the subsequent sleep period of user 1902.
[0236] In some specific implementations, blocks A - B and / or X - Y may be performed at various time windows during the current sleep period of user 1902. For example, blocks X - Y may be performed every 5 minutes, 10 minutes, 15 minutes, 20 minutes, 30 minutes, 1 hour, 2 hours, 3 hours, etc. during the sleep period of user 1902. As another example, blocks X - Y may be performed when certain sleep stages or body movements of user 1902 are determined and / or detected using the disclosed techniques. In some specific implementations, blocks X - Y may be continuously performed during the entire sleep period of user 1902.
[0237] Additionally, as described herein, one or more of blocks A-F, M-P, and X-Y may be performed at the edge (e.g., at the controller of the bed system 1900, the computing device of the user 1902, and / or an edge computing device). For example, block X-Y may be performed at the edge to allow for rapid runtime adjustments to the microclimate of the bed system 1900 during the sleep period of the user 1902. As another example, blocks A-F and / or M-P may be performed away from the bed system 1900. Performing blocks A-F and / or M-P remotely may utilize the greater offline processing capabilities at the computing system 1908. Robust and accurate determinations may be made by leveraging the remote offline processing capabilities of the computing system 1908.
[0238] In some particular implementations, the bed system 1900 may be used by two users. A temperature profile may be modeled / generated for each side of the bed system 1900 (e.g., for each user) in block A-F. A target temperature profile may also be determined for each side of the bed system 1900 in block M-P. A criterion that takes into account the impact of the microclimate temperature value at the second side of the bed system 1900 may also be used to determine the target temperature profile for the first side of the bed system 1900. Similarly, a criterion that takes into account the impact of the microclimate temperature value at the first side of the bed system 1900 may be used to determine the target temperature profile for the second side of the bed system 1900. After all, sometimes when a heating or cooling routine is activated at one of the two sides of the bed system 1900, the heated or cooled air from that side of the bed system 1900 may permeate to the other side of the bed system 1900, thereby affecting the microclimate of the other side of the bed system 1900. Additionally, when a user is in the bed system 1900, it may be determined in block X-Y whether to activate a thermal setting and which thermal settings to activate for each of the first and second sides of the bed system 1900. Sometimes, block X-Y may be performed at the edge (e.g., by the heating / cooling unit 1907 and / or the controller of the bed system 1900) to dynamically adjust the microclimate at each side of the bed system 1900.
[0239] Figure 19B is a flowchart of a process 1920 for controlling the microclimate of a bed system as Figure 19A shown. The process 1920 may be executed by the Figure 19A computing system 1908 described in. One or more blocks in the process 1920 may also be executed by one or more other components described herein.
[0240] Referring Figure 19B to the process 1920 in, a temperature profile for the sleep period of the user of the bed system may be determined at time t = 1 (block 1922). Further discussion is made with reference to Figure 19A block A-F in.
[0241] At time t = 2, an optimal thermal setting can be determined in block 1924 based on a temperature profile for a past sleep period for a threshold amount. Refer to Figure 19A block M-P in
[0242] for further discussion. Then, the optimal thermal setting can be activated in real time during a subsequent sleep period of the user at time t = 3 (block 1926). Refer to Figure 19A blocks A-B and X-Y in
[0243] Figure 20 is a conceptual diagram of a process 2000 for determining microclimate temperature data of a bed system 1900 while a user 1902 is resting on the bed system 1900. As described herein, the process 2000 can approximate or otherwise determine microclimate temperature values of the bed system 1900 during a sleep period of the user 1902 using temperature data collected by sensors 1906A-N of a sensor strip 1904 (e.g., 5 temperature sensors). The sensors 1906A-N can collect temperature data at various sampling rates. For example, the temperature data can be sampled at approximately 0.2 Hz per signal.
[0244] The process 2000 can be executed by a Figure 19A computing system 1908 described in Figure 19A In addition, the process 2000 is similar or identical to
[0245] As Figure 20 shown by the process 2000 in
[0246] Next, in block 2004, the selected model can be applied to the temperature data. As mentioned above, a boosted decision tree model is selected here. Machine learning techniques can be used to determine the parameters for the model. Data collected during previous sleep periods of user 1902 and / or the general user population can be used to train the model. The training data can include temperature data collected by the temperature sensors at the bed system 1900 of user 1902 and / or the bed systems of users in the general user population. In some specific implementations, the training data can include temperature data collected as ground truth data.
[0247] By applying the best model to the collected temperature data, microclimate temperature values can be determined for each minute or other predetermined time interval (block 2006).
[0248] Then, the microclimate temperature values for each minute can be aggregated to determine the average microclimate temperature for the sleep period of user 1902 (block 2008). The sleep period can be the time user 1902 is in bed. For example, as described above, one or more sensors of the bed system 1900 (e.g., pressure sensors, force sensors, temperature sensors, any combination thereof) can be used to detect the presence of user 1902. Using presence detection, the computing system as described herein can determine when user 1902 is in the bed system 1900, or the time user 1902 is in bed. Then, the computing system can determine the microclimate temperature values for each minute of the time user 1902 is in bed and the average microclimate temperature for the entire time user 1902 is in bed.
[0249] The average microclimate temperature for the sleep period and / or the microclimate temperature values for each minute can be returned, as shown in graph 2010. Graph 2010 is a Bland - Altman graph, which can be used to quantify the accuracy of the temperature estimates and to evaluate whether the accuracy depends on the value of the temperature to be reproduced. The horizontal axis of graph 2010 represents the actual temperature. The actual temperature values are those that can be reproduced using the disclosed techniques. The vertical axis of graph 2010 indicates the difference between the actual temperature values and the estimated temperature values determined using the disclosed techniques. The horizontal dashed line in graph 2010 indicates the limits of agreement, which characterize the interval within which the estimated temperature values deviate from the actual temperature values by a threshold amount (e.g., 95%). To obtain the threshold amount (e.g., 95% confidence interval), the standard deviation of the difference between the actual temperature values and the estimated temperature values can be determined, multiplied by a threshold factor (e.g., factor 1.96), and then added to and subtracted from the average temperature value to respectively determine the upper and lower limits of agreement.
[0250] Figures 21A to 21Bis a conceptual diagram of process 2100 for determining a thermal setting to be achieved during a user's subsequent sleep period based on processing data corresponding to the user's past sleep periods. Process 2100 corresponds to time t = 2 as described by blocks M - P in reference Figure 19A as shown. Process 2100 may be executed by computing system 1908 described above. One or more blocks in process 2100 may also be executed by other components and / or computing systems described throughout this disclosure.
[0251] Referring to process 2100, a target temperature profile may be identified in block 2102. As previously described, a temperature profile may be generated for each sleep period of the user. The temperature profile may indicate microclimate temperature values at various time intervals during each past sleep period. Each temperature profile may be represented as a graph depicting the microclimate temperature values throughout the user's sleep period. In Figures 21A to 21B the illustrative example of, graphs 2104A, 2104B, and 2104N indicate temperature profiles for three different sleep periods of the user. Each temperature profile may also be associated with a sleep quality metric, as determined using the disclosed techniques. Without loss of generality, the sleep quality metric may be a sleep quality score or other quantification of sleep quality, including but not limited to subjective sleep quality metrics (e.g., sleep quality perceived by the user).
[0252] In Figures 21A to 21B the example of, the sleep period shown by graph 2104A has a sleep quality metric of 72, the sleep period shown by graph 2104B has a sleep quality metric of 60, and the sleep period shown by graph 2104N has a sleep quality metric of 90. Although three graphs 2104A, 2104B, and 2104N are shown for three past sleep periods of the user, additional or fewer temperature profiles may be retrieved in block 2102. Additionally, as shown by graph 2104N, vertical line 2105 indicates the time the user falls asleep. Once the user falls asleep, the microclimate temperature values detected at the top surface of the in - bed system may increase and decrease, as shown by graphs 2104A, 2104B, and 2104N.
[0253] In block 2102, a target temperature profile may be identified. The target temperature profile may be identified by ranking the retrieved temperature profiles for the three sleep periods. These temperature profiles may be ranked from the highest sleep quality metric to the lowest sleep quality metric based on the corresponding sleep quality metrics of the temperature profiles. In Figures 21A to 21B the example of, the target temperature profile may be identified as graph 2104N, which has the highest sleep quality metric value of 90 among the temperature profiles.
[0254] Then, as shown by the target temperature profile in graph 2104N, it can be decomposed into a sum of heat settings in block 2106. The analysis module of the computing system described herein can be configured to decompose the microclimate temperature values of the target temperature profile into heat settings. In other words, the analysis module can identify the relationship between the microclimate temperature values and the heat settings and associate the microclimate temperature values with the heat settings. Figures 21A to 21B The heat settings in the example of Figures 21A to 21B are shown in graph 2110. The target temperature profile can be decomposed using equation 2112 and various parameters determined for each heat setting. The parameters for each setting are further discussed with reference to the table below.
[0255] Table 1: Estimated parameters for the heat setting
[0256]
[0257]
[0258] As part of block 2106, the computing system can access a library 2108 of heat settings and the impact of the heat settings on the microclimate temperature of the bed system. The computing system can use the retrieved information to determine heat settings that can be used to reproduce the target temperature profile during a subsequent sleep period of the user. For example, the computing system can use the retrieved information to map the microclimate temperature values to heat settings. Sometimes, the computing system can use piecewise logical fitting with non-overlapping windows having a duration threshold amount. As described herein, piecewise logical fitting can include segmenting the target temperature profile into non-overlapping time windows. Without loss of generality, the windows can be 60 minutes long. Sometimes, one or more of the windows can be longer than 60 minutes. For example, the last window can be longer than 60 minutes. For each window, the computing system can implement an algorithm that fits a logical function, such as: T(t) = T0 + a*(1 + exp(-bt + c))^-1, where T is temperature and t is time. In some embodiments, the duration threshold amount can be 60 minutes long. The duration threshold amount can be a longer or shorter time period. The computing system can implement one or more rules, algorithms, and / or machine learning techniques (e.g., a model trained by machine learning) in block 2106 to determine the heat settings to be implemented during a subsequent sleep period of the user, as further described below.
[0259] Figure 22 is a conceptual diagram of process 2200 for applying the heat settings determined during the Figures 21A to 21B process to improve the sleep quality level of the user during a subsequent sleep period. Process 2200 can be similar or identical to Figure 19A block X-Y at time t = 3 in
[0260] Process 2200 may be performed by computing system 1908 described above. Computing system 1908 may have one or more processors that receive and execute instructions that cause computing system 1908 to perform one or more blocks of process 2200. Computing system 1908 may also include a network or communication interface that allows computing system 1908 to communicate with other components such as data repository 1910 and / or heating / cooling unit 1907 of bed system 1900 (refer to Figure 19A ). One or more blocks of process 2200 may also be performed by other components described herein.
[0261] Referring to process 2200, the determined heat setting 2110 may be applied to the bed system. More specifically, computing system 1908 may execute instructions to pre-program heating / cooling unit 1907 of bed system 1900 with heat setting 2110 such that during a subsequent sleep period of the user, heat setting 2110 may be automatically activated. Heat setting 2110 may be retrieved by computing system 1908 from data repository 1910. In some specific implementations, heat setting 2110 may be stored in local memory or the data repository of computing system 1908 for faster access and retrieval during process 2200. It is expected that heat setting 2110 enables a high sleep quality experienced by the user to be close to the high sleep quality of the target temperature profile identified in Figures 21A to 21B process 2100. In some specific implementations, a number of heat settings may be stored and / or programmed into heating / cooling unit 1907, where each of the heat settings may be triggered / applied based on different external factors. For example, different heat settings may be activated in one season versus another (e.g., winter versus summer) to promote good sleep. Different heat settings may also be activated depending on the age of the user and / or the day of the week. One or more other factors may affect what heat setting is applied to bed system 1900 in process 2200. Figures 21A to 21B Heat setting 2110 may be activated in heating mode 2204. Additionally or alternatively, heat setting 2110 may be activated in cooling mode 2206. As described with reference to
[0262] , temperature sensors 1906A-N may detect the current temperature value at the top surface of bed system 1900. The temperature value may be sent to the controller of bed system 1900 and / or computing system 1908 for processing and analysis. Computing system 1908 may determine, for example, whether the temperature value meets the criteria for activating heating mode 2204, activating cooling mode 2206, or not activating heating / cooling unit 1907. Figure 19A
[0263] For example, if the current temperature value of the bed system 1900 is greater than a certain threshold temperature value or range (where the threshold or threshold range indicates a preferred or optimal temperature for the user to achieve improved sleep quality), the computing system 1908 may send instructions to the heating / cooling unit 1907 of the bed system 1900, and these instructions cause the heating / cooling unit 1907 to activate the heat setting 2110 in the cooling mode 2206. Sometimes, the heating / cooling unit 1907 (instead of the computing system 1908) may determine whether the current temperature value meets the criteria for activating the heat setting 2110 in the cooling mode 2206. In the cooling mode 2206, the heating / cooling unit 1907 of the bed system 1900 may be configured to discharge warm air from the bed system 1900. A reversible fan may also be used to extract air and / or heat from the microclimate at the top surface of the bed system. The cooling mode 2206 may be activated by the heating / cooling unit 1907 for the duration required to continuously reduce the microclimate at the top surface of the bed system 1900 to the threshold temperature value or range. The cooling mode 2206 may remain activated until the threshold temperature value or range is detected by the temperature sensor of the bed system 1900. The heating / cooling unit 1907 may monitor the current temperature value sensed by the temperature sensors 1906A-N to determine when to deactivate or turn off the cooling mode 2206. The computing system 1908 may additionally or alternatively monitor the current temperature value to determine when to deactivate or turn off the cooling mode 2206.
[0264] As another example, if the current temperature of the bed system 1900 is less than a threshold temperature value or range, the computing system 1908 may send instructions to the heating / cooling unit 1907 of the bed system 1900 that cause the heating / cooling unit 1907 to activate the heat setting 2110 in the heating mode 2206. In the heating mode 2204, ambient / surrounding air may be drawn into the bed system by components of the heating / cooling unit 1907. The heater of the heating / cooling unit 1907 may also be activated by closed-loop monitoring of the microclimate at the top surface of the bed system 1900 performed by the computing system 1908 (in other words, the computing system 1908 may continuously receive temperature values from the temperature sensors 1906A-N when the heater is activated and determine when to deactivate or turn off the heater such that the heater does not cause the microclimate of the bed system 1900 to exceed a certain threshold temperature value). The reversible fan of the heating / cooling unit 1907 may also be used to push the heated air into the microclimate at the top surface of the bed system 1900. The heating mode 2204 may be activated for the duration required to continuously raise the microclimate at the top surface of the bed system 1900 to the threshold temperature value or range. The heating mode 2204 may remain activated until the threshold temperature value or range is detected by the temperature sensors 1906A-N of the bed system 1900. As described above, the computing system 1908 may continuously monitor the temperature values detected by the temperature sensors 1906A-N to determine when to deactivate or turn off the heating mode 2204. The computing system 1908 may then send instructions to the heating / cooling unit 1907 that, when executed, cause the heating / cooling unit 1907 to deactivate the heating mode 2204. Sometimes, the heating / cooling unit 1907 or another component of the bed system 1900 (e.g., a controller) may monitor the temperature values and determine when to deactivate the heating mode 2204.
[0265] Figure 23 is a conceptual diagram of a process 2300 for modeling microclimate temperature data collected at the bed system as heat settings. Process 2300 is the same as or similar to the blocks A-F executed at time t = 1 in Figure 19A Process 2300 may be executed by the computing system 1908, as described above. One or more of the blocks in process 2300 may also be executed by other components described throughout this disclosure.
[0266] As shown in process 2300, temperature data can be collected during the user's sleep period in block 2302. Physical modeling techniques can be used in block 2304 to measure changes in the collected temperature data that may be associated with one or more thermal settings (e.g., a cooling or heating bed system). Physical modeling and experimental validation techniques can be used. The types of thermal regulation described throughout this disclosure allow for a logical change model where the instantaneous rate of temperature change can be proportional to the average rate of change "r > 0", the current temperature of the bed system "T", and the difference between the current temperature and the final temperature of the bed system "T0 + T F ″. See Equations 1 and 2 below.
[0267] Equation 1:
[0268] Equation 2:
[0269] When a heating thermal setting is applied to the bed system, the microclimate temperature of the bed system increases according to the first law of thermodynamics (internal energy U = heat added Q - work W), which results in a logical growth type equation (see Equation 1), where "r" is the average increase in temperature per unit time, T0 is the initial temperature, and T0 + T F is the maximum temperature that the microclimate can reach. The solution of the differential equation gives rise to a logical growth curve, as shown by Equation 2, which characterizes the temperature as a function of time, where "τ" is a half-time parameter indicating the half-warming time (e.g., when t = τ, then T = T0 + 0.5T F ).
[0270] Based on the processing in block 2304, a model can be trained. The model can be used to identify parameters for different scenarios (e.g., when the bed system microclimate rises above a threshold temperature value or range, when the bed system microclimate drops below a threshold temperature value or range), in which the thermal settings can be activated (block 2306). For example, parameters can be identified for thermal conditions that can include but are not limited to high heating, medium heating, low heating, high cooling, medium cooling, low cooling, and off. Using the model and the identified parameters, thermal settings 2308 can be returned to be used in response to various thermal conditions that can be detected / determined at the bed system. The parameters T F , r, and τ for each thermal setting can be empirically estimated by fitting the model to the measured temperature values generated when each of the thermal settings in the thermal settings is activated at the bed system.
[0271] Figure 24 is a flowchart of process 2400 for determining the microclimate temperature data of the bed system when the user is resting on the bed system. Process 2400 is related to Figure 1 boxes A - F in Figure 20is similar or identical to process 2000. Process 2400 can be executed during each sleep period of the user. In some specific implementations, process 2400 can be executed only during some sleep periods (e.g., every other sleep period, within 3 consecutive sleep periods, etc.). Additionally, process 2400 can be executed to not only determine the microclimate temperature data within a specific sleep period, but also determine whether a thermal setting is activated at the in-bed system to improve the user's sleep quality level.
[0272] Process 2400 can be executed by the computing system 1908 described with reference to Figure 19A Process 2400 can also be executed by one or more other computing systems and / or devices described herein (including but not limited to the controller of the in-bed system, the user computing device, the edge computing device, the remote computing device, and / or the cloud-based system). For illustrative purposes, process 2400 is described from the perspective of a computer system.
[0273] With reference to Figure 24 process 2400 in, the computing system can receive temperature data collected at the in-bed system during the user's sleep period (block 2402). The temperature data can be received from at least one temperature sensor of the in-bed system. As described herein, at least one temperature sensor can be configured as a sensor strip. The sensor strip can be removably attached to the top surface of the in-bed system for the user to rest on. In some specific implementations, at least one temperature sensor can include 5 temperature sensors linearly arranged along the sensor strip. These 5 temperature sensors can be equally spaced apart by a threshold distance along the sensor strip.
[0274] In block 2404, the computing system can determine the microclimate temperature value for a predetermined time interval during the sleep period. For example, the computing system can apply one or more models to the temperature data (block 2406). The models can be trained to approximate the microclimate temperature value for each predetermined time interval within the predetermined time intervals during the sleep period. The predetermined time interval can be a 1-minute segment during the sleep period / throughout the entire sleep period. Due to the relatively slow change of the microclimate temperature throughout the entire sleep period, a 1-minute segment can be used. One or more other predetermined time intervals are also possible. For example, the predetermined time interval can include but not be limited to 30-second segments, 1.5-minute segments, 2-minute segments, 3-minute segments, 5-minute segments, etc. Model training can also include using the autoML model selection described in process 2000 with reference to Figure 20 such that a model that meets the threshold selection criteria can be selected and deployed during runtime usage.
[0275] In block 2408, the computing system may determine a combined microclimate temperature value for the sleep period. The combined microclimate temperature value may be determined based on averaging or otherwise aggregating the microclimate temperature values for a predetermined time interval during the sleep period. Sometimes, block 2408 may not be performed. Aggregating the microclimate temperature values may advantageously provide a combined total microclimate temperature value for the user's entire sleep period. The combined microclimate temperature value may advantageously be used as a summary metric for the microclimate temperature throughout the sleep period. The combined value may also be advantageously used when the heating system is configured in a thermostat module of the bed system and maintains the temperature based on the combined microclimate temperature value.
[0276] In block 2410, the computing system may determine sleep quality information for the user's sleep period. The sleep quality information may include a numerical value indicating the level of sleep quality experienced by the user during the sleep period, as described throughout this disclosure. The sleep quality information may indicate the sleep quality experienced during a predetermined time period during the sleep period (e.g., at each sleep stage, in a 5-minute window, 10-minute window, 20-minute window, 30-minute window). The sleep quality information may also indicate the sleep quality experienced throughout the entire sleep period. The sleep quality information may be determined in a process separate from process 2400. In some embodiments, the sleep quality information may be determined at another time and / or by another computing system.
[0277] In block 2412, the computing system may return the microclimate temperature value and / or the sleep quality information for the user's sleep period. For example, the computing system may send instructions to present information about the user's sleep period to the user's computing device (e.g., a mobile phone). The information may be presented in a mobile application at the computing device. The information may be presented after one or more of those scenarios or other scenarios after a threshold amount of time when the user wakes up, when it is detected that the user has left the bed system, when the user opens the mobile application at their computing device, and / or after the sleep period. As a non-limiting example, the presented information may include a graphical depiction of the microclimate temperature values throughout the user's entire sleep period, a numerical and / or graphical indication of the average microclimate temperature value for the entire sleep period, and / or a numerical and / or graphical indication of the sleep quality information for the user. One or more other pieces of information may also be presented at the computing device.
[0278] In some embodiments, returning the microclimate temperature value and / or the sleep quality information in block 2412 may include storing the information in a data repository, a data storage, and / or a cloud-based storage system. Then, one or more of the information may be retrieved and used in one or more of the other processes described herein.
[0279] In some specific implementations, the executable process 2400 can determine microclimate temperature values for each side of the bed system, where each side of the bed system is used by a user. For example, the computing system can detect the presence of a user on the first side of the bed system based on a first pressure value collected by at least one sensor of the bed system. The computing system can also detect the presence of a second user on the second side of the bed system based on a second pressure value collected by at least one sensor of the bed system. When the user and the second user are detected on the bed system, the computing system can receive the temperature value detected at the top surface of the bed system from the temperature sensor. Thus, the computing system can generate corresponding temperature feature maps for the user and the second user based on applying a temperature model to the received temperature value, where the temperature model has been trained to distinguish the received temperature values for the corresponding sides of the bed system and generate temperature feature maps for each side of the bed system. The computing system can also store the corresponding temperature feature maps for the user and the second user in the data repository described herein for later use (e.g., by the controller of the bed system) to determine the thermal settings for each side of the bed system during subsequent sleep periods of the corresponding user and the second user.
[0280] Figure 25 is a flowchart of a process 2500 for determining thermal settings to be implemented during a subsequent sleep period of a user based on processing data corresponding to the user's past sleep periods. Process 2500 is related to Figure 19A boxes M - P in Figures 21A to 21B one or more boxes in process 2100 in Figure 23 and / or is the same as or similar to process 2300 in
[0281] Process 2500 can be executed by the computing system 1908 described with reference to Figure 19A Process 2500 can also be executed by one or more other computing systems and / or devices described herein (including but not limited to the controller of the bed system, user computing devices, edge computing devices, remote computing devices, and / or cloud - based systems). For illustrative purposes, process 2500 is described from the perspective of a computer system.
[0282] Refer to Figure 25In process 2500, the computing system may receive a temperature signature of a user's past sleep period of the bed system (block 2502). The computing system may retrieve the temperature signature from a data repository, a data storage, and / or other types of data storage systems described herein. The computing system may receive a threshold amount of temperature signatures of the user's past sleep periods. For example, the computing system may receive temperature signatures for the past 3 consecutive sleep periods, 5 consecutive sleep periods, 7 consecutive sleep periods, 9 consecutive sleep periods, 14 consecutive sleep periods, every other sleep period within a threshold number of days (e.g., 3 days, 5 days, 7 days, 9 days, 10 days), and / or any other pattern of past sleep periods.
[0283] In block 2504, the computing system may determine a thermal setting that reproduces the temperature signature of at least one past sleep period in the past sleep periods. The temperature signature may include a plurality of temperature values detected at the top surface of the bed system throughout the at least one past sleep period in the user's past sleep periods. For example, the temperature signature may include an integrated microclimate temperature value of at least one past sleep period. The temperature signature may additionally or alternatively include microclimate temperature values detected / determined at one or more predetermined time intervals (e.g., reference Figure 24 ). Additionally, the temperature signature may include a time series of temperature values collected by the temperature sensors of the bed system during at least one past sleep period. The temperature values may be collected when one or more different thermal settings are activated at the bed system. The temperature values may be additionally or alternatively collected when no thermal setting is activated at the bed system.
[0284] The computing system may determine a thermal setting that reproduces the integrated microclimate temperature value of at least one past sleep period. For example, the computing system may retrieve a thermal setting library from the data repository described herein, which maps each of the retrieved thermal settings to the impact of those thermal settings on the microclimate at the top surface of the bed system. Then, the computing system may identify, based on the impact of the retrieved thermal settings on the microclimate, one of the retrieved thermal settings that causes the microclimate at the top surface of the bed system to reach at least one temperature value in the temperature signature of at least one past sleep period.
[0285] The computing system may determine a thermal setting that reproduces a plurality of microclimate temperature values in the microclimate temperature values of at least one past sleep period. Thus, the computing system may determine a plurality of different thermal settings to achieve a plurality of different microclimate temperature values during at least one past sleep period. Determining a plurality of different thermal settings may allow for an accurate minute-by-minute (or time-interval-by-time-interval) reproduction of at least one past sleep period during the user's subsequent sleep periods. Reproducing the microclimate temperature values at each minute and / or interval of the past sleep period may enable the user to experience improved sleep quality throughout the subsequent sleep period.
[0286] As part of block 2504, the computing system may apply the model to a temperature feature map of at least one past sleep period in the past sleep history (block 2506), as described throughout this disclosure.
[0287] In block 2508, the computing system may determine a thermal setting for each segment of at least one past sleep period in the past sleep history. Each segment of the sleep period may be a non-overlapping 60-minute time period. In some embodiments, each segment may be a 60-minute time period that overlaps by some threshold amount of time (e.g., 30 seconds, 1 minute, 1.5 minutes, 2 minutes, 3 minutes, 5 minutes). In some embodiments, the time period may vary. The time period may include, but is not limited to, 15 minutes, 30 minutes, 40 minutes, 1.5 hours, 2 hours, etc.
[0288] In block 2510, the computing system may additionally or alternatively determine a thermal setting for a continuous time period. The continuous time period may be the total amount of time that the user was on the bed system (e.g., user presence detected, user sleeping detected) during at least one past sleep period.
[0289] In block 2512, the computing system may identify thermal condition parameters of the microclimate at the top surface of the bed system based on fitting the model to each temperature feature map. The thermal condition parameters may indicate the effect of one or more different thermal settings on the microclimate at the top surface of the bed system. The computing system may then determine the thermal setting based on the identified thermal condition parameters.
[0290] Additionally, the computing system may return the thermal setting in block 2514. The computing system may store the thermal setting in the data repository described herein. The thermal setting may then be retrieved at a later time for use in one or more of the other processes described herein. Optionally, the computing system may program the thermal routine of the heating and / or cooling unit of the bed system to execute the thermal setting during at least one subsequent sleep period (block 2516). As an illustrative example, the computing system may program the heating and / or cooling unit to execute one or more of the thermal settings based on a microclimate temperature value detected at the bed system that exceeds a certain threshold temperature value during a subsequent sleep period.
[0291] Although process 2500 is described with reference to receiving temperature profiles of a particular user's past sleep periods for a bed system, temperature profiles of past sleep periods of a user group may also be used to perform process 2500. For example, the computing system may receive temperature profiles of past sleep periods of a user group that includes the user. In some embodiments, the user group may include users having demographic data or other user information similar to the user. For example, the user group may include users having the same or similar age, gender, health status, geographic location, bed system, etc. as the user. The computing system may then select at least one temperature profile among the temperature profiles of the user group that meet a threshold thermal setting criterion. The threshold thermal setting criterion may indicate a threshold sleep quality level associated with (e.g., having a relationship with or otherwise corresponding to) each temperature profile. For example, if the threshold sleep quality level is met and / or exceeded, the associated temperature profile may be selected. The computing system may determine a thermal setting for reproducing the selected at least one temperature profile based on a relationship between temperature values identifying the selected at least one temperature profile and one or more predetermined thermal settings for heating and / or cooling units of the bed system.
[0292] Figure 26 is a flowchart of another process 2600 for determining a thermal setting to be achieved during a subsequent sleep period of a user based on processing data corresponding to the user's past sleep periods. Process 2600 may be the same as or similar to one or more of the blocks M - P described in Figure 19A and / or FIGS. 21 and Figure 22 of process 2100 and 2200.
[0293] Process 2600 may be performed by the computing system 1908 described with reference to Figure 19A Process 2600 may also be performed by one or more other computing systems and / or devices described herein (including but not limited to a controller of the bed system, a user computing device, an edge computing device, a remote computing device, and / or a cloud - based system). For illustrative purposes, process 2600 is described from the perspective of a computer system.
[0294] Referring to process 2600, at block 2602, the computing system may retrieve data for a set of past sleep periods of a user of the bed system. The computing system may retrieve data for a threshold amount of past sleep periods. The threshold amount may vary. For example, the threshold amount may be between 7 consecutive sleep periods and 8 consecutive sleep periods. As other non - limiting examples, the threshold amount may be 3 consecutive sleep periods, 5 consecutive sleep periods, 7 consecutive sleep periods, 9 consecutive sleep periods, etc.
[0295] In block 2604, the computing system may identify past sleep periods that meet the sleep quality criteria based on the retrieved data. The sleep quality criteria may indicate temperature profile data that enables the user to experience a threshold sleep quality level during the past sleep period, as described herein. In some embodiments, the sleep quality criteria may change based on the current season. The current season may include at least one of winter, spring, summer, or fall. The sleep quality criteria may additionally or alternatively change based on the user's circadian rhythm. The sleep quality criteria may additionally or alternatively change based on the user's age. The sleep quality criteria may additionally or alternatively change based on the day of the current week. One or more other factors may also cause the sleep quality criteria to change dynamically.
[0296] As part of identifying the past sleep periods in block 2604, the computing system may determine whether the data for the past sleep periods includes a sleep quality metric that exceeds a threshold sleep quality value (block 2606). As described herein, the sleep quality metric may be a numerical value indicating a sleep quality score. In some embodiments, the sleep quality metric may be a user-perceived sleep quality value. For example, the user may complete a subjective survey after waking up from the sleep period, in which the user indicates how they felt about their sleep during that sleep period. The computing system may retrieve the sleep quality metric from the data repository and for each past sleep period in the past sleep periods. The computing system may identify the sleep periods among the past sleep periods in which the sleep quality metric exceeds the threshold sleep quality value and select the temperature profile corresponding to the identified sleep period. In some embodiments, the sleep quality metric may be a numerical value and the threshold sleep quality value may be 90.
[0297] As another example, the computing system may determine whether the data for the past sleep periods includes a sleep quality metric that has the highest sleep quality value among the set of past sleep periods (block 2608). The computing system may then select the temperature profile corresponding to the sleep period with the highest sleep quality value.
[0298] Similarly, as another example, in block 2610, the computing system may rank a set of past sleep periods based on corresponding sleep quality metrics. The computing system may then select the highest-ranked temperature feature map among the ranked temperature feature maps. The temperature feature maps may be ranked from the highest sleep quality metric to the lowest sleep quality metric. In some embodiments, the computing system may identify and select past sleep periods that are within a top threshold percentage in the ranking and / or sleep quality metric. For example, the computing system may identify past sleep periods that are in the top 5% of all sleep periods. As another example, the computing system may identify past sleep periods that have a top 5% with respect to the sleep quality metric / score value. Then, heat settings may be generated / reproduced for each of those identified sleep periods. Sometimes during runtime, those heat settings may be randomly applied to subsequent sleep periods.
[0299] In some embodiments, criteria specific to the current or upcoming season may be used to identify sleep periods. After all, during summer and winter, the microclimate temperature feature maps and settings may be different.
[0300] In block 2612, the computing system may identify heat settings for execution during at least one subsequent sleep period based on data associated with the identified past sleep periods. The computing system may determine heat settings for each segment of the identified past sleep period. Each segment may be a 60-minute time period. These segments may be non-overlapping time periods during the identified past sleep period. These segments may differ in one or more other respects. For example, these segments may be different sleep stages during the sleep period.
[0301] As part of block 2612, the computing system may apply a model to identify the relationship between each segment of temperature values in the data of the identified past sleep periods and a predetermined heat setting (block 2614). The model may be trained to identify temperature value segments in the temperature feature maps in the data of the identified past sleep periods during the past sleep period, and to identify the relationship between each temperature value segment in the temperature value segments and one or more predetermined heat settings.
[0302] As another example, the computing system may identify a mapping of temperature values in the data of the identified past sleep periods to predetermined heat settings (block 2616). The computing system may retrieve from the data repository described herein a mapping of temperature values in the data of a set of past sleep periods to one or more predefined heat settings. The predefined heat settings may include high heat, medium heat, low heat, high cold, medium cold, low cold, and / or off. Then, the computing system may select at least one predefined heat setting corresponding to the temperature values in the temperature feature map in the data of the identified past sleep period based on the mapping.
[0303] Then, the computing system can return the thermal settings in block 2620. For example, the computing system can store the thermal settings as described herein (block 2622). Then, the stored thermal settings can be used in the future (e.g., by the controller of the bed system) to determine when to activate the heating and / or cooling unit of the bed system during at least one subsequent sleep period. Additionally or alternatively, the computing system can program the thermal routine of the heating and / or cooling unit of the bed system according to the thermal settings (block 2624). Thus, the heating and / or cooling unit of the bed system can execute the thermal settings during at least one subsequent sleep period of the user. Additionally or alternatively, the computing system can return user-selectable options for executing the thermal settings during one or more subsequent sleep periods of the user (block 2626). For example, the user-selectable options can be presented in a mobile application on the user's computing device (e.g., a mobile phone). The user can select an option for causing the thermal settings to be executed during at least the user's next sleep period. The user can also select an option for causing the thermal settings to be executed during one or more subsequent sleep periods or another option. Once the user selects the option, the heating and / or cooling unit of the bed system can be pre-programmed with the thermal settings. Then, at runtime during a subsequent sleep period, the heating and / or cooling unit can automatically execute the thermal settings based on the real-time microclimate temperature detected at the top surface of the bed system.
[0304] Figure 27 is a flowchart of a process 2700 for determining when to activate thermal settings at the bed system and what thermal settings to activate at the bed system during a subsequent sleep period to improve the user's sleep quality level. Process 2700 is respectively the same as or similar to Figure 19A blocks X-Y in Figure 22 and / or FIGS. 21 and
[0305] Process 2700 can be executed by the computing system 1908 described with reference to Figure 19A Process 2700 can also be executed by one or more other computing systems and / or devices described herein (including but not limited to the controller of the bed system, the user computing device, the edge computing device, the remote computing device, and / or the cloud-based system). For illustrative purposes, process 2700 is described from the perspective of a computer system.
[0306] Referring to Figure 27 process 2700 in
[0307] In block 2704, the computing system may determine whether the real-time temperature value meets the threshold thermal routine activation criteria. For example, the computing system may determine whether the average value of the real-time temperature values exceeds a threshold average temperature value for a target temperature profile, where the target temperature profile is used to determine thermal settings using one or more of the processes described above. The threshold average temperature value may be the temperature value when the user experiences the highest sleep quality level and / or at least a threshold sleep quality level. Sometimes, in block 2704, the computing system may determine whether the average value of the real-time temperature values is less than the threshold average temperature value for the target temperature profile (e.g., depending on whether the thermal routine is activated in heating mode or cooling mode). In some embodiments, the criteria may vary based on one or more factors. These factors may include, but are not limited to, the current season (e.g., winter, spring, summer, or fall), the user's circadian rhythm, the user's age, the day of the week, etc.
[0308] If the criteria are not met, the computing system may return to block 2702 and continue to receive real-time temperature values from the bed system during the user's sleep period.
[0309] If the criteria are met, the computing system may activate a thermal routine determined based on processing temperature-sleep data from the user's past sleep periods (block 2706).
[0310] For example, the computing system may turn on a heating element (block 2708). The heating element may be turned on to a high, medium, or low setting based on the thermal settings determined using the methods described above. The computing system may turn on the heating element of the heating or cooling unit to the setting defined by the thermal settings until at least one temperature value in the target temperature profile is detected by a temperature sensor at the top surface of the bed system. The target temperature profile may be used by the computing system in the above processes to generate the thermal settings.
[0311] The computing system may turn off the heating element (block 2710). For example, the computing system may turn off the heating element of the heating or cooling unit when at least one temperature value in the target temperature profile is detected by a temperature sensor at the top surface of the bed system.
[0312] The computing system may turn on a cooling element (block 2112). The cooling element may be turned on to a high, medium, or low setting based on the thermal settings determined using the methods described above. For example, the computing system may turn on the cooling element of the heating or cooling unit until at least one temperature value in the target temperature profile is detected by a temperature sensor at the top surface of the bed system.
[0313] The computing system may turn off the cooling element (block 2114). For example, the computing system may turn off the cooling element of the heating or cooling unit when at least one temperature value in the target temperature profile is detected by a temperature sensor at the top surface of the bed system.
[0314] Optionally, the computing system may activate different thermal routines (block 2716) during each segment of the user's sleep period. For example, the sleep period may include one or more segments. The threshold thermal routine activation criteria may be different for each segment of the sleep period. The computing system may then activate a thermal routine during each segment based on determining whether the corresponding threshold thermal routine activation criteria for the segment are met.
[0315] As an illustrative example, when the microclimate of the user's bed system is above a first threshold temperature value, the user may fall asleep faster. Thus, during the first segment of the sleep period, the computing system may determine whether the real-time temperature value indicates that the microclimate of the bed system is less than the first threshold temperature value. If so, the computing system may activate a thermal routine that turns on the heating element until the first threshold temperature value is reached or maintained for a threshold amount of time, and / or until the user falls asleep and / or enters the next segment of the sleep period. Then, midway through the entire sleep period, the user may experience the highest level of sleep quality when the microclimate is below a second threshold temperature value. Thus, when the microclimate is detected to exceed the second threshold temperature value, the computing system may activate a thermal routine that turns on the cooling element.
Claims
1. A bed system for improving a user's sleep quality by adjusting a sleep environment, the bed system comprising: A controller configured to: Retrieve data for a set of the user's past sleep periods from a data repository; Identify, based on the data, past sleep periods in the set of past sleep periods that meet a sleep quality criterion; Determine a thermal setting for the bed system based on the data associated with the identified past sleep periods of the user; And Apply the thermal setting to the bed system for execution during at least one subsequent sleep period of the user.
2. The bed system according to claim 1, wherein the set of past sleep periods includes a plurality of past sleep periods of the user.
3. The bed system according to claim 1, wherein identifying the past sleep periods in the set comprises: Determine that a sleep quality value in the data for the identified sleep period is greater than sleep quality values in the data for other past sleep periods in the set.
4. The bed system according to claim 1, wherein identifying the past sleep periods in the set comprises: Determine that a sleep quality value in the data for the identified past sleep period exceeds a threshold sleep quality value.
5. The bed system according to claim 1, wherein the data for the set of past sleep periods includes a temperature profile for each past sleep period in the set of past sleep periods, wherein the temperature profile is a time series of temperature values collected by a temperature sensor at the top surface of the user's bed system throughout the past sleep period.
6. The bed system according to claim 5, wherein determining the thermal setting for the bed system comprises: Apply a model to the temperature profile of the identified past sleep period, the model having been trained to identify segments of temperature values in the temperature profile and to identify the relationship between each segment of temperature values and one or more predetermined thermal settings.
7. The bed system according to any one of claims 1 to 4, wherein applying the heat setting to the bed system comprises: Generate instructions to activate a thermal routine at a heating or cooling unit of the bed system during the at least one subsequent sleep period of the user to adjust the microclimate at the top surface of the bed system to at least one temperature value in the data for the identified past sleep period.
8. The bed system according to claim 1, wherein determining the thermal setting for the bed system comprises: Determine the thermal setting for each segment of the identified past sleep period.
9. The bed system according to claim 8, wherein each segment of the identified past sleep period is a 60-minute time period, wherein the segments are non-overlapping time periods during the identified past sleep period.
10. The bed system according to claim 1, wherein identifying the past sleep periods in the set of past sleep periods that meet the sleep quality criteria based on the data comprises: Identify the past sleep periods in the set for which a sleep quality metric in the data for the past sleep period exceeds the threshold sleep quality value.
11. The bed system according to claim 10, wherein the sleep quality metric in the data for the past sleep period is a numerical value indicating a sleep quality score, and the threshold sleep quality value is 90.
12. The bed system according to any one of claims 1 to 4, wherein identifying the past sleep periods in the set of past sleep periods that meet the sleep quality criterion based on the data includes: Ranking the past sleep periods in the set from highest sleep quality metric to lowest sleep quality metric, wherein the data for each past sleep period in the set of past sleep periods includes a sleep quality metric corresponding to the past sleep period; And Selecting the highest-ranked past sleep period among the ranked past sleep periods.
13. A bed system for improving a user's sleep quality by adjusting a sleep environment, the bed system comprising: A controller configured to: Receive temperature data collected during a sleep period of a user of the bed system from at least one temperature sensor of the bed system; Determine a microclimate temperature value for each predetermined time interval during the sleep period based on applying a model to the temperature data; Determine a microclimate temperature value for the sleep period based on aggregating the microclimate temperature values for the predetermined time intervals during the sleep period; And Return at least one of the following: (i) the microclimate temperature value for the predetermined time interval during the sleep period or (ii) the microclimate temperature value for the sleep period.
14. The bed system according to claim 13, wherein the at least one temperature sensor is configured as a sensor strip removably attached to a top surface of the bed system for the user to rest on.
15. The bed system according to claim 14, wherein the at least one temperature sensor comprises five temperature sensors linearly arranged along the sensor strip, and the five temperature sensors are equally spaced apart by a threshold distance along the sensor strip.
16. The bed system according to claim 15, wherein the bed system is a queen-sized bed and the threshold distance is 5.5 inches.
17. The bed system according to claim 15, wherein the bed system is a king-sized bed and the threshold distance is 6.5 inches.
18. The bed system according to claim 13, wherein the model is trained to approximate a microclimate temperature value for each predetermined time interval during the sleep period based on the temperature data.
19. The bed system according to claim 18, wherein the predetermined time interval is a one-minute segment during the sleep period.
20. A computer-readable medium storing instructions that, when executed by one or more processors, cause the processors to perform operations comprising: Receive temperature data collected during a sleep period of a user of a bed system from at least one temperature sensor of the bed system; Determine a microclimate temperature value for each predetermined time interval during the sleep period based on applying a model to the temperature data; Determine a microclimate temperature value for the sleep period based on aggregating the microclimate temperature values for the predetermined time intervals during the sleep period; And Return at least one of the following: (i) the microclimate temperature value for the predetermined time interval during the sleep period or (ii) the microclimate temperature value for the sleep period.