A sleep system with features for personalized quantification of daytime alertness
Patent Information
- Application Number
- JP2024535763
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2021-12-16
- Filing Date
- 2022-09-02
- Publication Date
- 2025-09-10
AI Technical Summary
Existing technologies lack the ability to accurately and non-invasively determine a user's arousal level during sleep and provide personalized recommendations for daytime activities based on sleep quality and circadian rhythms.
A system comprising sensors and a computer system that uses machine learning or physiology-based models to analyze sensor data from a bed system, determining a user's arousal level and generating personalized recommendations for daytime activities through a graphical user interface.
Accurately determines a user's arousal level and provides personalized recommendations for daytime activities, improving alertness management without requiring user input and enhancing accessibility to behavioral therapy for users without expert access.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
[Technical field]
[0001] [CROSS REFERENCE TO RELATED APPLICATIONS] This application claims the benefit of U.S. Provisional Patent Application No. 63 / 290,464, filed December 16, 2021. The disclosure of that prior provisional application is hereby incorporated by reference into the disclosure of this application.
[0002] The present disclosure relates to automated sensing of sleep quality and recommendations for improvement.
[0003] [Background technology] Generally, a bed is a piece of furniture used as a place to sleep or relax. Many modern beds include a soft mattress on top of a bed frame. The mattress may contain springs, foam materials, and / or air chambers to support the weight of one or more occupants. Summary of the Invention
[0004] The disclosed technology provides for automatically sensing a user's sleep quality and determining the user's alertness changes throughout the day. More specifically, models, such as machine learning trained models and / or physiological or biological based models, may be used to determine the user's alertness level. Sensor data may be detected by sensors of the bed system. The sensor data may be provided as input to the model. The model may output a number (or numbers) indicating a predicted alertness level of a particular user. The number may be expressed on a scale of 1 to 10, with 1 indicating the most alert (attention) and 10 indicating the least alert (sleepiest). One or more other scales may also be used. In some implementations, a two-process model (TPM) may be used to determine the user's alertness level. The TPM may combine a process of determining sleep homeostasis and a process of determining a particular user's circadian rhythm to accurately determine the user's alertness level.
[0005] One or more embodiments described herein may include a system comprising at least one sensor that may be configured to sense a physical phenomenon of a user, and a computer system in communication with the at least one sensor. The computer system may receive sensor readings of the user during a sleep session from the at least one sensor, provide the sensor readings as inputs to a model trained to predict the alertness level of the user based at least in part on the physical phenomenon of the user and historical data regarding at least one of the user and a user population, receive as output from the model data indicative of a predicted alertness level of the user for a period beginning after the user awakens from the sleep session, determine action suggestions for the user based at least in part on the predicted alertness level of the user for the period, and generate an output to the user presented on a graphical user interface (GUI) display including at least one of (i) the predicted alertness level and (ii) the action suggestions.
[0006] In some implementations, the embodiments described herein may optionally include one or more of the following features: The historical data may include at least one of sleep data, health indicators, and physical phenomena for the user. The historical data may include at least one of sleep data, health indicators, and physical phenomena for the user population. The user population may be a population within a particular age range. The predicted arousal level may be a number on a scale of 1 to 10, with a number of 1 representing the highest level of arousal and a number of 10 representing the lowest level of arousal. The model may be a Two-Process Model (TPM).
[0007] In some implementations, the time period may be 24 hours from the time the user wakes up from the sleep session. The time period may be the amount of time the user is expected to be awake before the next sleep session. The time period may be based on historical sleep data and historical wake data of the user.
[0008] Additionally, the computer system may include at least one output element configured to render the generated output on a GUI display to a user of the computer system. The computer system may include at least one input element capable of receiving user input from a user of the computer system. The user input may specify a subjective alertness rating for the sleep session to be reported by the user after waking up from the sleep session. The subjective alertness rating may be at least one rating of wakefulness and alertness selected from a plurality of possible ratings for selection by the user. The rating may be a numerical value.
[0009] In some implementations, the computer system may receive a user input over a predetermined period of time and determine whether the user input is within a threshold range of the predicted arousal level of the user. The computer system may also be configured to adjust the model by modifying at least one scaling parameter of the model based on a determination that the user input is less than or greater than the threshold range of the predicted arousal level of the user. The computer system may also provide the sensor readings as input to the adjusted model over another predetermined period of time and receive a predicted arousal level from the adjusted model over the another predetermined period of time. Additionally, the computer system may receive a second user input during a portion of the another predetermined period of time. The second user input may specify a subjective arousal rating reported by the user during the portion of the another predetermined period of time. The computer system may further determine whether to modify at least one scaling parameter of the adjusted model based on a comparison of the second user input to the predicted arousal level from the adjusted model.
[0010] In some implementations, the computer system may present the output to the user based on a determination that the user has woken up from the sleep session. The computer system may also present the output to the user to a mobile application. In some cases, the sensor may be one of the group consisting of a pressure sensor of a bed on which the user sleeps during the sleep session and a wearable device worn by the user when the user sleeps during the sleep session. The computer system may also include at least one of the group consisting of (i) a controller device of a bed on which the user sleeps during the sleep session, (ii) a phone device of the user, (iii) a home automation hub, and (iv) a server physically separate from the sensor and connected to the sensor by a data network.
[0011] In some implementations, the system may also include a mattress having at least one air chamber. The at least one sensor may be a pressure sensor in fluid communication with the air chamber. The system may also include means for controlling a pressure in the bed, which may include the at least one sensor.
[0012] In some cases, the predicted alertness level for the period may be output in a graph. The model may be trained using machine learning techniques. The model may include parameters estimated by the computer system based at least in part on the user's physical phenomena and historical data regarding at least one of the user and the user population.
[0013] One or more embodiments described herein may include a method of determining a user's alertness level, which may include receiving, by a computing system, sensor readings of a user during a sleep session from at least one sensor, providing, by the computing system, the sensor readings as inputs to a model trained to predict the user's alertness level based at least in part on a physical phenomenon of the user and historical data relating to at least one of the user and a user population, receiving, by the computing system, as output from the model, data indicative of a predicted alertness level of the user for a time period beginning after the user awakens from the sleep session, determining, by the computing system, action suggestions for the user based at least in part on the predicted alertness level of the user for the time period, and generating, by the computing system, an output to the user presented on a graphical user interface (GUI) display including at least one of (i) the predicted alertness level and (ii) the action suggestions.
[0014] The embodiments described herein may optionally include one or more of the following features. For example, the method may include receiving, by the computing system, a user input over a predetermined period of time, and determining, by the computing system, whether the user input is within a threshold range of the predicted arousal level of the user. The method may also include adjusting the model by modifying at least one scaling parameter of the model based on a determination, by the computing system, that the user input is less than or greater than the threshold range of the predicted arousal level of the user.
[0015] The method may also include providing, by the computing system, the sensor readings as inputs to the adjusted model for another predetermined period of time and receiving, by the computing system, a predicted alertness level from the adjusted model for the another predetermined period of time. The method may also include receiving, by the computing system, a second user input during a portion of the another predetermined period of time. The second user input may specify a subjective alertness rating to be reported by the user during the portion of the another predetermined period of time. The method may also include determining, by the computing system, whether to modify at least one scaling parameter of the adjusted model based on a comparison of the second user input to the predicted alertness level from the adjusted model.
[0016] One or more embodiments described herein may include a method of calibrating a model of a user's alertness level, comprising: receiving, by a computing system, a user input specifying a subjective alertness rating during a first time period; adjusting, by the computing system, based on the user input, scaling parameters of a model trained to predict the user's alertness level based at least in part on (i) a physical phenomenon of the user sensed by at least one sensor in communication with the computing system and (ii) historical data regarding at least one of the user and a user population; executing, by the computing system, during a second time period, the model with the adjusted scaling parameters to predict the user's alertness level during the second time period; receiving, by a computing system, during a portion of the second time period, a user input specifying a subjective alertness rating during the portion of the second time period; determining, by the computing system, whether the user input specifying the subjective alertness rating during the portion of the second time period is within a threshold range of a predicted level of alertness for the user during the second time period; calibrating, by the computing system, the scaling parameters of the model based on a determination that the user input specifying the subjective alertness rating during the portion of the second time period is not within the threshold range; and running, by the computing system, the model with the calibrated scaling parameters during a third time period.
[0017] The embodiments described herein may optionally include one or more of the following features. For example, the first time period may be prior to the second time period and the third time period may be after the second time period. The second time period may be 30 days. The third time period may be 30 days. The second time period may be 30 days and the portion of the second time period may be the last 10 days of the 30 days. The first time period may span multiple sleep sessions of the user. The second time period may span multiple sleep sessions of the user. The third time period may span multiple sleep sessions of the user. The portion of the second time period is a periodic time that spans multiple sleep sessions of the user.
[0018] One or more embodiments described herein may include a computer-implemented system that may include one or more processors and one or more computer-readable devices that may include instructions that, when executed by the one or more processors, may cause the computer-implemented system to perform operations including receiving sensor readings from at least one sensor of a user during a sleep session, providing the sensor readings as inputs to a model trained to predict the user's alertness level based at least in part on the user's physical phenomenon and historical data regarding the user and / or a user population, receiving as output from the model data indicative of the user's predicted alertness level for a time period beginning after the user awakens from the sleep session, determining action suggestions for the user based at least in part on the user's predicted alertness level for the time period, and generating an output to the user presented on a graphical user interface (GUI) display including at least one of (i) the predicted alertness level and (ii) the action suggestions. The embodiments described herein may optionally include one or more of the features described above.
[0019] Implementations described herein may include one or more of the following advantages. For example, the disclosed technology may provide for accurate and non-invasive determination of a user's alertness level. Sleep and health data may be collected and analyzed to determine the user's alertness level after a sleep session. The data may be collected non-invasively by sensors of the bed system. The data may also be collected and / or obtained from one or more other systems, including third-party applications that communicate with the bed system's computer system or controller. Historical (past) sleep and health data may also be leveraged to accurately predict the user's alertness level. All of these data may be provided as inputs to a machine learning model or a biology / physiology-based model that is trained to determine and output the user's alertness level.
[0020] Furthermore, the disclosed technology may not require input from the user to determine the user's alertness level, rather the bed system may leverage data collected by the bed system and historical data of the user to automatically and accurately determine the user's alertness level.
[0021] In some implementations, the user input can be used in a feedback loop to continuously improve the machine learning model. The (improved) machine learning model is then used to determine the user's alertness level. The model can be improved during a predefined period, for example every 30 days. As an example, the bed system can prompt the user to input what they think their alertness level is now and / or in the past. The bed system can compare the user input against alertness determinations made using the model and identify whether these determinations are off-base or substantially similar to the target user input. If the determinations are off-base, the model can be improved by adjusting the parameters of the model based on the user input. The model can then be run for another period and recalibrated at the end of the predefined period. Thus, the model can be continuously improved to improve the accuracy of determining the user's alertness level.
[0022] As another example, the disclosed technology provides for generating suggestions and recommendations for what a user can do during the day based on the determined alertness level. For example, the disclosed technology may suggest to a user to hold a meeting or participate in an activity that requires concentration when the user is expected to be most alert (alert) during the day. Using the disclosed technology, one or more other types of suggestions may also be determined and provided to the user.
[0023] The disclosed technology may provide for generating a user-friendly output regarding a user's alertness level. When the user wakes up, the output may be presented to the user in a mobile application on the user's device. The output may include the user's determined alertness level for the day and how the alertness level may change throughout the day (e.g., hourly). The output may be useful in determining how the user can plan their daytime activities to suit their alertness level.
[0024] Additionally, the disclosed technology may improve home automation technology. Automatic sensing of a user's sleep may be combined with machine learning determination of alertness to generate insights into the user's health on a day-to-day basis without requiring time from a specialist (e.g., doctor, therapist). This may allow providing beneficial behavioral therapy to users who may not otherwise have access to such information. For example, users, particularly those living in remote or sparsely populated areas, may not have convenient access to behavioral therapy services, but instead may have access to machine-generated recommendations that are specific to the particular user's life and circumstances.
[0025] Similarly, the disclosed technology may allow a limited number of behavioral experts to provide assistance to a larger number of recipients than would otherwise be possible. Instead of requiring an expert to spend time on one-to-one analysis to provide personalized advice to a single recipient, the disclosed technology may allow an expert to create rule sets that, when combined with a particular user's data, generate user-specific recommendations that embody the expert's preferred advice.
[0026] Other features, aspects and potential advantages will become apparent from the accompanying description and drawings. [Brief description of the drawings]
[0027] [Figure 1] FIG. 1 illustrates an exemplary airbed system.
[0028] [Diagram 2] FIG. 2 is a block diagram of an example of various components of an airbed system.
[0029] [Diagram 3] FIG. 3 illustrates an exemplary environment including a bed in communication with multiple devices in and around the home.
[0030] [Figure 4A] 4A and 4B are block diagrams of an exemplary data processing system that may be associated with a bed. [Figure 4B] 4A and 4B are block diagrams of an exemplary data processing system that may be associated with a bed.
[0031] [Diagram 5] 5 and 6 are block diagrams of example motherboards that may be used in a data processing system that may be associated with a bed. [Figure 6] 5 and 6 are block diagrams of example motherboards that may be used in a data processing system that may be associated with a bed.
[0032] [Figure 7] FIG. 7 is a block diagram of an example of a daughter board that may be used in a data processing system that may be associated with the bed.
[0033] [Figure 8] FIG. 8 is a block diagram of an example of a motherboard without daughterboards that may be used in a data processing system that may be associated with a bed.
[0034] [Figure 9] FIG. 9 is a block diagram of an example of a sensor array that may be used in a data processing system that may be associated with a bed.
[0035] [Figure 10] FIG. 10 is a block diagram of an example of a controller array that may be used in a data processing system that may be associated with a bed.
[0036] [Figure 11] FIG. 11 is a block diagram of an example of a computing device that may be used in a data processing system that may be associated with a bed.
[0037] [Figure 12]12-16 are block diagrams of example cloud services that may be used with a data processing system that may be associated with a bed. [Figure 13] 12-16 are block diagrams of example cloud services that may be used with a data processing system that may be associated with a bed. [Figure 14] 12-16 are block diagrams of example cloud services that may be used with a data processing system that may be associated with a bed. [Figure 15] 12-16 are block diagrams of example cloud services that may be used with a data processing system that may be associated with a bed. [Figure 16] 12-16 are block diagrams of example cloud services that may be used with a data processing system that may be associated with a bed.
[0038] [Figure 17] FIG. 17 is a block diagram of an example of automating peripherals around a bed using a data processing system that may be associated with the bed.
[0039] [Figure 18] FIG. 18 is a schematic diagram illustrating an example of a computing device and a mobile computing device.
[0040] [Figure 19] FIG. 19 is a block diagram of an example system for generating sleep recommendations for a user.
[0041] [Figure 20] 20 and 21 are exemplary graphic user interfaces (GUIs) for accepting input from a user regarding subjective alertness. [Figure 21] 20 and 21 are exemplary graphic user interfaces (GUIs) for accepting input from a user regarding subjective alertness.
[0042] [Figure 22] FIG. 22 is a block diagram of example parameters for generating personalized sleep recommendations.
[0043] [Diagram 23] FIG. 23 is a swim lane diagram of an exemplary process for generating a computer system output that includes action recommendations.
[0044] [Figure 24] FIG. 24 is a swim lane diagram of an example process for determining arousal levels and behavioral recommendations based on the arousal levels.
[0045] [Diagram 25] FIG. 25 is a flowchart of an example process for calibrating parameters of a model that may be used to determine a user's alertness level.
[0046] [Figure 26] FIG. 26 is a graphical representation of the user's alertness level predicted by the model. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0047] Like reference symbols indicate like elements in the various drawings.
[0048] This specification generally describes techniques for determining the alertness level of a user of a bed system. Physiological measurements of sleep quality can be tracked using sensors and combined with the user's historical sleep and health data to determine the alertness level during the day. Machine learning trained models and / or biology / physiology based models can be used to accurately determine the alertness level. The models can be continuously trained (or their parameters estimated) and calibrated for a predefined period of time using subjective user input that measures the user's perceived alertness. Furthermore, the aforementioned data can be combined with other signals (e.g., time from a clock) and used by the bed system or other computing systems to generate human-readable recommendations and suggestions regarding activities that the user can / should perform during various alertness levels.
[0049] [Example Air Bed Hardware]
[0050] 1 illustrates an exemplary airbed system 100 that includes a bed 112. The bed 112 includes at least one air chamber 114 surrounded by a resilient boundary 116 and encapsulated by a heavy-duty cotton bedding fabric 118. The resilient boundary 116 may include any suitable material, such as foam.
[0051] As shown in FIG. 1, the bed 112 may be a two-chamber design having first and second fluid chambers, such as a first air chamber 114A and a second air chamber 114B. In alternative embodiments, the bed 112 may include chambers for use with fluids other than air, as appropriate for the application. In some embodiments, such as a single bed or a kids bed, the bed 112 may include a single air chamber 114A or 114B, or multiple air chambers 114A and 114B. The first and second air chambers 114A and 114B may be in fluid communication with a pump 120. The pump 120 may be in electrical communication with a remote control 122 via a control box 124. The control box 124 may include a wired or wireless communication interface for communicating with one or more devices, including the remote control 122. The control box 124 can be configured to operate the pump 120 to increase or decrease the fluid pressure in the first and second air chambers 114A and 114B based on commands entered by a user using the remote control 122. In some implementations, the control box 124 is integrated into the housing of the pump 120.
[0052] The remote control 122 may include a display 126, an output selection mechanism 128, a pressure increase button 129, and a pressure decrease button 130. The output selection mechanism 128 may allow a user to switch the airflow generated by the pump 120 between the first and second air chambers 114A, 114B, thereby allowing control of multiple air chambers with a single remote control 122 and a single pump 120. For example, the output selection mechanism 128 may be a physical control (e.g., a switch or button) or an input control displayed on the display 126. Alternatively, a separate remote control unit may be provided for each air chamber, each including the capability of controlling multiple air chambers. The pressure increase button 129 and the pressure decrease button 130 may allow a user to increase or decrease, respectively, the pressure in the air chamber selected with the output selection mechanism 128. Adjusting the pressure in the selected air chamber may result in a corresponding adjustment to the hardness (firmness) of the respective air chamber. In some embodiments, the remote control 122 may be omitted or modified as appropriate for the application. For example, in some embodiments, the bed 112 may be controlled by a computer, tablet, smartphone, or other device that communicates with the bed 112 via wired or wireless communication.
[0053] FIG 2 is a block diagram of an example of various components of an airbed system that may be used in the example airbed system 100. As shown in FIG 2, the control box 124 may 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 may be, for example, a relay or a solid-state switch. In some implementations, the switching mechanism 138 may be located in the pump 120 rather than in the control box 124.
[0054] The pump 120 and remote control 122 may be in bidirectional communication with a control box 124. The pump 120 includes a motor 142, a pump manifold 143, a relief 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 conduit 148A and a second conduit 148B, respectively. The first and second control valves 145A, 145B may be controlled by a switching mechanism 138 and are operable to regulate the flow of fluid between the pump 120 and the first and second air chambers 114A, 114B, respectively.
[0055] In some implementations, the pump 120 and the control box 124 may be provided and packaged as a single unit. In some alternative implementations, the pump 120 and the control box 124 may be provided as physically separate units. In some implementations, the control box 124, the pump 120, or both, are integrated into or contained within a bed frame or bed support structure that supports the bed 112. In some embodiments, the control box 124, the pump 120, or both, are located outside the bed frame or bed support structure (as shown in the example of FIG. 1).
[0056] The exemplary airbed system 100 shown in FIG. 2 includes two air chambers 114A, 114B and a single pump 120. However, other implementations may include an airbed system having more than one air chamber and one or more pumps incorporated within the airbed system to control the air chambers. For example, a separate pump may be associated with each air chamber of the airbed system, or one pump may be associated with multiple chambers of the airbed system. Separate pumps may allow each air chamber to be independently and simultaneously inflated or deflated. Additionally, additional pressure transducers may also be incorporated within the airbed system, such as a separate pressure transducer may be associated with each air chamber.
[0057] In use, the processor 136 may, for example, send a decompression command to one of the air chambers 114A, 114B, and a switching mechanism 138 may be utilized to convert a low voltage command signal sent by the processor 136 to a higher operating voltage sufficient to actuate the relief valve 144 of the pump 120 to open the control valves 145A, 145B. Opening the relief valve 144 may allow air to escape from the air chambers 114A or 114B through the respective air lines 148A or 148B. During deflation, the pressure transducer 146 may send 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 convert the analog information to digital information usable by the processor 136. The processor 136 may send the digital signal to the remote control 122 to update the display 126 in order to communicate the pressure information to the user.
[0058] As another example, the processor 136 may send a pressure increase command. The pump motor 142 may be energized in response to the pressure increase command to electronically actuate the corresponding valve 145A, 145B to pump air into the designated one of the air chambers 114A, 114B via the air line 148A, 148B. While air is being pumped into the designated air chamber 114A or 114B to increase the chamber's firmness, the pressure transducer 146 may sense the pressure in the pump manifold 143. Again, the pressure transducer 146 may send a 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 in the air chamber 114A or 114B and the desired pressure. The processor 136 may send the digital signal to the remote control 122 to update the display 126 to communicate the pressure information to the user.
[0059] Generally speaking, during the inflation or deflation process, the pressure sensed in the pump manifold 143 may provide an approximation of the pressure in the respective air chamber in fluid communication with the pump manifold 143. An exemplary method of obtaining a pump manifold pressure reading that is substantially equal to the actual pressure in the air chamber includes turning 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 in the pump manifold 143 with the pressure transducer 146. Thus, providing sufficient time to allow the pressure in the pump manifold 143 and the chamber 114A or 114B to equalize may result in a pressure reading that is an accurate approximation of the actual pressure in the air chamber 114A or 114B. In some implementations, the pressure in the air chamber 114A and / or 114B may be continuously monitored using multiple pressure sensors (not shown).
[0060] In some implementations, the information collected by the pressure transducer 146 may be analyzed to determine various states of a person lying in bed 112. For example, the processor 136 may use the information collected by the pressure transducer 146 to determine the heart rate or respiration rate of a person lying in bed 112. For example, a user may be lying on one side of the bed 112 that includes the chamber 114A. The pressure transducer 146 may monitor fluctuations in pressure in the chamber 114A, and this information may be used to determine the user's heart rate and / or respiration rate. As another example, additional processing may be performed to use the collected data to determine the person's sleep state (e.g., awake, light sleep, deep sleep). For example, the processor 136 may determine when the person falls asleep, while asleep, the various sleep states of the person.
[0061] Additional information related to a user of the airbed system 100 that may be determined using information collected by the pressure transducer 146 includes the user's movement, the user's presence on the surface of the bed 112, the user's weight, the user's cardiac arrhythmia, and temporary apnea. Taking the detection of a user's presence as an example, the pressure transducer 146 may be used to detect the presence of a user on the bed 112, for example, via determining a change in total pressure and / or via one or more of a respiratory rate signal, a heart rate signal, and / or other biometric signal. For example, a simple pressure detection process may identify an increase in pressure as an indication that a user is present on the bed 112. As another example, the processor 136 may determine that a user is present on the bed 112 if the detected pressure increases beyond a certain threshold (a threshold for indicating that a person or other object over a certain weight is placed on the bed 112). As yet another example, the processor 136 may identify an increase in pressure in combination with a detected slight rhythmic variation in pressure as corresponding to a user being present on the bed 112. The presence of rhythmic variations can be identified as being due to the user's breathing or cardiac rhythm (or both). Detection of breathing or cardiac rhythm can distinguish between the user's presence on the bed and other objects (such as a suitcase) placed on the bed.
[0062] In some implementations, pressure variations may be measured at the pump 120. For example, one or more pressure sensors may be disposed within one or more internal cavities of the pump 120 to detect pressure variations within the pump 120. Pressure variations detected at the pump 120 may indicate pressure variations in one or both of the chambers 114A and 114B. One or more sensors disposed at the pump 120 may be in fluid communication with one or both of the chambers 114A and 114B, and may be operative to determine the pressure within the chambers 114A and 114B. The control box 124 may be configured to determine at least one vital sign (e.g., heart rate, respiratory rate) based on the pressure within the chamber 114A or chamber 114B.
[0063] In some implementations, the control box 124 may analyze pressure signals sensed by one or more pressure sensors to determine the heart rate, respiration rate, and / or other vital signs of a user lying or sitting on the chamber 114A or the chamber 114B. More specifically, when a user lies on the bed 112 disposed above the chamber 114A, the user's heartbeat, respiration, and other movements may each cause a force on the bed 112 that is transmitted to the chamber 114A. As a result of the input of forces into the chamber 114A due to the user's movements, waves may propagate through the chamber 114A and into the pump 120. A pressure sensor disposed in the pump 120 may sense the waves, such that a pressure signal output by the sensor may indicate the heart rate, respiration rate, or other information about the user.
[0064] With respect to sleep state, the airbed system 100 may determine the sleep state of the user by using various biometric signals, such as heart rate, breathing, and / or user movement. While the user is sleeping, the processor 136 may receive one or more of the user's biometric signals (e.g., heart rate, breathing, and movement) and determine the user's current sleep state based on the received biometric signals. In some implementations, signals indicative of pressure fluctuations in one or both of the chambers 114A and 114B may be amplified and / or filtered to allow for more accurate detection of the heart rate and breathing rate.
[0065] The control box 124 may perform a pattern recognition algorithm or other calculation based on the amplified and filtered pressure signal to determine the user's heart rate and respiration 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-4.0 Hz and the respiration rate portion of the signal has a frequency in the range of less than 1 Hz. The control box 124 may also be configured to determine other characteristics of the user based on the received pressure signal, such as blood pressure, swaying and rotational motion, rolling motion, limb movement, weight, presence or absence of the user, and / or the identity of the user. Techniques for monitoring a user's sleep using heart rate information, respiration rate information, and other user information are disclosed in U.S. Patent Application Publication No. 2010 / 0170043 by Steven J. Young et al., entitled "Apparatus for Monitoring Vital Signs," the entire contents of which are incorporated by reference herein.
[0066] For example, pressure transducer 146 may be used to monitor air pressure within chambers 114A and 114B of bed 112. When a user on bed 112 is not moving, changes in air pressure within air chambers 114A or 114B may be relatively minimal and may be due to breathing and / or heartbeat. However, when a user on bed 112 is moving, the air pressure within the mattress may vary by a much larger amount. Thus, the pressure signal generated by pressure transducer 146 and received by processor 136 may be filtered and indicated as corresponding to movement, heartbeat, or breathing.
[0067] In some implementations, rather than having the processor 136 perform the data analysis within the control box 124, a digital signal processor (DSP) may be provided to analyze the data collected by the pressure transducer 146. Alternatively, the data collected by the pressure transducer 146 may be transmitted to a cloud-based computing system for remote analysis.
[0068] In some implementations, the exemplary airbed system 100 further comprises a temperature controller configured to raise, lower, or maintain the temperature of the bed, for example, for the comfort of the user. For example, a pad may be placed on or part of the top of the bed 112, or may be placed on or part of the top of one or both of the chambers 114A and 114B. Air may be pushed through the pad and ventilated to cool the user of the bed. Conversely, the pad may include a heating element that may be used to keep the user warm. In some implementations, the temperature controller may receive temperature readings from the pad. In some implementations, separate pads are used on different sides of the bed 112 (e.g., corresponding to the location of the chambers 114A and 114B) to provide different temperature control on different sides of the bed.
[0069] In some implementations, a user of the airbed system 100 may use an input device, such as a remote control 122, to input a desired temperature for the surface of the bed 112 (or a portion of the surface of the bed 112). The desired temperature may be encapsulated in a command data structure that includes the desired temperature and identifies the temperature controller as the desired controlled component. The command data structure may then be transmitted to the processor 136 via Bluetooth or other suitable communications protocol. In various examples, the command data structure may be encrypted before being transmitted. The temperature controller may then configure its elements to increase or decrease the temperature of the pad depending on the temperature input by the user into the remote control 122.
[0070] In some implementations, data may be sent from a component back to the processor 136 or may be transmitted to one or more display devices, such as the display 126. For example, the current temperature as determined by a sensor element of the temperature controller, the pressure of the bed, the current position of the base, or other information may be transmitted to the control box 124. The control box 124 may then transmit the received information to the remote control 122, where it may be displayed to the user (e.g., on the display 126).
[0071] In some implementations, the exemplary airbed system 100 further comprises an adjustable base and an articulation controller configured to adjust the position of the bed (e.g., bed 112) by adjusting the adjustable base supporting the bed. For example, the articulation controller can adjust the bed 112 from a flat position to a position in which the head portion of the mattress of the bed is tilted upward (e.g., to facilitate a user sitting on the bed and / or watching television). In some implementations, the bed 112 includes multiple separately articulatable sections. For example, the portions of the bed corresponding to the positions of the chambers 114A and 114B can be articulated independently of each other to allow one person positioned on the surface of the bed 112 to rest in a first position (e.g., a flat position) while a second person rests in a second position (e.g., a reclined position with the head tilted up from the waist). In some implementations, the separate positions can be set for two different beds (e.g., two twin beds positioned next to each other). The base of the bed 112 may include two or more zones that may be independently adjusted. The articulation controller may also be configured to provide different levels of massage to one or more users on the bed 112.
[0072] [Example of a bed in a bedroom environment]
[0073] 3 illustrates an exemplary environment 300 including a bed 302 in communication with multiple devices in and around the home. In the illustrated example, the bed 302 includes a pump 304 for controlling the air pressure in two air chambers 306a and 306b (as described above with respect to the air chambers 114A-114B). The pump 304 further includes circuitry for controlling the inflation and deflation functions performed by the pump 304. The circuitry is further programmed to detect variations in the air pressure in the air chambers 306a-b and use the detected variations in air pressure to identify the presence of a user 308 in bed, the sleep state of the user 308, the movement of the user 308, and biometric signatures of the user 308, such as heart rate and breathing rate. In the illustrated example, the pump 304 is disposed within the support structure of the bed 302, and a control circuit 334 for controlling the pump 304 is integrated with the pump 304. In some implementations, the control circuitry 334 is physically separate from the pump 304 and communicates with the pump 304 wirelessly or by wires. In some implementations, the pump 304 and / or the control circuitry 334 are located outside the bed 302. In some implementations, various control functions may be performed by systems in various physical locations. For example, circuitry for controlling the operation of the pump 304 may be located within a pump casing of the pump 304, and control circuitry 334 for performing other functions related to the bed 302 may be located within another portion of the bed 302 or outside the bed 302. As another example, the control circuitry 334 located within the pump 304 may communicate with a control circuitry 334 at a remote location via a LAN or WAN (e.g., the Internet). As yet another example, the control circuitry 334 may be included in the control box 124 of FIGS. 1 and 2.
[0074] In some implementations, one or more devices other than or in addition to the pump 304 and the control circuitry 334 may be used to identify a user's presence in bed, sleep state, movement, and biometric signals. For example, the bed 302 may include a second pump in addition to the pump 304, and each of the two pumps may be connected to a respective one of the air chambers 306a-b. For example, the pump 304 may be in fluid communication with the air chamber 306b, may control the inflation and deflation of the air chamber 306b, and may detect user signals of the user located on the air chamber 306b, such as presence in bed, sleep state, movement, and biometric signals. Meanwhile, the second pump may be in fluid communication with the air chamber 306a, may control the inflation and deflation of the air chamber 306a, and may detect user signals of the user located on the air chamber 306a.
[0075] As another example, the bed 302 may include one or more pressure-sensitive pads or pressure-sensitive surface portions operable to detect motion, including the presence of a user, the user's movement, breathing, and heart rate. For example, a first pressure-sensitive pad may be incorporated into the surface of the bed 302 on the left side of the bed 302 where a first user typically sleeps, and a second pressure-sensitive pad may be incorporated into the surface of the bed 302 on the right side of the bed 302 where a second user typically sleeps. Motion detected by the one or more pressure-sensitive pads or surface portions may be used by the control circuitry 334 to identify the user's sleep state, bed presence, or biometric signal.
[0076] In some implementations, information sensed by the bed (e.g., motion information) is processed by a control circuit 334 (e.g., a control circuit 334 integrated with the pump 304) and provided to one or more user devices, such as the user device 310, for presentation to the user 308 or other users. In the example shown in FIG. 3, the user device 310 is a tablet device. However, in some implementations, the user device 310 may be a personal computer, a smartphone, a smart television (e.g., the television 312), or other user device capable of wired or wireless communication with the control circuit 334. The user device 310 may communicate with the control circuit 334 of the bed 302 over a network or via direct point-to-point communication. For example, the control circuit 334 may be connected to a LAN (e.g., via a Wi-Fi router) and communicate with the user device 310 over the LAN. As another example, the control circuit 334 and the user device 310 may both be connected to the Internet and communicate over the Internet. For example, the control circuitry 334 may connect to the Internet via a WiFi router and the user device 310 may connect to the Internet via communication with a cellular communication system. As another example, the control circuitry 334 may communicate directly with the user device 310 via a wireless communication protocol such as Bluetooth. As yet another example, the control circuitry 334 may communicate with the user device 310 via a wireless communication protocol such as ZigBee, Z-Wave, infrared, or other wireless communication protocol suitable for the application. As another example, the control circuitry 334 may communicate with the user device 310 via a wired connection such as, for example, a USB connector, serial / RS232, or other wired connection suitable for the application.
[0077] The user device 310 may display various information and statistics related to sleep or the user's 308 interactions with the bed 302. For example, a user interface displayed by the user device 310 may present information including the amount of sleep of the user 308 over a period of time (e.g., overnight, week, month, etc.), the amount of deep sleep, the ratio of deep sleep to restless sleep, the time lapse between the user 308 entering bed and the user 308 falling asleep, the total time spent in the bed 302 over a period of time, the user's 308 heart rate over a period of time, the user's 308 breathing rate over a period of time, or other information related to user interactions with the bed 302 by the user 308 or one or more other users of the bed 302. In some implementations, information for multiple users may be presented on the user device 310, for example, information for a first user located on the air chamber 306a may be presented along with information for a second user located on the air chamber 306b. In some implementations, the information presented on the user device 310 may change depending on the age of the user 308. For example, the information presented on the user device 310 may evolve with the age of the user 308, and different information may be presented on the user device 310 as the user 308 ages as a child or as an adult.
[0078] The user device 310 may also be used as an interface for the control circuitry 334 of the bed 302 to allow the user 302 to input information. Information input by the user 308 may be used by the control circuitry 334 to provide better information to the user or to various control signals for controlling the functions of the bed 302 or other devices. For example, the user 308 may input information such as weight, height, age, etc., and the control circuitry 334 may use this information to provide the user with a comparison of the user's tracked sleep information to that of other people of similar weight, height, and / or age to the user. As another example, the user 308 may use the user device 310 as an interface to control the air pressure of the air chambers 306a and 306b, to control various reclining or tilting positions of the bed 302, to control the temperature of one or more surface temperature control devices of the bed 302, or to allow the control circuitry 334 to generate control signals for other devices (as described in more detail below).
[0079] In some implementations, the control circuitry 334 of the bed 302 (e.g., control circuitry 334 integrated into the pump 304) may communicate with other first, second, or third party devices or systems in addition to or instead of the user device 310. For example, the control circuitry 334 may communicate with a television 312, a lighting system 314, a thermostat 316, a security system 318, or other home appliances such as an oven 322, a coffee maker 324, a lamp 326, and a night light 328. Other examples of devices and / or systems with which the control circuitry 334 may communicate include a system for controlling the blinds 330, one or more devices 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 the garage door 320 (e.g., a control circuitry 334 integrated with a garage door opener to identify the open / closed state of the garage door 320 and cause the garage door opener to open and close the garage door 320). Communication between the control circuitry 334 of the bed 302 and other devices may occur over a network (e.g., a LAN or the Internet) or as a point-to-point communication (e.g., Bluetooth, wireless communication, or wired connection). In some implementations, the control circuitry 334 of different beds 302 may communicate with different sets of devices. For example, a kid's bed may not communicate with and / or control the same devices as an adult bed. In some embodiments, the bed 302 may evolve with the age of the user, such that the control circuitry 334 of the bed 302 communicates with different devices as a function of the user's age.
[0080] The control circuitry 334 may receive information and input from other devices / systems and may use the received information and input to control the operation of the bed 302 or other devices. For example, the control circuitry 334 may 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 circuitry 334 may use the received information (along with other information) to determine whether to increase or decrease the temperature of all or a portion of the surface of the bed 302. The control circuitry 334 may then cause a heating or cooling mechanism of the bed 302 to increase or decrease the temperature of the surface of the bed 302. For example, the user 308 may indicate a desired sleeping temperature of 74 degrees Fahrenheit, while a second user of the bed 302 may indicate a desired sleeping temperature of 72 degrees Fahrenheit. The thermostat 316 may indicate to the control circuitry 334 that the current temperature in the bedroom is 72 degrees Fahrenheit. The control circuitry 334 may identify that the user 308 has indicated a desired sleep temperature of 74 degrees Fahrenheit and may send a control signal to a heating pad on the user's 308 side of the bed to increase the temperature of a portion of the surface of the bed 302, which is arranged to increase the temperature of the user's 308 sleep surface to the desired temperature.
[0081] The control circuitry 334 may also generate and propagate control signals to control other devices. In some implementations, the control signals are generated based on information collected by the control circuitry 334, including information about user interactions with the bed 302 by the user 308 and / or one or more other users. In some implementations, information collected from one or more other devices other than the bed 302 is used in generating the control signals. For example, information about environmental occurrences (e.g., environmental temperature, environmental noise level, environmental light level, etc.), time of day, year, day of the week, or other information may be used in generating control signals for various devices in communication with the control circuitry 334 of the bed 302. For example, information about the time of day may be combined with information about the user 308's movements and presence in bed to generate control signals for the lighting system 314. In some implementations, rather than or in addition to providing control signals to one or more other devices, the control circuitry 334 may transmit collected information (e.g., information related to the user's movements, presence in bed, sleep state, or biometric signal of the user 308) to one or more other devices, allowing the one or more other devices to utilize the collected information when generating control signals. For example, the control circuitry 334 of the bed 302 may provide a central controller (not shown) with information regarding user interactions with the bed 302 by the user 308. The central controller may utilize the provided information to generate control signals for various devices, including the bed 302.
[0082] 3, the control circuitry 334 of the bed 302 may generate and transmit control signals to control the operation of other devices in response to information collected by the control circuitry 334, including the presence of the user 308 in bed, the user's sleep state 308, and other factors. For example, the control circuitry 334 integrated with the pump 304 may detect a characteristic of the mattress of the bed 302, such as an increase in pressure in the air chamber 306b, and use the detected increase in air pressure to determine that the user 308 is on the bed 302. In some implementations, the control circuitry 334 may identify the heart rate or respiratory rate of the user 308 to identify that the increase in pressure is due to a person sitting, lying, or resting on the bed 302, as opposed to an inanimate object (such as a suitcase) being placed on the bed. In some implementations, information indicative of the user's presence in bed is combined with other information to identify the current or possible future state of the user 308. For example, a user's presence in bed detected at 11:00 a.m. may indicate that the user is sitting in bed (e.g., to tie shoelaces or to read a book) and is not intending to fall asleep, whereas a user's presence in bed detected at 10:00 p.m. may indicate that the user 308 is in bed and intends to fall asleep shortly. As another example, if the control circuitry 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 user's presence in bed at 7:30 a.m., the control circuitry 334 may use this information to understand that the newly detected user's presence in bed is likely temporary (e.g., while the user 308 is tying shoelaces before heading to work) rather than an indication that the user 308 intends to remain in bed for an extended period of time.
[0083] In some implementations, the control circuitry 334 may use the collected information (including information related to the user's 308 interactions with the bed 302, environmental information, time information, and inputs received from the user) to identify the usage pattern of the user 308. For example, the control circuitry 334 may use information indicative of the user's 308 presence in bed and sleep status collected over a period of time to identify the user's sleep pattern. For example, the control circuitry 334 may identify that the user 308 generally goes to bed between 9:30 PM and 10:00 PM, generally falls asleep between 10:00 PM and 11:00 PM, and generally wakes up between 6:30 AM and 6:45 AM based on the information indicative of the user's presence collected over a week and the biometric characteristic signal of the user 308. The control circuitry 334 may use the user's identification pattern to better process and identify the user's 308 interactions with the bed 302.
[0084] For example, given the bed presence, sleeping, and waking patterns of the user 308 in the example above, if the user 308 is detected to be in bed at 3:00 PM, the control circuitry 334 may determine that the user's presence in bed is only momentary and may use that determination to generate a different control signal than would be generated if the control circuitry 334 had determined that the user 308 was in bed in the evening. As another example, if the control circuitry 334 detects that the user 308 got out of bed at 3:00 AM, the control circuitry 334 may use the user's 308 identification pattern to determine that the user only woke up momentarily (e.g., to use the bathroom or to get a glass of water) and did not wake up for the day. In contrast, if the control circuitry 334 identifies that the user 308 got out of bed 302 at 6:40 a.m., the control circuitry 334 may determine that the user has woken up for the day and may generate a different set of control signals than would be generated if it was determined that the user 308 only temporarily left the bed (such as if the user 308 left the bed 302 at 3:00 a.m.) For other users 308, getting out of bed 302 at 3:00 a.m. may be a normal wake-up time, and the control circuitry 334 may learn and respond accordingly.
[0085] As previously mentioned, the control circuitry 334 of the bed 302 may generate control signals for controlling functions of various other devices. The control signals may be generated based, at least in part, on detected interactions with the bed 302 by the user 308 and other information including time, date, temperature, etc. For example, the control circuitry 334 may communicate with the television 312, receive information from the television 312, and generate control signals to control functions of the television 312. For example, the control circuitry 334 may receive an indication from the television 312 that the television 312 is currently on. If the television 312 is located in a different room than the bed 302, the control circuitry 334 may generate a control signal to turn off the television 312 when it determines that the user 308 has gone to bed for the night. For example, if the presence of the user 308 on the bed 302 is detected during a particular time range (e.g., between 8:00 PM and 7:00 AM) and lasts for longer than a threshold time (e.g., 10 minutes), the control circuitry 334 may use this information to determine that the user 308 is in bed to sleep. If the television 312 is on (indicated by communications received by the control circuitry 334 of the bed 302 from the television 312), the control circuitry 334 may generate a control signal to turn off the television 312. The control signal may then be transmitted to the television (e.g., via a directed communications link between the television 312 and the control circuitry 334 or over a network). As another example, rather than turning off the television 312 in response to detecting the user's presence in bed, the control circuitry 334 may generate a control signal to lower the volume of the television 312 by a pre-specified amount.
[0086] As another example, when the control circuitry 334 detects that the user 308 has left the bed 302 during a specified time range (e.g., between 6:00 and 8:00 a.m.), the control circuitry 334 may 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 he or she gets out of bed in the morning). The control circuitry 334 may generate and send a control signal to the television 312 to turn on the television 312 and tune it to a desired station (which may be stored in the control circuitry 334, the television 312, or elsewhere). As another example, when the control circuitry 334 detects that the user 308 has woken up for the day, the control circuitry 334 may generate and send a control signal to turn on the television 312 and begin playing a previously recorded program from a digital video recorder (DVR) in communication with the television 312.
[0087] As another example, if the television 312 is in the same room as the bed 302, the control circuitry 334 does not turn off the television 312 in response to detecting the user's presence in bed. Rather, the control circuitry 334 may generate and transmit a control signal to turn off the television 312 in response to determining that the user 308 is asleep. For example, the control circuitry 334 may monitor biometric signals (e.g., movement, heart rate, breathing rate) of the user 308 to determine that the user 308 has fallen asleep. Upon detecting that the user 308 is asleep, the control circuitry 334 generates and transmits a control signal to turn off the television 312. As another example, the control circuitry 334 may generate a control signal to turn off the television 312 after a threshold time has elapsed after the user 308 has fallen asleep (e.g., 10 minutes after the user has fallen asleep). As another example, the control circuitry 334 generates a control signal to lower the volume of the television 312 after determining that the user 308 is asleep. As yet another example, control circuitry 334, in response to determining that user 308 is asleep, may generate and transmit a control signal to gradually reduce the volume of a television over a period of time and then turn the television off.
[0088] In some implementations, the control circuitry 334 may similarly interact with other media devices, such as computers, tablets, smartphones, stereo systems, and the like. For example, when it detects that the user 308 is asleep, the control circuitry 334 may generate and send a control signal to the user device 310 to turn off the user device 310 or to lower the volume of a video or audio file being played on the user device 310.
[0089] The control circuitry 334 may further communicate with and receive information from the lighting system 314 and generate control signals to control the functions of the lighting system 314. For example, upon detecting a user's presence on the bed 302 lasting longer than a threshold time (e.g., 10 minutes) during a particular time frame (e.g., between 8:00 PM and 7:00 AM), the control circuitry 334 of the bed 302 may determine that the user 308 is in the bed to sleep. In response to this determination, the control circuitry 334 may generate a control signal to turn off the lights in one or more rooms other than the room in which the bed 302 is located. The control signal may then be transmitted to and executed by the lighting system 314 to turn off the lights in the indicated rooms. For example, the control circuitry 334 may generate and transmit a control signal to turn off all the lights in the general room but not in other bedrooms. As another example, the control signal generated by the control circuitry 334 in response to determining that the user 308 is in bed to sleep may indicate that the lights in all rooms other than the room in which the bed 302 is located should be turned off and that one or more lights located outside the premises containing the bed 302 should also be turned off. Additionally, the control circuitry 334 may generate and transmit a control signal to turn on the night light 328 in response to determining that the user 308 is in bed or that the user 308 is asleep. As another example, the control circuitry 334 may generate a first control signal to turn off a first set of lights (e.g., the lights in the general room) in response to detecting the user's presence in bed and a second control signal to turn off a second set of lights (e.g., the lights in the room in which the bed 302 is located) in response to detecting that the user 308 is asleep.
[0090] In some implementations, in response to determining that the user 308 is in bed to sleep, the control circuitry 334 of the bed 302 may generate a control signal that causes the lighting system 314 to implement a sunset lighting regime in the room in which the bed 302 is located. The sunset lighting regime may include dimming the lights (gradually over time or all at once) in combination with changing the color of the lighting in the bedroom environment, such as adding an amber hue to the bedroom lights. The sunset lighting regime may aid the user 308 in falling asleep when the control circuitry 334 determines that the user 308 is in bed to sleep.
[0091] The control circuitry 334 may also be configured to implement a sunrise lighting regime when the user 308 wakes up in the morning. The control circuitry 334 may determine that the user 308 has woken up for the day, for example, by detecting that the user 308 has left the bed 302 (i.e., is no longer present on the bed 302) during a specified time frame (e.g., between 6:00 and 8:00 a.m.). As another example, the control circuitry 334 may monitor the user 308's movement, heart rate, breathing rate, or other biometric signal to determine that the user 308 is awake even if the user 308 has not left the bed. If the control circuitry 334 detects that the user is awake during the specified time frame, the control circuitry 334 may determine that the user 308 has woken up for the day. The specified time frame may be based on previously recorded user bed presence information collected over a period of time (e.g., two weeks), for example. It may indicate that the user 308 typically wakes up between 6:30 and 7:30 a.m. In response to the control circuitry 334 determining that the user 308 is awake, the control circuitry 334 may generate a control signal to cause the lighting system 314 to implement a sunrise lighting regime in the bedroom in which the bed 302 is located. The sunrise lighting regime may include, for example, turning on lights (e.g., lamps 326, or other lights in the bedroom). The sunrise lighting regime may further include gradually increasing the level of lighting in the room in which the bed 302 is located (or one or more other rooms). The sunrise lighting regime may also include turning on only lights of a specified color. For example, the sunrise lighting regime may include illuminating the bedroom with blue light to gently assist the user 308 in waking up and becoming active.
[0092] In some implementations, the control circuitry 334 may generate different control signals for controlling the operation of one or more components, such as the lighting system 314, depending on the time a user interaction with the bed 302 is detected. For example, the control circuitry 334 may use historical user interaction information about interactions between the user 308 and the bed 302 to determine that the user 308 typically falls asleep between 10:00 PM and 11:00 PM and typically wakes up between 6:30 AM and 7:30 AM. The control circuitry 334 may use this information to generate a first set of control signals for controlling the lighting system 314 if the user 308 is detected to have left the bed at 3:00 AM and a second set of control signals for controlling the lighting system 314 if the user 308 is detected to have left the bed after 6:30 AM. For example, if the user 308 leaves the bed before 6:30 AM, the control circuitry 334 may turn on lights that guide the user 308 to the bathroom. As another example, if the user 308 gets out of bed before 6:30 a.m., the control circuitry 334 may turn on lights that guide the user 308 to the kitchen (which may include, for example, turning on the night light 328, turning on the under-bed light, or turning on the lamp 326).
[0093] As another example, if the user 308 gets out of bed after 6:30 a.m., the control circuitry 334 may generate a control signal to cause the lighting system 314 to initiate a sunrise lighting style or turn on one or more lights in the bedroom or other room. In some implementations, if the user 308 is detected as getting out of bed before the user's designated morning wake-up time, the control circuitry 334 causes the lighting system 314 to turn on a weaker (dimmer) light than would be turned on by the lighting system 314 if the user 308 was detected as getting out of bed after the designated morning wake-up time. Turning on only weak (dim) lights when the user 308 gets out of bed at night (i.e., before the user's normal wake-up time) may prevent other occupants of the house from being woken by the lights, while still allowing the user 308 to see (provide visibility) to reach the bathroom, kitchen, or another destination within the house.
[0094] Historical user interaction information regarding interactions between the user 308 and the bed 302 may be used to identify the user's sleep and wake time windows. For example, the user's time in bed and sleep may be determined for a set period of time (e.g., two weeks, one month, etc.). The control circuitry 334 may then identify a typical time range or window during which the user 308 goes to bed, a typical window during which the user 308 falls asleep, and a typical window during which the user 308 wakes up (possibly different from the window during which the user 308 wakes up and the window during which the user 308 actually gets out of bed). In some implementations, buffer times may be added to these windows. For example, if the user is identified as typically going to bed between 10:00 PM and 10:30 PM, a 30 minute buffer in each direction may be added to the window, and a detection of the user getting into bed between 9:30 PM and 11:00 PM may be interpreted as the user 308 going to bed for the night. As another example, detection of a user 308's presence in bed within a time period beginning 30 minutes before the earliest typical time the user 308 goes to bed and extending to the user's typical time of waking (e.g., 6:30 a.m.) may be interpreted as the user 308 going to bed for the night. For example, if a user typically goes to bed between 10:00 p.m. and 10:30 p.m., detection of the user's presence in bed at 12:30 a.m. (12:30 a.m.) one night may be interpreted as the user 308 going to bed for the night, since it occurs outside the user's typical time frame for going to bed, but before the user's normal time of waking. In some implementations, different time periods are identified for different times of the year (e.g., earlier bedtimes in winter than in summer) or different days of the week (e.g., users waking up earlier on weekdays than on weekends).
[0095] The control circuitry 334 may distinguish between a user 308 being in bed 302 for a long period of time (such as a night) versus a short period of time (such as a nap) by sensing the duration of the user 308's presence. In some examples, the control circuitry 334 may distinguish between a user 308 being in bed 302 for a long period of time (such as a night) versus a short period of time (such as a nap) by sensing the duration of the user 308's sleep. For example, the control circuitry 334 may set a time threshold such that if the user 308 is sensed in bed 302 for longer than the threshold, the user 308 is deemed to have been in bed at night. In some examples, the threshold may be about two hours such that if the user 308 is sensed in bed 302 for more than two hours, the control circuitry 334 registers it as a long sleep event. In other examples, the threshold may be longer or shorter than two hours.
[0096] The control circuitry 334 may detect repeated long sleep events to automatically determine a typical bedtime range for the user 308 without the user 308 having to input a bedtime range. This allows the control circuitry 334 to accurately estimate the time at which the user 308 is likely to fall asleep due to a long sleep event, regardless of whether the user 308 typically falls asleep using a traditional or non-traditional sleep schedule. The control circuitry 334 may then use knowledge of the user 308's bedtime range to differentially control one or more components (including the bed 302 and / or non-bed peripherals) based on sensing the user 308 being in bed during or outside the bedtime range.
[0097] In some examples, the control circuitry 334 may automatically determine a bedtime range for the user 308 without requiring user input. In some examples, the control circuitry 334 may determine a bedtime range for the user 308 automatically and in combination with user input. In some examples, the control circuitry 334 may directly set a bedtime range according to user input. In some examples, the control circuitry 334 may associate different bedtimes with different days of the week. In each of these examples, the control circuitry 334 may control one or more components (such as the lighting system 314, thermostat 316, security system 318, oven 322, coffee maker 324, lamps 326, and nightlight 328) as a function of the detected presence in bed and the bedtime range.
[0098] The control circuitry 334 may further communicate with and receive information from the thermostat 316 and generate control signals to control the functions of the thermostat 316. For example, the user 308 may indicate a user preference for different temperatures at different times depending on the user's 308 sleep state or presence in bed. For example, the user 308 may prefer an environmental temperature of 72° F. when out of bed, 70° F. when in bed but awake, and 68° F. when asleep. The control circuitry 334 of the bed 302 may detect the user's 308 presence in bed at night and determine that the user 308 is asleep. In response to this determination, the control circuitry 334 may generate a control signal to cause the thermostat to change the temperature to 70° F. The control circuitry 334 may then transmit the control signal to the thermostat 316. Upon detecting that the user 308 is asleep or asleep during the bedtime range, the control circuitry 334 may generate and send a control signal to cause the thermostat 316 to change the temperature to 68 degrees F. Upon determining that the user has woken up for the day (e.g., the user 308 got out of bed after 6:30 a.m.), the control circuitry 334 may generate and send a control signal to cause the thermostat 316 to change the temperature to 72 degrees F.
[0099] In some implementations, the control circuitry 334 may similarly generate control signals to cause one or more heating or cooling elements on the surface of the bed 302 to change temperature at various times, in response to user interaction with the bed 302, or at various preprogrammed times. For example, the control circuitry 334 may activate a heating element to increase the temperature of one side of the surface of the bed 302 to 73 degrees Fahrenheit when it is detected that the user 308 has fallen asleep. As another example, the control circuitry 334 may power off the heating or cooling element when it determines that the user 308 has woken up for the day. As yet another example, the user 308 may preprogram various times at which the temperature of the bed surface should be increased or decreased. For example, the user may program the bed 302 to increase the surface temperature to 76 degrees Fahrenheit at 10:00 PM and decrease the surface temperature to 68 degrees Fahrenheit at 11:30 PM.
[0100] In some implementations, in response to detecting the presence of the user 308 in bed and / or detecting that the user 308 is asleep, the control circuitry 334 may cause the thermostat 316 to change the temperatures in different rooms to different values. For example, in response to determining that the user 308 is in bed at night, the control circuitry 334 may generate and transmit a control signal to cause the thermostat 316 to set the temperature in one or more bedrooms in the house to 72 degrees Fahrenheit and to set the temperature in other rooms to 67 degrees Fahrenheit.
[0101] Control circuitry 334 may also receive temperature information from thermostat 316 and may use this temperature information to control functions of bed 302 or other devices. For example, as described above, control circuitry 334 may adjust the temperature of a heating element included in bed 302 in response to temperature information received from thermostat 316.
[0102] In some implementations, the control circuitry 334 may generate and transmit control signals to control other temperature control systems. For example, in response to determining that the user 308 has woken up that day, the control circuitry 334 may generate and transmit control signals to activate a floor heating element. For example, the control circuitry 334 may turn on a floor heating system in the master bedroom in response to determining that the user 308 has woken up that day.
[0103] The control circuitry 334 may further communicate with and receive information from the security system 318 and generate control signals to control functions of the security system 318. For example, in response to detecting that the user 308 has gone to bed for the night, the control circuitry 334 may generate a control signal that causes the security system to activate or deactivate a security function. The control circuitry 334 may then transmit the control signal to the security system 318 to activate the security system 318. As another example, the control circuitry 334 may generate and transmit a control signal to disable the security system 318 in response to determining that the user 308 has woken up for the day (e.g., the user 308 is no longer in bed 302 after 6:00 a.m.). In some implementations, the control circuitry 334 may generate and transmit a first set of control signals to the security system 318 to activate a first set of security features in response to detecting the presence of the user 308 in bed, and may generate and transmit a second set of control signals to the security system 318 to activate a second set of security features in response to detecting that the user 308 has fallen asleep.
[0104] In some implementations, the control circuitry 334 may receive an alert from the security system 318 (and / or a cloud service associated with the security system 318) and may indicate the alert to the user 308. For example, the control circuitry 334 may detect that the user 308 is in bed at night and, in response, may generate and send a control signal to arm or disarm the security system 318. The security system may then detect a security breach (e.g., someone opens the door 332 without entering a security code, or someone opens a window while the security system 318 is armed). The security system 318 may communicate the security breach to the control circuitry 334 of the bed 302. In response to receiving a communication from the security system 318, the control circuitry 334 may generate a control signal to alert the user 308 of the security breach. For example, the control circuitry 334 may vibrate the bed 302. As another example, the control circuitry 334 may articulate a portion of the bed 302 (e.g., raise or lower the head section) to wake the user 308 and alert the user of a security breach. As another example, the control circuitry 334 may generate and send a control signal to cause the lamp 326 to flash at regular intervals to alert the user 308 of a security breach. As another example, the control circuitry 334 may alert the user 308 of one bed 302 of a security breach in another bed's bedroom, such as an open window in a child's bedroom. As another example, the control circuitry 334 may send an alert to a garage door controller (e.g., to close and lock the door). As another example, the control circuitry 334 may send an alert so that security is deactivated.
[0105] The control circuitry 334 may further generate and transmit control signals to control the garage door 320 and may receive information indicating the state of the garage door 320 (i.e., open or closed). For example, in response to determining that the user 308 is in bed at night, the control circuitry 334 may generate and transmit a request to a garage door opener or other device capable of sensing whether the garage door 320 is open. The control circuitry 334 may request information regarding the current state of the garage door 320. If the control circuitry 334 receives a response (e.g., from the garage door opener) indicating that the garage door 320 is open, the control circuitry 334 may notify the user 308 that the garage door is open or may generate a control signal to cause the garage door opener to close the garage door 320. For example, the control circuitry 334 may send a message to the user device 310 indicating that the garage door is open. As another example, the control circuitry 334 may cause the bed 302 to vibrate. As yet another example, the control circuitry 334 may generate and transmit a control signal to cause the lighting system 314 to flash one or more lights in the bedroom and to alert the user 308 to check the user device 310 for an alert (in this example, an alert regarding the garage door 320 being open). Alternatively, or additionally, the control circuitry 334 may generate and transmit a control signal to cause a garage door opener to close the garage door 320 in response to identifying that the user 308 is in bed at night and that the garage door 320 is open. In some implementations, the control signal may vary depending on the age of the user 308.
[0106] The control circuitry 334 may similarly send and receive communications to control or receive status information related to the door 332 or the oven 322. For example, upon detecting that the user 308 is in bed at night, the control circuitry 334 may generate and send a request to a device or system to detect the status of the door 332. Information returned in response to the request may indicate various states of the door 332, such as open, closed but unlocked, or closed and locked. If the door 332 is open or closed but unlocked, the control circuitry 334 may alert the user 308 of the door's status, such as in the manner described above for the garage door 320. Alternatively or additionally to alerting the user 308, the control circuitry 334 may generate and send a control signal to lock the door 332 or to lock it closed. If the door 332 is closed and locked, the control circuitry 334 may determine that no further action is required.
[0107] Similarly, upon detecting that the user 308 is in bed at night, the control circuitry 334 may generate and send a request to the oven 322 to request the state of the oven 322 (e.g., on or off). If the oven 322 is on, the control circuitry 334 may alert the user 308 and / or generate and send a control signal to turn the oven 322 off. If the oven is already off, the control circuitry 334 may determine that no further action is required. In some implementations, different alerts may be generated for different events. For example, the control circuitry 334 may cause the lamps 326 (or one or more other lights via the lighting system 314) to flash in a first pattern if the security system 318 detects a breach, in a second pattern if the garage door 320 is open, in a third pattern if the door 332 is open, in a fourth pattern if the oven 322 is on, and in a fifth pattern if another bed detects that the user of that bed has woken up (e.g., when a sensor in the child's bed 302 detects that the child of the user 308 has left the bed during the night). Other examples of alerts that may be processed by the control circuitry 334 of the bed 302 and communicated to the user include an alert from a smoke detector that detects smoke (and communicates the smoke detection to the control circuitry 334), a carbon monoxide tester that detects carbon monoxide, a heater malfunction, or any other device capable of communicating with the control circuitry 334 and capable of detecting the occurrence of an event that should be brought to the attention of the user 308.
[0108] The control circuitry 334 may also communicate with a system or device for controlling the state of the blinds 330. For example, in response to determining that the user 308 is in bed at night, the control circuitry 334 may generate and transmit a control signal to cause the blinds 330 to close. As another example, in response to determining that the user 308 has woken up for the day (e.g., the user got out of bed after 6:30 a.m.), the control circuitry 334 may generate and transmit a control signal to cause the blinds 330 to open. In contrast, if the user 308 gets out of bed before the user's 308 normal wake-up time, the control circuitry 334 may determine that the user 308 has not yet woken up for the day and may not generate a control signal to cause the blinds 330 to open. As yet another example, the control circuitry 334 may generate and transmit a control signal to cause a first set of blinds to close in response to detecting the user 308's presence in bed, and to cause a second set of blinds to close in response to detecting the user is asleep.
[0109] The control circuitry 334 may generate and transmit control signals to control functions of other home devices in response to detecting user interaction with the bed 302. For example, in response to determining that the user 308 has woken up for the day, the control circuitry 334 may generate and transmit a control signal to the coffee maker 324 to cause the coffee maker 324 to begin brewing coffee. As another example, the control circuitry 334 may generate and transmit a control signal to the oven 322 to cause the oven to begin pre-heating (for users who like freshly baked bread in the morning). As another example, the control circuitry 334 may use information indicating that the user 308 has woken up for the day, along with information indicating that the time of year is currently winter and / or that the outside temperature is below a threshold, to generate and transmit a control signal to turn on the engine block heater in a car.
[0110] As another example, the control circuitry 334 may generate and transmit a control signal to cause one or more devices to enter a sleep mode in response to detecting the user 308's presence in bed or in response to detecting that the user 308 is asleep. For example, the control circuitry 334 may generate a control signal to cause the user's 308 cell phone to switch into a sleep mode. The control circuitry 334 may then transmit the control signal to the cell phone. Further later, upon determining that the user 308 has woken up for the day, the control circuitry 334 may generate and transmit a control signal to cause the cell phone to switch out of the sleep mode (to a normal mode).
[0111] In some implementations, the control circuitry 334 may communicate with one or more noise control devices. For example, upon determining that the user 308 is in bed at night or asleep, the control circuitry 334 may generate and transmit control signals to activate one or more noise cancellation devices. The noise cancellation devices may be included as part of the bed 302 or may be located in a bedroom in which the bed 302 is located, for example. As another example, upon determining that the user 308 is in bed at night or asleep, the control circuitry 334 may generate and transmit control signals to turn on, off, up, or down the volume of one or more sound generating devices, such as a stereo system radio, a computer, a tablet, etc.
[0112] Additionally, functions of the bed 302 are controlled by the control circuitry 334 in response to user interactions with the bed 302. For example, the bed 302 may include an adjustable base and an articulation controller configured to adjust the position of one or more portions of the bed 302 by adjusting the adjustable base that supports the bed. For example, the articulation controller may adjust the bed 302 from a flat position to a position in which a head portion of the mattress of the bed 302 is tilted upward (e.g., to facilitate a user sitting on the bed and / or watching television). In some implementations, the bed 302 includes multiple separately articulatable sections. For example, portions of the bed corresponding to the positions of the air chambers 306a and 306b may be articulated independently of one another to allow one person positioned on the surface of the bed 302 to rest in a first position (e.g., a flat position) while a second person rests in a second position (e.g., a reclined position with the head tilted up from the waist). In some implementations, separate positions may be set for two different beds (e.g., two twin beds placed next to each other). The base of the bed 302 may include two or more zones that may be independently adjusted. The articulation controller may also be configured to provide different levels of massage to one or more users on the bed 302, or to vibrate the bed to communicate alerts to the user 308 as described above.
[0113] The control circuitry 334 may adjust the position (e.g., tilt and lower positions for the user 308 and / or additional users of the bed 302) in response to user interaction with the bed 302. For example, the control circuitry 334 may cause the articulation controller to adjust the bed 302 to a first reclined position for the user 308 in response to sensing the presence of the user 308 in bed. The control circuitry 334 may cause the articulation 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 circuitry 334 may receive a communication from the television 312 indicating that the user 308 has turned off the television 312, in response to which the control circuitry 334 may adjust the position of the bed 302 to a preferred user sleep position (e.g., the user turning off the television 312 while the user 308 is in bed, indicating that the user 308 wishes to fall asleep).
[0114] In some implementations, the control circuitry 334 may control the articulation controller to wake one user of the bed 302 without waking another user of the bed 302. For example, the user 308 and a second user of the bed 302 may each set a different wake-up time (e.g., 6:30 a.m. and 7:15 a.m., respectively). When it is time for the user 308 to wake up, the control circuitry 334 may cause the articulation controller to vibrate or change the position of only the side of the bed on which the user 308 is located to wake up the user 308 without disturbing the second user. When it is time for the second user to wake up, the control circuitry 334 may cause the articulation controller to vibrate or change the position of only the side of the bed on which the second user is located. Alternatively, when it is time for the second user to wake up, the control circuitry 334 may use other methods (e.g., an audio alarm, turning on a light, etc.) to wake up the second user. Because, when the control circuitry 334 attempts to wake up the second user, the user 308 is already awake and will not be disturbed.
[0115] Continuing to refer to FIG. 3, the control circuitry 334 of the bed 302 may utilize information about interactions with the bed 302 by multiple users to generate control signals to control the functions of various other devices. For example, the control circuitry 334 may wait to generate control signals, such as to activate the security system 318 or to command the lighting system 314 to turn off various room lights, until it detects that both the user 308 and a second user are present on the bed 302. As another example, the control circuitry 334 may generate a first set of control signals to cause the lighting system 314 to turn off a first set of lights upon detecting the presence of the user 308 at the bed, and may generate a second set of control signals to turn off a second set of lights in response to detecting the presence of the second user at the bed. As another example, the control circuitry 334 may wait to generate control signals to open the blinds 330 until it is determined that both the user 308 and the second user have woken up for the day. As yet another example, in response to determining that user 308 has left bed and is awake for the day, but the second user is still asleep, control circuitry 334 may generate and transmit a first set of control signals to cause coffee maker 324 to begin brewing coffee, to cause security system 318 to deactivate, to turn on lamp 326, to turn off night light 328, to cause thermostat 316 to increase the temperature in one or more rooms to 72 degrees Fahrenheit, and to open blinds (e.g., blinds 330) in rooms other than the bedroom in which bed 302 is located. Thereafter, in response to detecting that the second user is no longer in bed (or that the second user has awake), control circuitry 334 may generate and transmit a second set of control signals, for example, to cause lighting system 314 to turn on one or more lights in the bedroom, to open the bedroom blinds, and to turn on television 312 on a pre-designated channel.
[0116] [Example of a data processing system associated with a bed]
[0117] Here, examples of systems and components that may be used for data processing tasks associated with, for example, a bed are described. In some cases, multiple examples of a particular component or group of components are presented. Some of these examples are redundant and / or mutually exclusive alternatives. The connections between the components are shown as examples illustrating possible network configurations to allow communication between the components. Various types of connections may be used as technically necessary or desired. The connections generally refer to logical connections that may be made in any technically feasible manner. For example, a network on a motherboard may be created with a printed circuit board, a wireless data connection, and / or other types of network connections. Some logical connections are not shown for clarity. For example, many or all elements of a particular component may need to be connected to a power source and / or computer readable memory, but for clarity, the connections to the power source and / or computer readable memory may not be shown.
[0118] FIG. 4A is a block diagram of an example of a data processing system 400 that may be associated with a bed system, including those described above with respect to FIGS. 1-3. The system 400 includes a pump motherboard 402 and a pump daughterboard 404. The system 400 includes a sensor array 406, which may include one or more sensors configured to sense environmental and / or bed physical phenomena and report such sensing to the pump motherboard 402, for example for analysis. The system 400 also includes a controller array 408, which may include one or more controllers configured to control logic control devices of the bed and / or the environment. The pump motherboard 400 may be in communication with one or more computing devices 414 and one or more cloud services 410 via a local network, via the Internet 412, or via other manners suitable in the art. Each of these components is described in more detail below, along with several exemplary embodiments.
[0119] In this example, a pump motherboard 402 and a pump daughterboard 404 are communicatively coupled. They may be conceptually described as the center or hub of the system 400, and the other components may be conceptually described as spokes of the system 400. In some forms, this may mean that each of the spoke components communicates primarily or exclusively with the pump motherboard 402. For example, the sensors in the sensor array 406 may not be configured or able to communicate directly with a corresponding controller. Instead, each spoke component may communicate with the motherboard 402. The sensors in the sensor array 406 may report sensor readings to the motherboard 402, which in response may determine whether a controller in the controller array 408 should adjust some parameter of a logical control device or modify the state of one or more peripheral devices. In some cases, if the temperature of the bed is determined to be too high, the pump motherboard 402 may determine that a temperature controller should cool the bed.
[0120] One advantage of a hub-and-spoke network topology (sometimes called a star network) is reduced network traffic, for example, as compared to a mesh network using dynamic routing. Even if a particular sensor generates a large continuous stream of traffic, that traffic may only be sent to the motherboard 402 via one spoke of the network. The motherboard 402 may, for example, marshal the data, condense it into a smaller data format, and retransmit it for storage in the cloud service 410. Additionally or alternatively, the motherboard 402 may generate a single small command message in response to the large stream that is sent via a different spoke of the network. For example, if the large data stream is a pressure reading sent from the sensor array 406 several times per second, the motherboard 402 may respond with a single command message to the controller array to increase the pressure in the air chamber. In this case, the single command message may be orders of magnitude smaller than the stream of pressure readings.
[0121] As another advantage, the hub-and-spoke network topology may allow for a scalable network that can accommodate component additions, removals, failures, etc. This may allow, for example, more, fewer, or different sensors in the sensor array 406, more, fewer, or different controllers in the controller array 408, 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 obsolete by a newer version of that sensor, the system 400 may be configured such that only the motherboard 402 needs to be updated with a replacement sensor. This may allow product differentiation, for example, 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, and customer personalization, where customers may add their own selection of components to the system 400.
[0122] Additionally, a line of airbed products may use system 400 with various components. In applications where all airbeds in a product line include both a central logic unit and pump, motherboard 402 (and optionally daughterboard 404) may be designed to fit into a single universal housing. Additional sensors, controllers, cloud services, etc. may then be added with each upgrade of a product in the product line. Designing all products in a product line from such a base may reduce design, manufacturing, and testing time, as compared to a product line where each product has a custom logic control system.
[0123] Each of the aforementioned components may be implemented in a variety of technologies and forms. Several examples of each component are further described below. In some alternatives, two or more components of system 400 may be implemented in a single alternative component, some components may be implemented in multiple separate components, and / or some functionality may be provided by different components.
[0124] 4B is a block diagram illustrating some communication paths of the data processing system 400. As previously mentioned, the motherboard 402 and pump daughterboard 404 may act as a hub for peripherals and cloud services of the system 400. If the pump daughterboard 404 communicates with a cloud service or other component, the communication from the pump daughterboard 404 may be routed through the pump motherboard 402. This may allow, for example, the bed to have only a single connection to the Internet 412. The computing device 414 may also have a connection to the Internet 412, possibly through the same gateway used by the bed and / or possibly through a different gateway (e.g., a cell service provider).
[0125] Previously, several cloud services 410 have been described. As shown in FIG. 4B, some cloud services, such as cloud services 410d and 410e, may be configured such that the pump motherboard 402 can communicate directly with the cloud services--i.e., the motherboard 402 may communicate with the cloud services 410 without having to use another cloud service 410 as an intermediary. Additionally or alternatively, some cloud services 410, such as cloud service 410f, may be reachable by the pump motherboard 402 only through an intermediary cloud service, such as cloud service 410e. Although not shown here, some cloud services 410 may be reachable directly or indirectly by the pump motherboard 402.
[0126] Additionally, some or all of the cloud services 410 may be configured to communicate with other cloud services. This communication may include the transfer of data and / or remote function calls according to any technically appropriate manner. For example, one cloud service 410 may request a copy of another cloud service's 410 data, such as for backup, coordination, migration purposes, or to perform computations or data mining. In another example, many cloud services 410 may contain data that is indexed according to specific users tracked by the user count cloud 410c and / or bed data cloud 410a. These cloud services 410 may communicate with the user count cloud 410c and / or bed data cloud 410a when accessing data specific to a particular user or bed.
[0127] Figure 5 is a block diagram of one example of a motherboard 402 that may be used in a data processing system that may be associated with a bed system, including those described above with respect to Figures 1-3. In this example, the motherboard 402 may be comprised of relatively few components and may be limited to provide a relatively limited feature set, as compared to other examples described below.
[0128] The motherboard includes a power supply 500, a processor 502, and computer memory 512. In general, the power supply includes hardware used to receive power from an external source and provide it to the components of the motherboard 402. The power supply may include, for example, a battery pack and / or wall outlet adapter (plug), an AC-DC converter, a DC-AC converter, a power conditioner, a capacitor bank, and / or one or more interfaces for providing power at the current type, voltage, etc. required by the other components of the motherboard 402.
[0129] Processor 502 is generally a device for receiving input, making logical decisions, and providing output. Processor 502 may be a central processing unit, a microprocessor, a general-purpose logic circuit, an application specific integrated circuit (ASIC), a combination thereof, and / or other hardware to perform the necessary functions.
[0130] Memory 512 is generally one or more devices for storing data. Memory 512 may include long-term stable data storage (e.g., on a hard disk), short-term volatile data storage (e.g., on a random access memory), or any other technically suitable configuration.
[0131] The motherboard 402 includes a pump controller 504 and a pump motor 506. The pump controller 504 may receive commands from the processor 502 and, in response, control the function of the pump motor 506. For example, the pump controller 504 may receive a command from the processor 502 to increase the pressure of an air chamber by 0.3 pounds per square inch (PSI). In response, the pump controller 504 may actuate a valve such that the pump motor 506 is configured to pump air into a selected air chamber and operate the pump motor 506 for a time corresponding to 0.3 PSI or until a sensor indicates that the pressure has been increased by 0.3 PSI. In an alternative embodiment, a message may specify that the chamber should be inflated to a target PSI and the pump controller 504 may operate the pump motor 506 until the target PSI is reached.
[0132] The valve solenoid 508 may control which air chamber the pump is connected to. In some cases, the solenoid 508 may be controlled directly by the processor 502. In some cases, the solenoid 508 may be controlled by the pump controller 504.
[0133] The remote interface 510 of the motherboard 402 may allow the motherboard 402 to communicate with other components of a data processing system. For example, the motherboard 402 may be able to communicate with one or more daughterboards, peripheral sensors, and / or peripheral controllers via the remote interface 510. The remote interface 510 may provide any technologically appropriate communication interface, including, but not limited to, multiple communication interfaces, such as WiFi, Bluetooth, and copper wired networks.
[0134] Figure 6 is a block diagram of an example of a motherboard 402 that may be used in a data processing system that may be associated with a bed system, including those described above with respect to Figures 1 to 3. Compared to the motherboard 402 described with reference to Figure 5, the motherboard of Figure 6 may include more components and may provide more functionality in some applications.
[0135] In addition to the power supply 500, processor 502, pump controller 504, pump motor 506 and valve solenoid 508, the motherboard 402 is shown with 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 computer memory 512.
[0136] Similar to how pump controller 504 converts commands from processor 502 into control signals for pump motor 506, valve controller 600 may convert commands from processor 502 into control signals for valve solenoid 508. In one example, processor 502 may issue a command to valve controller 600 to connect a pump to one particular air chamber of a group of air chambers in an airbed. Valve controller 600 may control the position of valve solenoid 508 such that the pump is connected to the indicated air chamber.
[0137] The pressure sensor 602 can take pressure readings from one or more air chambers of the airbed. The pressure sensor 602 can also provide digital sensor calibration.
[0138] Motherboard 402 may include a set of network interfaces, including but not limited to those illustrated here. These network interfaces may allow the motherboard to communicate over wired or wireless networks with any number of devices, including but not limited to peripheral sensors, peripheral controllers, computing devices, and devices and services connected to the Internet 412.
[0139] FIG. 7 is a block diagram of an example of a daughterboard 404 that may be used in a data processing system that may be associated with a bed system, including those described above with respect to FIGS. 1-3. In some configurations, one or more daughterboards 404 may be connected to the motherboard 402. Some daughterboards 404 may be designed to offload certain tasks and / or compartmentalized tasks from the motherboard 402. This may be advantageous, for example, if a certain task is computationally intensive, proprietary, or subject to future revisions. For example, a daughterboard 404 may be used to calculate a certain sleep data metric. This metric may be computationally intensive, and calculating the sleep metric on the daughterboard 404 may free up resources on the motherboard 402 while the metric is being calculated. Additionally and / or alternatively, the sleep metric may be subject to future revisions. It is possible that to update the system 400 with a new sleep metric, only the daughterboard 404 that calculates the metric needs to be replaced. In this case, there is no need to perform unit testing of the daughterboard 404 as well as additional components since the same motherboard 402 and other components may be used.
[0140] The daughterboard 404 is shown with a power supply 700, a processor 702, a computer readable memory 704, a pressure sensor 706, and a WiFi radio 708. The processor may use the pressure sensor 706 to gather information regarding the pressure of one or more air chambers of the airbed. From this data, the processor 702 may execute an algorithm to calculate sleep metrics. In some examples, sleep metrics may be calculated only from the pressure of the air chambers. In other examples, sleep metrics may be calculated from one or more other sensors. In examples where different data is needed, the processor 702 may receive the data from an appropriate sensor or sensors. These sensors may be internal to the daughterboard 404, accessible via the WiFi radio 708, or in communication with the processor 702. Once the sleep metrics are calculated, the processor 702 may report the sleep metrics to, for example, the motherboard 402.
[0141] Figure 8 is a block diagram of an example of a motherboard 800 without daughterboards that may be used in a data processing system that may be associated with a bed system, including those described above with respect to Figures 1-3. In this example, the motherboard 800 may perform most, all, or more of the functions described with reference to the motherboard 402 of Figure 6 and the daughterboard 404 of Figure 7.
[0142] Figure 9 is a block diagram of an example of a sensor array 406 that may be used in a data processing system that may be associated with a bed system, including those described above with respect to Figures 1-3. In general, 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 native to the motherboard 402.
[0143] The peripheral sensors of the sensor array 406 may communicate with the motherboard 402 via one or more network interfaces of the motherboard, including but not limited to a USB stack 604, a WiFi radio 606, a Bluetooth Low Energy (BLE) radio 608, a ZigBee radio 610, and a Bluetooth radio 612, as appropriate for the particular sensor configuration. For example, a sensor that outputs readings via a USB cable may communicate via the USB stack 604.
[0144] Some of the peripheral sensors 900 of the sensor array 406 may be attached to the bed. These sensors may, for example, be embedded in the structure of the bed and sold with the bed, or may be attached to the structure of the bed later. Other peripheral sensors 902, 904 may be in communication with the motherboard 402, but may be selectively not attached to the bed. In some cases, some or all of the sensors 900 and / or peripheral sensors 902, 904 attached to the bed may share networking hardware, which includes conductors including wires, multi-wire cables, or plugs from each sensor that connect all of the associated sensors with the motherboard 402 when attached to the motherboard 402. In some embodiments, one, some, or all of the sensors 902, 904, 906, 908, 910 are capable of sensing one or more characteristics of the mattress, such as pressure, temperature, light, sound, and / or one or more other characteristics of the mattress. In some embodiments, one, some, or all of the sensors 902, 904, 906, 908, 910 are capable of sensing one or more characteristics of the exterior of the mattress. In some embodiments, the pressure sensor 902 is capable of sensing the pressure of the mattress while some, or all of the sensors 902, 904, 906, 908, 910 are capable of sensing one or more characteristics of the mattress and / or one or more characteristics of the exterior of the mattress.
[0145] Figure 10 is a block diagram of an example of a controller array 408 that may be used in a data processing system that may be associated with a bed system, including those described above with respect to Figures 1-3. In general, 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 native to the motherboard 402.
[0146] The peripheral controllers of the controller array 408 may communicate with the motherboard 402 via one or more network interfaces of the motherboard, including but not limited to a USB stack 604, a WiFi radio 606, a Bluetooth Low Energy (BLE) radio 608, a ZigBee radio 610, and a Bluetooth radio 612, as appropriate for the particular sensor configuration. For example, a controller that receives commands via a USB cable may communicate via the USB stack 604.
[0147] Some of the controllers 1000 of the controller array 408 may be mounted to the bed, including, but not limited to, a temperature controller 1006, a lighting controller 1008, and / or a speaker controller 1010. These controllers may, for example, be embedded in the structure of the bed and sold with the bed, or may be later mounted to the structure of the bed. Other peripheral controllers 1002, 1004 may communicate with the motherboard 402, but may be selectively not mounted to the bed. In some cases, some or all of the controllers 1000 and / or peripheral controllers 1002, 1004 mounted to the bed may share networking hardware, which includes conductors including wires, multi-wire cables, or plugs for each controller that, when mounted to the motherboard 402, connect all of the associated controllers to the motherboard 402.
[0148] Figure 11 is a block diagram of an example of a computing device 414 that may be used in a data processing system that may be associated with a bed system, including those described above with respect to Figures 1-3. The computing device 414 may include, for example, a computing device used by a user of the bed. Exemplary computing devices 414 include, but are not limited to, mobile computing devices (e.g., mobile phones, tablet computers, laptops) and desktop computers.
[0149] The computing device 414 includes a power supply 1100, a processor 1102, and a computer-readable memory 1104. User input and output may be transmitted, for example, via a speaker 1106, a touch screen 1108, or other components not shown, such as a pointing device or keyboard. The computing device 414 may execute one or more applications 1110. These applications may include, for example, applications that allow a user to interact with the system 400. These applications may allow a user to view information about the bed (sensor readings, sleep metrics, etc.) and configure the operation of the system 400 (e.g., set a desired firmness for the bed, set a desired operation for peripheral devices). In some cases, the computing device 414 may be used in addition to or in place of the remote control 122 described above.
[0150] Figure 12 is a block diagram of an example of a bed data cloud service 410a that may be used in a data processing system that may be associated with a bed system, including those described above with respect to Figures 1 to 3. In this example, the bed data cloud service 410a is configured to collect sensor data and sleep data from a particular bed and match the sensor data and sleep data to one or more users occupying the bed at the time the sensor data and sleep data were generated.
[0151] The bed data cloud service 410a is shown with a network interface 1200, a communications manager 1202, server hardware 1204, and server system software 1206. Additionally, the bed data cloud service 410a is shown with a user identification module 1208, a device management module 1210, a sensor data module 1212, and an advanced sleep data module 1214.
[0152] The network interface 1200 generally includes hardware and low-level software used to allow one or more hardware devices to communicate over a network. For example, the network interface 1200 may include network cards, routers, modems, and other hardware required to allow the components of the bed data cloud service 410a to communicate with each other and other destinations, for example, via the Internet 412. The communications manager 1202 generally includes hardware and software that operates on the network interface 1200. This includes software for initiating, maintaining, and tearing down network communications used by the bed data cloud service 410a. This includes, for example, TCP / IP, SSL or TLS, Torrent, and other communications sessions over local or wide area networks. The communications manager 1202 may also provide load balancing and other services to other components of the bed data cloud service 410a.
[0153] The server hardware 1204 generally includes physical processing equipment used to instantiate and maintain the bed data cloud service 410a. This hardware includes, but is not limited to, processors (e.g., central processing units, ASICs, graphic processors) and computer readable memory (e.g., random access memory, stable hard disks, tape backups). One or more servers may be configured in a cluster, multi-computer, or data center that may be geographically separated or connected.
[0154] Server system software 1206 generally includes software that runs on server hardware 1204 to provide an operating environment for applications and services. Server system software 1206 may include operating systems that run on real servers, virtual machines that are instantiated on real servers to create many virtual servers, and server-level operations such as data migration, redundancy, and backups.
[0155] The user identification module 1208 may include or reference data related to users of a bed with an associated data processing system. For example, a user may include a customer, owner, or other user registered with the bed data cloud service 410a or other service. Each user may have, for example, a unique identifier, user credentials, contact information, billing information, demographic information, or other technically appropriate information.
[0156] The device management module 1210 may include or reference data related to beds or other products associated with the data processing system. For example, beds may include products (product information) sold or registered in a system associated with the bed data cloud service 410a. Each bed may have, for example, a unique identifier, a model and / or serial number, sales information, geographic information, shipping information, a list of associated sensors and peripheral controls, etc. Additionally, one or more indexes stored by the bed data cloud service 410a may identify a user associated with the bed. For example, the indexes may record sales of beds to one or more users who sleep in the bed, etc.
[0157] The sensor data module 1212 may record raw or compressed sensor data recorded by a bed with an associated data processing system. For example, the bed's data processing system may have temperature, pressure, and light sensors. Readings from these sensors may be communicated by the bed's data processing system to the bed data cloud service 410a in raw sensor form or in a format generated from the raw data (e.g., sleep metrics) and stored in the sensor data module 1212. Additionally, one or more indexes stored by the bed data cloud service 410a may identify the user and / or bed associated with the sensor data module 1212.
[0158] The bed data cloud service 410a may use any of its available data to generate advanced sleep data 1214. In general, the advanced sleep data 1214 includes sleep metrics and other data generated from sensor readings. Some of these calculations may be performed by the bed data cloud service 410a instead of being performed locally on the bed's data processing system, for example, if the calculation is complex or requires a large amount of memory space or processor power that is not available on the bed's data processing system. This may help to allow the bed system to operate with a relatively simple controller, while still being part of the system that performs relatively complex tasks and calculations.
[0159] Figure 13 is a block diagram of an example of a sleep data cloud service 410b that may be used in a data processing system that may be associated with a bed system, including those described above with respect to Figures 1-3. In this example, the sleep data cloud service 410b is configured to record data related to a user's sleep experience.
[0160] The sleep data cloud service 410b is shown with a network interface 1300, a communications manager 1302, server hardware 1304, and server system software 1306. Additionally, the sleep data cloud service 410b is shown with a user identification module 1308, a pressure sensor management module 1310, a pressure-based sleep data module 1312, a raw pressure sensor data module 1314, and a non-pressure sleep data module 1316.
[0161] The pressure sensor management module 1310 may include or reference data related to the configuration and operation of pressure sensors in the bed. For example, this data may include identifiers for the types of sensors in a particular bed, their configuration and calibration data, etc.
[0162] The pressure-based sleep data 1312 may use the raw pressure sensor data 1314 to calculate sleep metrics specifically associated with the pressure sensor data. For example, a user's presence, movement, weight change, heart rate, and respiration rate may all be determined from the raw pressure sensor data 1314. Additionally, one or more indexes stored by the sleep data cloud service 410b may identify a user associated with the pressure sensor, the raw pressure sensor data, and / or the pressure-based sleep data.
[0163] The non-stress sleep data 1316 may use other data sources to calculate sleep metrics. For example, user-entered preferences, optical sensor readings, and acoustic sensor readings may all be used to track sleep data. Additionally, one or more indexes stored by the sleep data cloud service 410b may identify the user associated with the other sensors and / or the non-stress sleep data 1316.
[0164] Figure 14 is a block diagram of an example of a user counting cloud service 410c that may be used in a data processing system that may be associated with a bed system, including those described above with respect to Figures 1-3. In this example, the user counting cloud service 410c is configured to record a list of users and identify other data related to those users.
[0165] The user counting cloud service 410c is shown with a network interface 1400, a communications manager 1402, server hardware 1404, and server system software 1406. Additionally, the user counting cloud service 410c is shown with a user identification module 1408, a purchase history module 1410, an engagement module 1412, and an application usage history module 1414.
[0166] The user identification module 1408 may include or reference data related to users of a bed with an associated data processing system. For example, a user may include a customer, owner, or other user registered with the user counting cloud service 410c or other service. Each user may have, for example, a unique identifier, user credentials, demographic information, or other technically appropriate information.
[0167] The purchase history module 1410 may include or reference data related to purchases made by users. For example, the purchase data may include sales contact information, billing information, and sales representative information. Additionally, one or more indexes stored by the user account cloud service 410c may identify the user associated with the purchase.
[0168] The engagement module 1412 can track user interactions with manufacturers, vendors, and / or managers of the bed and / or cloud services. This engagement data can include communications (e.g., emails, service calls, etc.), sales data (e.g., receipts, configuration logs), and social network interactions.
[0169] The usage history module 1414 may include data regarding user interactions with one or more applications and / or remote controls of the bed. For example, a monitoring and configuration application may be distributed to run on, for example, multiple computing devices 412. The application may log and report user interactions for storage in the application usage history module 1414. Additionally, one or more indexes stored by the user counting cloud service 410c may identify the user associated with each log entry.
[0170] Figure 15 is a block diagram of an example of a point of sale (POS) cloud service 1500 that may be used in a data processing system that may be associated with a bed system, including those described above with respect to Figures 1-3. In this example, the point of sale cloud service 1500 is configured to record data related to user purchases.
[0171] Point of sale cloud service 1500 is shown with network interface 1502, communications manager 1504, server hardware 1506, and server system software 1508. Additionally, point of sale cloud service 1500 is shown with user identification module 1510, purchase history module 1512, and setup module 1514.
[0172] The purchase history module 1512 may include or reference data related to purchases made by a user identified in the user identification module 1510. The purchase information may include data such as the sale, price, location of sale, delivery address, and configuration options selected by the user at the time of sale. These configuration options may include choices made by the user about how they want their newly purchased bed set up, and may include, for example, an expected sleep schedule, a list of peripheral sensors and controllers the user has or will install, etc.
[0173] The bed setup module 1514 may include or reference data related to the setup of a bed purchased by a user. Bed setup data may include, for example, the date and address to which the bed is to be delivered, the person receiving the delivery, the configuration applied to the bed at the time of delivery, the names of one or more people who will be sleeping on the bed, which side of the bed each person will be using, etc.
[0174] The data recorded in the point of sale cloud service 1500 can be referenced at a later date by the user's bed system to control the bed system's functions and / or send control signals to peripheral components according to the data recorded in the point of sale cloud service 1500. This can allow a salesperson to collect information from the user at the point of sale, which can facilitate automation of the bed system at a later time. In some examples, some or all features of the bed system can be automated and little to no user input data is required after the point of sale. In other examples, the data recorded in the point of sale cloud service 1500 can be used in conjunction with various additional data collected from the user input data.
[0175] Figure 16 is a block diagram of an example of an environmental cloud service 1600 that may be used in a data processing system that may be associated with a bed system, including those described above with respect to Figures 1 to 3. In this example, the environmental cloud service 1600 is configured to record data related to a user's home environment.
[0176] The environmental cloud service 1600 is shown with a network interface 1602, a communications manager 1604, server hardware 1606, and server system software 1608. Additionally, the environmental cloud service 1600 is shown with a user identification module 1610, an environmental sensor module 1612, and an environmental factor module 1614.
[0177] The environmental sensor module 1612 may contain a list of sensors that have been installed in the bed by a user of the user identification module 1610. These sensors include any sensor capable of detecting environmental variables, such as light sensors, noise sensors, vibration sensors, thermostats, etc. Additionally, the environmental sensor module 1612 may store past readings or reports from those sensors.
[0178] The environmental factors module 1614 may include reports generated based on the data of the environmental sensor module 1612. For example, for a user with a light sensor for the environmental sensor module 1612 data, the environmental factors module 1614 may maintain a report showing the frequency and duration of instances of increased lighting when the user was asleep.
[0179] In the examples described herein, each cloud service 410 is shown with some of the same components. In various forms, these same components may be shared, partially or completely, between the services, or they may be separate. In some forms, each service may have separate copies of some or all of the components that are the same or different in some respects. Furthermore, these components are provided only as illustrative examples. In other examples, each cloud service may have different numbers, types, and styles of components, as technically possible.
[0180] FIG. 17 is a block diagram of an example of automating peripheral devices around a bed using a data processing system that may be associated with a bed (such as a bed of a bed system described herein). Shown here is a behavioral analysis module 1700 running on the pump motherboard 402. For example, the behavioral analysis module 1700 may be one or more software components stored in the computer memory 512 and executed by the processor 502. In general, the behavioral analysis module 1700 may collect data from a wide variety of sources (e.g., sensors, non-sensor local sources, cloud data services) and may use behavioral algorithms 1702 to generate one or more actions to be taken (e.g., commands to send to a peripheral controller, data to send to a cloud service). This may be useful, for example, to track a user's behavior or to automate devices that communicate with the user's bed.
[0181] The behavioral analysis module 1700 may collect data from any technically suitable source to collect data regarding, for example, the characteristics of the bed, the environment of the bed, and / or the user of the bed. Some such sources include any of the sensors of the sensor array 406. For example, this data may provide the behavioral analysis module 1700 with information regarding the current state of the environment surrounding the bed. For example, the behavioral analysis module 1700 may access a reading from the pressure sensor 902 to determine the pressure of an air chamber in the bed. From this reading, and possibly other data, the presence of a user at the bed may be determined. In another example, the behavioral analysis module 1700 may access a light sensor 908 to detect the amount of light in the environment of the bed.
[0182] Similarly, the behavioral analysis module 1700 may access data from cloud services. For example, the behavioral analysis module 1700 may access the bed cloud service 410a and may access the historical sensor data 1212 and / or the advanced sleep data 1214. Other cloud services 410, including those not previously described, may be accessed by the behavioral analysis module 1700. For example, the behavioral analysis module 1700 may access a weather reporting service, a third party data provider (e.g., traffic and news data, emergency broadcast data, user travel data), and / or a clock and calendar service.
[0183] Similarly, the behavior analysis module 1700 may access data from non-sensor sources 1704. For example, the behavior analysis module 1700 may access a local clock and calendar service (e.g., a component of the motherboard 402 or the processor 502).
[0184] The behavioral analysis module 1700 may aggregate and prepare this data for use by one or more behavioral algorithms 1702. The behavioral algorithms 1702 may be used to learn the user's behavior and / or perform some action based on the state of the accessed data and / or predicted user behavior. For example, the behavioral algorithms 1702 may use 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. The same or a different action algorithm 1702 may then be used to determine whether an increase in air chamber pressure is likely indicative of the user going to bed, and if so, may send some data to the third party cloud service 410 and / or activate a device, such as the pump controller 504, the base actuator 1706, the temperature controller 1008, the under-bed light 1010, the peripheral controller 1002 or the peripheral controller 1004, to name a few.
[0185] In the depicted example, behavioral analysis module 1700 and behavioral algorithms 1702 are shown as components of motherboard 402, although other configurations are possible. For example, the same or similar behavioral analysis modules and / or behavioral algorithms may be executed in one or more cloud services and the resulting output may be sent to motherboard 402, a controller in controller array 408, or any other technically suitable recipient.
[0186] 18 illustrates an example of a computing device 1800 and an example of a mobile computing device that may be used to implement the techniques described herein. The computing device 1800 is intended to represent various forms of digital computers, such as laptops, desktops, 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, mobile phones, smart phones, and other similar computing devices. The components shown, their connections and relationships, and their functions are intended to be illustrative only and are not intended to limit the implementation of the invention described and / or claimed herein.
[0187] The computing device 1800 includes a processor 1802, a memory 1804, a storage device 1806, a high-speed interface 1808 connecting to the memory 1804 and a number of high-speed expansion ports 1810, and a low-speed interface 1812 connecting 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 port 1810, and the low-speed interface 1812 are interconnected using various buses and may be mounted on a common motherboard or in other manners as needed. The processor 1802 may process instructions for execution within the computing device 1800, including instructions stored in the memory 1804 or on the storage device 1806, and may 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 implementations, multiple processors and / or multiple buses may be used, along with multiple memories and types of memory, as appropriate, and multiple computing devices may be connected (e.g., as a bank of servers, as a collection of blade servers, or as a multiprocessor system) with each computing device providing a portion of the required operations.
[0188] The memory 1804 stores information within the computing device 1800. In some implementations, the memory 1804 is one or more volatile memory units. In some implementations, the memory 1804 is one or more non-volatile memory units. The memory 1804 may be another form of computer-readable medium, such as a magnetic disk or an optical disk.
[0189] The storage device 1806 can provide mass storage for the computing device 1800. In some implementations, the storage device 1806 can be or include a computer-readable medium, such as a floppy disk drive, a hard disk drive, an optical disk drive, a tape drive, a flash memory, or other similar solid-state memory device, or an arrangement of devices, including a storage area network or other form of device. The computer program product can be tangibly embodied in an information carrier. The computer program product can also include instructions that, when executed, perform one or more methods, such as the methods described above. The computer program product can also be tangibly embodied in a computer-readable or machine-readable medium, such as the memory 1804, the storage device 1806, or a memory on the processor 1802.
[0190] The high-speed interface 1808 manages bandwidth-intensive operations for the computing device 1800, and the low-speed interface 1812 manages lower bandwidth-intensive operations. This allocation of functionality is merely exemplary. In some implementations, the high-speed interface 1808 is coupled to the memory 1804, the display 1816 (e.g., via a graphics processor or accelerator), and a high-speed expansion port 1810 that can accept various expansion cards (not shown). In such implementations, 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 may include various communication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet) and may be coupled to one or more input / output devices, such as a keyboard, a pointing device, a scanner, or a network device, such as a switch or a router, for example, via a network adapter.
[0191] Computing device 1800 may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as a standard server 1820 or multiple times in a group of such servers. It may also be implemented in a personal computer, such as a laptop computer 1822. It may also be implemented as part of a rack server system 1824. Alternatively, components from computing device 1800 may be combined with other components in a mobile device (not shown), such as mobile computing device 1850. Each such device may include one or more of computing device 1800 and mobile computing device 1850, and the entire system may be made up of multiple computing devices in communication with each other.
[0192] The mobile computing device 1850 includes, among other things, a processor 1852, a memory 1864, input / output devices such as a display 1854, a communication interface 1866, and a transceiver 1868. The mobile computing device 1850 may also be provided with a storage device such as a microdrive or other device to provide additional storage. Each of the processor 1852, memory 1864, display 1854, communication interface 1866, and transceiver 1868 are interconnected using various buses, and some of the components may be mounted on a common motherboard or in other manners as desired.
[0193] The processor 1852 may execute instructions within the mobile computing device 1850, including instructions stored in the memory 1864. The processor 1852 may be implemented as a chipset of chips including separate analog and digital processors. The processor 1852 may provide for coordination of other components of the mobile computing device 1850, such as control of a user interface, applications run by the mobile computing device 1850, and wireless communication by the mobile computing device 1850.
[0194] The processor 1852 may communicate with a user via a control interface 1858 and a display interface 1856 coupled to a display 1854. The display 1854 may be, for example, a TFT display (thin film transistor liquid crystal display), an OLED (organic light emitting diode) display, or other suitable display technology. The display interface 1856 may have appropriate circuitry for driving the display 1854 to present graphical and other information to the user. The control interface 1858 may receive commands from the user and convert them for presentation to the processor 1852. Additionally, an external interface 1862 may provide communication with the processor 1852 to enable short-range communication with other devices of the mobile computing device 1850. The external interface 1862 may provide, for example, wired communication in some implementations or wireless communication in other implementations, and multiple interfaces may be used.
[0195] The memory 1864 stores information within the mobile computing device 1850. The memory 1864 may be implemented as one or more computer-readable media, one or more volatile memory units, or one or more non-volatile memory units. An expansion memory 1874 may also be provided and connected to the mobile computing device 1850 via an expansion interface 1872, which may include, for example, a SIMM (single in-line memory module) card interface. The expansion memory 1874 may provide additional storage space for the mobile computing device 1850 or may store applications or other information for the mobile computing device 1850. In particular, the expansion memory 1874 may include instructions for performing or supplementing the aforementioned processes and may also include security information. Thus, for example, the expansion memory 1874 may be provided as a security module for the mobile computing device 1850 and may be programmed with instructions that allow for secure use of the mobile computing device 1850. Additionally, secure applications may be provided via SIMM cards with additional information, such as placing identifying information on the SIMM card in a manner that cannot be hacked.
[0196] The memory may include, for example, flash memory and / or NVRAM memory (non-volatile random access memory), as described below. In some implementations, a computer program product is tangibly embodied in an information carrier. The computer program product includes instructions that, when executed, perform one or more methods, such as the methods described above. The computer program product may be a computer-readable or machine-readable medium, such as memory 1864, expansion memory 1874, or memory on processor 1852. In some implementations, the computer program product may be received in a propagated signal, for example, via transceiver 1868 or external interface 1862.
[0197] The mobile computing device 1850 may communicate wirelessly via a communication interface 1866, which may include digital signal processing circuitry, if desired, and may provide communications under various modes or protocols, such as GSM voice (Global System for Mobile Communications), SMS (Short Message Service), EMS (Enhanced Messaging Service), 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), among others. Such communications may occur via the transceiver 1868, for example, using radio frequencies. Additionally, short-range communications may occur, such as using Bluetooth, WiFi, or other such transceivers (not shown). Additionally, a GPS (Global Positioning System) receiving module 1870 may provide additional navigation and location related wireless data to the mobile computing device 1850. It may be suitably used by applications running on the mobile computing device 1850 .
[0198] The mobile computing device 1850 may also communicate audibly using an audio codec 1860. The audio codec 1860 may receive spoken information from a user and convert it into usable digital information. Similarly, the audio codec 1860 may generate sounds audible to the user, such as through a speaker in a handset of the mobile computing device 1850. Such sounds may include sounds from voice calls, recorded sounds (e.g., voice messages, music files, etc.), and may also include sounds generated by applications running on the mobile computing device 1850.
[0199] The mobile computing device 1850 may be implemented in a number of different forms, as shown in the figure, for example, as a mobile phone 1880, or as part of a smartphone 1882, personal digital assistant, or other similar mobile device.
[0200] Various implementations of the systems and techniques described herein may be realized in digital electronic circuitry, integrated circuits, specially designed ASICs (application-specific integrated circuits), computer hardware, firmware, software, and / or combinations thereof. These various implementations may include implementations in one or more computer programs executable and / or interpretable on a programmable system that includes at least one programmable processor, which may be coupled to receive data and instructions from, and transmit data and instructions to, a storage system, at least one input device, and at least one output device, for a special purpose or general purpose.
[0201] These computer programs (also referred to as programs, software, software applications, or code) include machine instructions for a programmable processor and may be implemented in a high level procedural and / or object-oriented programming language and / or in assembly / machine language. As used herein, the terms machine-readable medium and computer-readable medium refer to any computer program product, apparatus, and / or device (e.g., magnetic disks, optical disks, memory, programmable logic devices (PLDs)) used to provide machine instructions and / or data to a programmable processor. This includes machine-readable media that receive 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.
[0202] To provide interaction with a user, the systems and techniques described herein may be implemented on a computer that has 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 pointing device (e.g., a mouse or trackball) by which the user can provide input to the computer. Other types of devices may also be used to provide interaction with a user. For example, feedback provided to the user may be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback). Input from the user may be received in any form, including acoustic, speech, or tactile input.
[0203] The systems and techniques described herein may be implemented within a computing system that includes back-end components (e.g., a data server), or includes middleware components (e.g., an application server), or includes front-end components (e.g., a client computer with a graphical user interface or web browser through which a user can interact with an implementation of the systems and techniques described herein), or includes any combination of such back-end, middleware, and / or front-end components. The components of the system may be interconnected by any form or medium of digital data communication (e.g., a communications network). Examples of communications networks include a local area network (LAN), a wide area network (WAN), and the Internet.
[0204] A computing system may include clients and servers. Clients and servers are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
[0205] 19 is a block diagram of an example system for generating sleep recommendations for a user. As shown, a user may sleep in a bed system 1900. The bed system 1900 may be in data communication (e.g., wired, wireless) with a computer system 1902. The computer system 1902 may be configured to perform various smart bed-related tasks, including generating sleep recommendations for the user, determining the user's sleep state, and adjusting the bed system 1900.
[0206] As described herein, the bed system 1900 may include a number of sensors (e.g., a sensor system) configured to detect pressure, temperature, and other indicators of a user when the user lies on top of the mattress of the bed system 1900. In some implementations, the sensors may be part of a wearable device (e.g., a smart watch, a heart rate monitor, smart clothing, etc.) and / or a mobile phone or home automation device in data communication with the computer system 1902. Any one or more of the sensors described herein may capture, for example, the presence, movement, and biometric information of a user.
[0207] The sensed information may include a variety of different signals. For example, the information may include acoustic waves indicative of the user's breathing and / or snoring. The information may include pressure within the mattress indicative of the user's movement on top of the mattress. The information may also include pressure changes within one or more air chambers or air sections of the mattress that indicate the user is on top of the mattress. The information may also include pressure changes or other measurements indicative of the user's heart rate, breathing rate, and / or respiration rate. Additionally, the information may include the user's body temperature. The information may also include temperature changes at the top surface of the mattress that indicate the user is on top of the mattress. The information may include any one or more additional measurements that may be used to determine that the user is currently on top of the mattress / within the bed system 1900.
[0208] The sensed data may be transmitted (e.g., via a network 1906) to a computer system 1902 for analysis to sense the sleep quality of a single sleep session (block A, 1904). The data may be transmitted as sensed. In some implementations, the bed system 1900 may be configured to sense information at predetermined time intervals. At the end of each of the time intervals, the bed system 1900 may transmit the sensed data to the computer system 1902. Further, in some implementations, the bed system 1900 may receive a request from the computer system 1902 to sense information of the user. At that time, the bed system 1900 may sense the information and transmit the sensed data to the computer system 1902.
[0209] A sleep session may occur each time a user lies down in bed and attempts to fall asleep. A sleep session may be short, such as a nap. A sleep session may also be longer, such as when a user goes to bed at the end of the day. For many users, a sleep session may occur at night. For some users, a sleep session may occur during the day, especially if they have work or other responsibilities at night. A sleep session may end when a user wakes up and / or gets out of bed. In some implementations, a user may experience multiple sleep sessions during a night (or within a given period of time). In other words, a new sleep session may begin each time a user wakes up and when the user goes back to sleep. In other implementations, a sleep session may continue even when sleep is temporarily interrupted (e.g., when a user wakes up and goes back to sleep).
[0210] Then, after the user wakes up, the computer system 1902 may present the user with a survey, requesting user input as to how awake the user feels or how well the user felt in the previous sleep session (Block B, 1908). One exemplary configuration for this survey is shown below with respect to FIG. 20 and FIG. 21. The survey may be presented a few hours after the user wakes up, for example, around noon for a user who woke up around 6:30 a.m. This may allow the user to fully wake up and shake off the sleep inertia from the sleep session, while not being so late that the sleep pressure of being awake all day is necessarily felt. Although, in other examples, the survey may be presented immediately after waking up from a sleep session or just before the next sleep session.
[0211] Recommendations are generated for the user based on the user's perceived sleep quality and responses to the alertness survey (Block C, 1910). For example, the computer system 1902 may store a rule set that defines a set of parameters such as sleep quality (e.g., on a scale of 1 to 100), subjective sleep quality (e.g., alertness on a scale of 1 to 10), time of day (e.g., hours, minutes, and seconds of a 24-hour day, time since the user woke up, time since the user got out of bed), the user's behavioral activity (e.g., typical exercise and dietary habits, calendar appointments), etc. The computer system 1902 may apply the received data about the user and their sleep sessions to the rule set and generate one or more behavioral recommendations for the user. These recommendations may be presented to the user from the user's (mobile) phone, computing device, an audible home automation hub, etc.
[0212] 20 and 21 are exemplary graphic user interfaces (GUIs) 2000, 2100 for accepting input from a user regarding subjective alertness. The GUIs 2000, 2100 shown here are shown as rendered on a (mobile) phone owned and used by a user, but it will be appreciated that other forms of GUIs may be used. For example, speech synthesis and acoustic interaction with a speech recognition computing device (a (mobile) phone, a home automation hub, etc.) may be used, as well as relatively non-dynamic GUIs such as a static display with fields for numeric entry by, as an example, pressing physical keys on a keyboard.
[0213] In the GUI 2000, a metrics portion 2002 may display to the user numerical metrics for one or more recent sleep sessions. Here, the average sleep quality score is shown on a scale of 1 to 100 for several recent sleep sessions. Then, the sleep quality score is shown for only the most recent sleep session. Then, the highest sleep quality score of the most recent sleep sessions is shown.
[0214] The survey portion 2004 may display an interactive survey element that prompts the user to enter a subjective report of their arousal level. In this example, the user may swipe a finger on a touch screen to provide subjective input, although it will be appreciated that other input modalities are possible. Some of these alternatives may include, but are not limited to, numerical input via physical keys, verbal (voice) input, selection of a stylized cartoon picture of a human face from a series of cartoon pictures indicating different arousal levels (which may be advantageous for children, especially compared to more abstract surveys), etc. As can be appreciated, these types of inputs may include alphanumeric input, pictures, or both, to allow the user to communicate an emotion or subjective feeling. The GUI 2100 illustrates the various states of the survey portion 2004 as the user swipes from left to right, illustrating each possible input value.
[0215] As shown, there are ten possible ratings: "extremely awake", "very awake", "awake", "somewhat awake", "not awake but not sleepy", "some signs of sleepiness", "sleepy but no effort to stay awake", "sleepy and some effort to stay awake", "very sleepy, great effort to stay awake and fighting sleepiness", and "extremely sleepy, unable to stay awake". However, other ratings are possible. It will be appreciated that unlike some other ratings, this survey can be collected much later than immediately after waking up (e.g., after 2 hours). As a comparison, there are also some wakefulness surveys that are designed to be answered immediately after waking up or shortly after waking up (e.g., within 2 hours).
[0216] The timeline portion 2006 may provide a visual representation of the user's sleep quality during the user's most recent sleep session. As shown here, a series of bars indicate deep sleep in green, moderate sleep in yellow, and poor or interrupted sleep in red.
[0217] FIG. 22 is a block diagram of example parameters 2200 for generating personalized sleep recommendations. The parameters 2200 may be combined with a rule set to generate a recommendation 2202. As shown, the parameters may include two or more values or data points. As an example, some parameters may specify the quality, quantity, and timing of meal parameters including the number of meals and snacks, the days of the week the food is eaten, and meal windows, while other parameters may include fewer elements. In a subjective sleep study, the value on the scale and the time of day the study was taken may be recorded.
[0218] 23 is a swim lane diagram of an example process 2300 for generating a computer system output including an action recommendation. In the process 2300, a computer system 2306 includes at least one input element 2308 configured to accept user input from a user of the computer system 2306 and at least one output element 2310 configured to render an output to a user of the computer system 2306. This may include, for example, a (mobile) phone with a touch screen, a voice-based home automation hub, a server physically separate from the user device, etc. The computer system 2306 may include one device or a group of devices working together, including a controller device of a bed on which the user sleeps during a sleep session, the user's (mobile) phone device, a home automation hub, and / or a server physically separate from the sensors and connected to the sensors by a data network. In some implementations, the computer system 2306 may be the same as the computer system 1902. The clock 2302 may be a component of the computer system 2306 and / or may be a component physically separate from the computer system 2306 and connected to the computer system 2306 by a data network. For example, the clock may be a hardware clock in a computer of the computer system 2306 or may be a service running on a server accessible to the computer system 2306. The sensors 2304 may include one or more sensors that sense a user phenomenon in the user's bed or other sleep environment. The sensors 2304 may include, but are not limited to, a pressure sensor in a bed on which the user sleeps during a sleep session, a temperature sensor in the bed, an acoustic sensor in the bed, and / or a wearable device worn by the user as the user sleeps during a sleep session.
[0219] In this example, the user sleeps overnight in one sleep session. The next day, at least two hours after waking up, the user launches a GUI (e.g., GUI2000) on their (mobile) phone and checks whether there are any behavioral changes that could be beneficial.
[0220] The clock 2302 provides time data 2302 to the computer system 2306 (block 2312), and the sensor 2304 provides sensor readings 2314 to the computer system 2306. For example, in the background, a server with the user's profile accesses the sensor data of the user's previous sleep session and tags the sensor data with the time reading from the clock 2302 (block 2312).
[0221] The computer system 2306 determines an objective sleep quality of the sleep session (block 2316). For example, using time data received from the clock 2302 and readings received from the sensor 2304, a server (e.g., computer system 2306) may determine objective measures of the sleep session. These objective measures may be based on biometric readings during the sleep session, such as cardiac activity, respiratory activity, gross body movement (e.g., arm and leg movements), time in bed, time asleep, time awake, etc.
[0222] The input element 2308 presents the subjective survey (block 2318) and receives user input (block 2340). For example, on the user's (mobile) phone, a GUI is presented with interface elements for reporting the user's sensory observations about sleep, waking after a sleep session, alertness, etc. The user may select or input a subjective alertness rating from multiple ratings that may be selected by the user at least two hours after the end of the sleep session. This may be received via the input element 2308 (e.g., the screen of the user's (mobile) phone).
[0223] The input element 2308 provides the subjective sleep quality to the computer system 2306 (block 2342), which accepts the subjective sleep quality (block 2344). For example, the screen may send the user input to a processor in the (mobile) phone, which may report the input to the server. The input may be time-stamped. For example, the server may receive time data from the clock 2302 and store it in computer memory in association with the subjective sleep quality.
[0224] The computer system 2306 applies the user information to the templates to generate the action recommendations (block 2346). For example, a server may access the templates from a data store of multiple templates of general action recommendations. In some cases, the template is selected based on a determination that the template has not been used previously or recently for this user. In some cases, the template may be selected based on criteria such as time of day, data in the user's profile, etc. The computer system 2306 then assembles the action recommendations from the templates completed with the user-specific information.
[0225] The selected template may be selected from a collection of available templates. In some examples, each template may be generated using input from behavioral, sleep, and / or health care professionals. Each template may be indexed with several user parameters that define the template as suitable for that particular user if the parameters of the template match the characteristics of the user. These parameters may include, but are not limited to, age, sex, gender, weight, height, chronotype (e.g., an individual's tendency to prefer morning or evening hours), health status, exercise schedule, meal schedule, food preferences, work schedule, and calendar contents.
[0226] The output element 2310 provides the action recommendation (block 2348). For example, a screen on the user's (mobile) phone may present a GUI (e.g., GUI 2202) to the user. This GUI may provide the action recommendation to the user via the output element 2310. The presented action recommendation is thus based on at least i) an objective sleep quality of the user's particular sleep session based on readings from the sensor, ii) time data from a clock, and iii) a first input from the user via an input element, the first input specifying a subjective alertness rating reported by the user for the sleep session after waking up from the sleep session.
[0227] 24 is a swim lane diagram of an example process 2400 for determining an alertness level and a behavioral recommendation based on the alertness level. Process 2400 may be performed by components described throughout this disclosure, such as clock 2302, sensor 2304, computer system 2306, and output element 2310. One or more other components, computing devices, and / or systems may be used to perform process 2400, including, but not limited to, computer system 1902 and one or more cloud-based computing systems and / or servers.
[0228] Referring to the process 2400, the clock 2302 may provide time data to the computer system 2306 (block 2402). The sensor 2304 may also provide sensor data to the computer system 2306 (block 2404). In some implementations, the sensor 2304 may be a pressure sensor. The sensor data may include, but is not limited to, pressure data indicative of the user's movement on the bed during the sleep session, the user's breathing rate during the sleep session, the user's heart rate during the sleep session, and other biometric data associated with the user during the sleep session. In some implementations, the sensor 2304 may include, but is not limited to, a temperature sensor. The temperature sensor may detect a presence on the bed based on a dynamic change in temperature in the bed system during the sleep session. The dynamic change in temperature may be correlated / associated with the user's circadian cycle, which may be used by the alertness model described herein.
[0229] The computer system 2306 may receive the time data and the sensor data at block 2406. The computer system 2306 may receive the time data and the sensor data at similar times. The computer system 2306 may also receive the time data and the sensor data at different times. The computer system 2306 may optionally correlate the time data with the sensor data based on the respective time stamps. For example, the computer system 2306 may correlate peaks in heart rate and / or respiration rate with times during the user's sleep session to identify when the user experiences those changes in heart rate and / or respiration rate. Such correlations may be used to determine the sleep quality of the user's sleep session and how the sleep quality may affect the user's alertness level after the sleep session ends.
[0230] The computer system 2306 may input the received data into an alertness model (block 2408). The alertness model may be trained using machine learning techniques to predict or otherwise determine the user's alertness level after a sleep session. The training dataset may or may not include all available types of collected data. The training dataset may also include one or more additional metrics, which may be created using a combination of the input data (e.g., midpoints of the sleep session may be used). The training dataset may also be based on a population of users, which may or may not include data about a particular user. In some implementations, the training dataset may be updated based on feedback from users and / or subjective alertness ratings. Furthermore, in some implementations, the training dataset may not be updated based on user feedback. In such scenarios, during the model's inference process, the model may use a single example from the data, such as data from a single sleep session of a particular user, or data from aggregate sleep sessions of a particular user over an entire week.
[0231] A user may go to bed at night, and when the user wakes up from the sleep session, the computer system 2306 may determine the user's hourly alertness level for the next day. When the user wakes up, the hourly alertness level may be presented to the user in a mobile application, for example, by the output element 2310. In addition to the received data, historical (past) sleep and / or health data associated with the user may also be provided as input to the alertness model. In some implementations, historical (past) sleep and / or health data for a general population (e.g., users of a similar gender, age group, and / or geographic location) may also be leveraged and provided as input to the alertness model.
[0232] The arousal model may be a two-process model (TPM) capable of generating an output indicative of the level of arousal (e.g., sleepiness) the user is expected to experience during a given period following a sleep session (e.g., 24 hours after the user wakes up). The TPM may combine sleep homeostasis and circadian rhythms to create a daily arousal curve for the user. The TPM may be used to determine sleep trends along with sleep duration, rapid eye movement (REM) cyclical variation, and non-REM cyclical variation, and to simulate the variation in sleep duration as a function of sleep onset time.
[0233] The arousal model may thus generate an output indicative of the user's predicted arousal level (block 2410). The arousal level may be a numerical value on a pre-determined scale, such as a scale of 1 to 10, where 1 may represent the most arousal level and 10 the least arousal level (e.g., sleepiest). One or more other numerical scales may also be used.
[0234] If a user sleeps more (longer) and / or has better quality sleep, the user may be more awake (highly alert) throughout the day. Thus, the level of arousal may be expected to vary during the day based on various factors, including, but not limited to, the quality of the user's sleep session, the length of the user's sleep, the user's age, gender, and / or geographic location. As an example, a younger user may be more awake during the day and less awake as bedtime approaches. For younger users, the difference between the awake and drowsy states may be significantly greater, which may be determined and output by the arousal model. On the other hand, as the user ages, the difference between the awake and drowsy states may be smaller, and older users may feel little difference between the awake and drowsy states. The arousal model may accurately determine the arousal levels of various users based on age, gender, and other demographic information that may affect the awake and drowsy states throughout the day.
[0235] The alertness model may generate an output including predicted alertness levels for various times throughout the day. For example, the output may include predicted alertness levels for each hour of a 24-hour period following the time the user wakes up. The output may also include predicted alertness levels for each hour during the user's expected awake time. The user's expected awake time may be determined based on the user's scheduled sleep and wake times (e.g., if the user goes to bed at 10 p.m. every night and wakes up at 6 a.m., the alertness level may be determined from 6 a.m. to 10 p.m., the time the user is awake). Historical data regarding the user's wakefulness and sleep routine may be utilized to provide a more accurate prediction of the user's alertness throughout the day.
[0236] The computer system 2306 may also determine behavioral recommendations based on the predicted alertness level for the user (block 2412). For example, the computer system 2306 may determine the time during the day when the user will be at their highest peak alertness and / or the time when the user will be most sleepy. Based on these determinations, the computer system 2306 may generate suggestions and / or recommendations regarding activities the user can perform during the day. As an example, the computer system 2306 may predict that the user will be at their highest peak alertness at 1:00 PM. The computer system 2306 may generate a suggestion that the user should perform a high-intensity activity, such as a meeting, at 1:00 PM. As another example, the computer system 2306 may predict that the user will be at their lowest level of alertness at 9:00 AM. The computer system 2306 may generate a suggestion to take a nap at 9:00 AM, perform a low-intensity activity at that time, etc.
[0237] In some implementations, the computer system 2306 may generate one or more other behavioral recommendations described throughout this disclosure (see, e.g., FIGS. 19-23). As an illustrative example, the computer system 2306 may generate a recommendation to increase light exposure to the user at a particular time of day. This may advance or delay the user's circadian phase. Light exposure in the morning may advance the circadian phase, which may cause the user to feel sleepy (e.g., less alert) earlier in the evening. Light exposure at the end of the day, in the evening, may delay the circadian phase, which may cause the user to feel sleepy later at night. As another example, the computer system 2306 may connect / communicate with the user's mobile device and access calendar / alendment data to enable the user to determine and provide potential recommendations. If the user travels across time zones within a week, the computer system 2306 may generate and provide recommendations to begin advancing the user's current circadian phase so that the user can more easily and quickly adapt to the time zone change.
[0238] The computer system 2306 may also generate an output of the predicted alertness level and action recommendations (block 2414). The output may be a notification, message, and / or alert, which may be presented to a mobile application on the user's device as described herein. The output may be provided by the output element 2310, as described with reference to the process 2300 of FIG. 23. Thus, the computer system 2306 may transmit the output to the output element 2310, which may provide the output to the user (block 2416).
[0239] The output may include an alert that is presented to the user device to indicate the overall / average alertness level for the day, the time when the user is expected to be at peak alertness, and / or the time when the user is expected to be most tired for the day. The alert may include a graph showing the alertness level at various times throughout the day, similar to the graph shown in FIG. 26. The graph may optionally include an indicator, such as an arrow, indicating the time when the user's alertness level is expected to be highest. The alert may also include suggestions regarding activities the user should undertake for the day based on the predicted alertness level.
[0240] The output element 1310 may provide an output to the user as soon as the user wakes up. For example, an alarm may sound by the clock 2302 and a command may be sent from the computer system 2306 to the output element 1310 to prompt the output element 1310 to display an output on the user device. As another example, the computer system 2306 may predict or learn the user's usual wake-up time, and when that wake-up time arrives based on the time data provided by the clock 2302 in block 2402, the computer system 2306 may send a command to the output element 1310 to display an output on the user device. Thus, when the user wakes up and looks at his / her device, he / she can see an output related to his / her wake-up level for the day. As yet another example, the user may select or open a mobile application on his / her user device to see the output. The user who opens the mobile application may cause the output element 1310 to present an output on the user device.
[0241] 25 is a flow chart of an example process 2500 for calibrating parameters of a model that may be used to determine a user's arousal level. In other words, the process 2500 may be used to continually improve and / or train the arousal model described in FIG. 24 to more accurately determine a user's arousal level. The arousal model may be improved or calibrated at predetermined intervals, such as after the model has been used for a certain period of time (e.g., 30 days).
[0242] Process 2500 may be performed by computer system 1902 and / or computer system 2306. In some implementations, process 2500 may be performed by one or more other computing systems, devices, and / or cloud-based servers and / or systems. For purposes of explanation, process 2500 is described in terms of a computer system.
[0243] Referring to process 2500, the computer system may receive user input of a subjective survey (or multiple subjective surveys) for t=1 (block 2502). The arousal model may be improved at a pre-determined time, such as after the model has been used to predict alertness for a pre-determined period. The pre-determined period may be dynamically generated and / or adjusted. For example, the pre-determined period may be dynamically generated based on historical sleep and wake data associated with the user. The pre-determined period may also be dynamically generated based on historical data for a general user population (users of the same age group, gender, and / or geographic location). t=1 may be the amount of time during the pre-determined period that the model is used to predict alertness. t=1 may be shorter than the pre-determined period. In some implementations, t=1 may be the same amount of time as the pre-determined period. Thus, during and / or after the pre-determined period, the computer system may present the user with a survey that asks the user how they thought they slept and / or how alert they felt during the pre-determined period. For example, a user may rate their own alertness on a scale that is the same or similar to the scale used to determine the alertness level by the model.
[0244] As an illustrative example, t=1 may be 10 days and the predetermined period during which the model is used may be 30 days. During 10 of the 30 days (e.g., the last 10 of the 30 days), the computer system may present a survey asking the user their perceived level of alertness. The survey may be presented to the user every day of the 10 days. The computer system may use the user input to adjust or otherwise modify the model.
[0245] Thus, the computer system may adjust the parameters of the model based on the user input (block 2504). For example, consider a situation where the user's perception and the model differ. In this example, after 10 days of collecting user input from a survey, the computer system may determine that the user perceived his / her arousal level to be lower than the arousal level predicted by the model. The computer system may adjust or calibrate the parameters of the model (e.g., scaling parameters) for the particular user so that the predicted arousal level better matches the user's perceived arousal level. The computer system may adjust the scaling parameters, which may indicate a multiplication factor and / or an offset factor. As an illustrative example, the arousal level may be predicted by a model called A(t). The adjusted model: B(t)=k0+k1*A(t) may predict the arousal level. Here, k0 and k1 may be adjusted based on the arousal level subjectively reported by the user. In some implementations, k0 may be the arousal level subjectively reported at the beginning of the day, and kl may be the arousal level subjectively reported at the end of the day. One or more other parameters may be adjusted to enable the model to accurately predict the user's alertness level.
[0246] To determine whether to adjust the model parameters in block 2504, the computer system may determine whether the user input deviates from the predicted arousal level by more than a threshold range. If the user input is within the threshold range from the predicted arousal level, the computer system may not change / adjust the model parameters. Instead, the computer system may proceed to block 2506 and continue running the model as is. On the other hand, if the user input is not within the threshold range or exceeds the threshold range by a predetermined amount, the computer system may decide to adjust the model parameters.
[0247] Once the model parameters have been adjusted, the computer system may run the model for t=2 (block 2506). In other words, the computer system may use the adjusted model to predict the user's alertness level. In implementations in which the computer system determines that the model parameters do not need to be adjusted at block 2504, the computer system may simply run the original model (i.e., the model used at t=1) for t=2.
[0248] t=2 may be a predetermined period of time during which the model is used to predict a user's alertness. In the above example, t=2 may be 30 days. Thus, after 10 days of studying the user, the adjusted model may be run for the next 30 days to predict the user's alertness during that period.
[0249] At t=3, the computer system may receive user input of one or more subjective surveys (block 2508). As described above with reference to block 2502, t=3 may be the last 10 days of t=2. t=3 may be any other amount of time, including but not limited to 1 day, 2 days, 3 days, 4 days, 5 days, etc. As an illustrative example, during the last 5 days (t=3) of the 30 days (t=2) during which the adjusted model is run, the computer system may prompt the user for a subjective survey. The user may provide input indicating their perceived alertness level during the most recent 30 days (t=2).
[0250] In block 2510, the computer system may determine whether the user input is within a threshold range of the model output during t = 2. In other words, as discussed above, the computer system may determine whether the user's perceived arousal level is similar to the predicted arousal level given that the model has been adjusted based on the user's initial input at t = 1.
[0251] In some cases, the user's perceived arousal level may deviate from the predicted arousal level because the user became ill or pregnant during t = 2. Thus, the model may not have been adjusted to take into account illness and / or pregnancy, and therefore the model may produce an inaccurate arousal level during t = 2. However, adjusting the parameters of the model using user input may advantageously provide improved accuracy of the model during the predetermined period.
[0252] Returning to block 2510, if the user input is within a threshold range of the model output during t=2, the computer system may run the model for a subsequent time t=4 (block 2514). For example, the computer system may run the same model for an additional 30 days. The computer system may then proceed to block 2508 and receive user input for the subjective survey for the last 10 days of the 30 day period. The computer system may determine whether the user input is within a threshold range of the output generated during t=4 and may repeat process 2500 every predetermined period (e.g., 30 days) to continually improve, tune and / or calibrate the model.
[0253] Returning to block 2510, if the user input is not within the threshold range of the model output for t=2, the computer system may adjust the model parameters (block 2512). For further discussion regarding tuning the model, see block 2504. The computer system may then run the adjusted model for t=4 in block 2514. As previously mentioned, the computer system may return to block 2508 and repeat process 2500 for each predetermined period that the model is run to continually improve, tune and / or calibrate the model.
[0254] 26 is a graphical representation of a user's alertness level predicted by a model, which may be the same alertness model described throughout this disclosure (see, for example, FIGS. 24 and 25). Graph 2600 shows approximately 17 alertness levels determined for a user over approximately a 24-hour period. One or more lesser or more greater alertness levels may be predicted over one or more shorter or longer periods of time.
[0255] Graph 2600 presents both the user's perceived alertness level (dots on graph 2600) and the predicted alertness level from the model (solid line). As shown, the predicted alertness level is generally consistent with the user's perceived alertness level, thereby demonstrating the accuracy of the model in predicting alertness levels. Graph 2600 shows, for example, that at about 10 hours after waking up, the user is expected to experience a high alertness level of about 4.75 (as perceived by the user). As the day progresses, at about 20 hours after waking up, the user is expected to experience a lower alertness level of about 5.50 (as perceived by the user). A higher alertness number may indicate a lower level of alertness, which indicates that the user may be feeling more sleepy than alert. A lower alertness number may indicate a higher level of alertness, which indicates that the user may be feeling more wakeful than sleepy.
[0256] The accuracy of the alertness prediction may be attributed to the TPM. The TPM may implement the following example equation to predict the user's alertness level: JPEG2025501719000002.jpg12154
[0257] In the above equation, a, b, and w are different parameters that can be used to accurately model the alertness level of a particular user. The parameters can vary depending on one or more factors, including but not limited to the user's age, gender, geographic location, and / or other demographic information. For example, the upper and lower limits of the predicted alertness level can vary depending on age. An older population can have upper and lower limits that are closer together (e.g., a smaller delta between the upper and lower limits), while a younger population can have upper and lower limits that are farther apart (e.g., a larger delta between the upper and lower limits). In some implementations, the parameters can be individualized and / or specific to a particular user. In some cases, one or more of the parameters can be generalized and associated with a group or subset of a user population (e.g., all users of the same age group).
[0258] t hr represents the time in hours or the time of day at which the equation / model generates the alertness level data point. The TPM includes an exponential component and a circadian component. The exponential component of the equation indicates that alertness increases exponentially throughout the day on average, but it may also vary during the day. The circadian component follows a sine wave, which roughly matches the variations shown in the exponential component of the equation. As shown in graph 2600, phase shifting (e.g., k-means) or similar techniques may also be used to generate a best fit curve for the predicted alertness level. One or more other equations may also be used to predict alertness levels.
[0259] Although the specification contains many specific implementation details, these should not be construed as limitations on the scope of the disclosed technology or as it may be claimed. Rather, these should be construed as descriptions of features that may be specific to certain embodiments of the disclosed technology. Certain features described herein in the context of separate embodiments may also be implemented in combination, either partially or in whole, in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented in multiple embodiments individually or in any suitable subcombination. Furthermore, although features may be described herein as acting in a particular combination and / or may initially be claimed as such, in some cases one or more features from a claimed combination may be deleted from the combination, or the claimed combination may be directed to a subcombination or subcombination variation. Similarly, although operations may be described in a particular order, this should not be construed as requiring that such operations be performed in a particular order or sequential order to achieve desired results, or that all operations be performed. Specific embodiments of the subject matter have been described. Other embodiments are within the scope of the following claims.
Claims
1. At least one sensor configured to sense a physical phenomenon of a user; a computer system in communication with the at least one sensor; A system comprising: The computer system includes: receiving sensor readings of the user during a sleep session from the at least one sensor; providing the sensor readings as inputs to a model trained to predict the user's alertness level based at least in part on the user's physical phenomena and historical data regarding at least one of the user and a user population; receiving, as output from the model, data indicative of a predicted alertness level of the user for a period beginning after the user awakens from the sleep session; determining a suggested action for the user based at least in part on the predicted alertness level of the user for the period of time; generating an output to the user presented on a graphical user interface (GUI) display, the output including at least one of (i) the predicted alertness level and (ii) the behavioral suggestion. It is configured as follows: A system characterized by:
2. The historical data includes at least one of sleep data, health indicators, and physical phenomena for the user.
2. The system of claim 1.
3. the historical data includes, for the user population, at least one of sleep data, health indicators, and physical phenomena; The user population is a population within a particular age range.
3. The system according to claim 1 or 2.
4. the predicted alertness level is a number on a scale of 1 to 10; A value of 1 represents the highest level of awakening, A number of 10 represents the lowest level of arousal 3. The system according to claim 1 or 2.
5. The model is a two-process model (TPM).
3. The system according to claim 1 or 2.
6. The period is 24 hours from the time the user wakes up from the sleep session.
3. The system according to claim 1 or 2.
7. The period is the amount of time the user is expected to be awake before the next sleep session.
3. The system according to claim 1 or 2.
8. The time period is based on the user's historical sleep and wake data.
3. The system according to claim 1 or 2.
9. The computer system includes at least one output element configured to render the generated output on a GUI display to a user of the computer system.
3. The system according to claim 1 or 2.
10. the computer system includes at least one input element configured to receive user input from a user of the computer system; The user input specifies a subjective alertness rating for the sleep session reported by the user after waking from the sleep session.
3. The system according to claim 1 or 2.
11. The subjective alertness rating is a rating of at least one of alertness and wakefulness selected from a plurality of possible ratings for selection by the user, the rating being a numeric value.
3. The system according to claim 1 or 2.
12. The computer system further comprises: receiving user input over a predetermined period of time; Determining whether the user input is within a threshold range of the predicted arousal level of the user It is configured as follows:
3. The system according to claim 1 or 2.
13. The computer system further comprises: and adjusting the model by changing at least one scaling parameter of the model based on a determination that the user input is less than or greater than the threshold range of the predicted arousal level of the user. It is structured as follows.
3. The system according to claim 1 or 2.
14. The computer system further comprises: providing the sensor readings as input to the adjusted model over another predetermined period of time; receiving a predicted alertness level from the adjusted model for the other predetermined period of time; It is configured as follows:
3. The system according to claim 1 or 2.
15. The computer system further comprises: receiving a second user input during a portion of the other predetermined period; It is structured as follows: the second user input specifying a subjective alertness rating reported by the user during a portion of the another predetermined period of time; The computer system further comprises: determining whether to change at least one scaling parameter of the adjusted model based on a comparison of the second user input to the predicted arousal level from the adjusted model; It is configured as follows:
3. The system according to claim 1 or 2.
16. The computer system further comprises: presenting the output to the user based on a determination that the user has woken up from the sleep session. It is configured as follows:
3. The system according to claim 1 or 2.
17. The computer system further comprises: Presenting the output to the user in a mobile application It is configured as follows:
3. The system according to claim 1 or 2.
18. The sensor a pressure sensor in a bed on which the user sleeps during the sleep session; and a wearable device worn by the user while the user sleeps during the sleep session; is one of the groups 3. The system according to claim 1 or 2.
19. The computer system includes: (i) a controller device for a bed on which the user sleeps during the sleep session; (ii) the user's telephone device; (iii) a home automation hub; and (iv) a server physically separated from the sensors and connected to the sensors by a data network; at least one of the groups 3. The system according to claim 1 or 2.
20. Mattress with at least one air chamber Further provided with The at least one sensor is a pressure sensor in fluid communication with the air chamber.
3. The system according to claim 1 or 2.
21. means for controlling the pressure of the bed including said at least one sensor; 3. The system according to claim 1 or 2, further comprising:
22. The predicted alertness level for the period is output as a graph.
3. The system according to claim 1 or 2.
23. The model was trained using machine learning techniques 3. The system according to claim 1 or 2.
24. The model includes parameters estimated by the computer system based at least in part on the user's physical phenomena and historical data regarding at least one of the user and the user population.
3. The system according to claim 1 or 2.
25. 1. A method for determining a user's alertness level, comprising: receiving, by a computing system, sensor readings of the user during a sleep session from at least one sensor; providing, by the computing system, the sensor readings as inputs to a model trained to predict the user's alertness level based at least in part on the user's physical phenomena and historical data regarding at least one of the user and a user population; receiving, by the computing system, as output from the model, data indicative of a predicted alertness level of the user for a period beginning after the user awakens from the sleep session; determining, by the computing system, action suggestions for the user based at least in part on the predicted alertness level of the user for the period of time; generating, by the computing system, an output to the user presented on a graphical user interface (GUI) display, the output including at least one of (i) the predicted alertness level and (ii) the behavioral suggestion; A method comprising:
26. receiving, by the computing system, user input over a predetermined period of time; determining, by the computing system, whether the user input is within a threshold range of the predicted arousal level of the user; 26. The method of claim 25 further comprising:
27. adjusting, by the computing system, the model by modifying at least one scaling parameter of the model based on a determination that the user input is less than or greater than the threshold range of the predicted arousal level of the user.
27. The method of claim 25 or 26, further comprising:
28. providing, by the computing system, the sensor readings as inputs to the adjusted model over another predetermined period of time; receiving, by the computing system, a predicted alertness level from the adjusted model for the another predetermined period of time; 27. The method of claim 25 or 26, further comprising:
29. receiving, by the computing system, a second user input during a portion of the another predetermined period of time; Further provided with the second user input specifying a subjective alertness rating reported by the user during a portion of the another predetermined period of time; The method further comprises: determining, by the computing system, whether to change at least one scaling parameter of the adjusted model based on a comparison of the second user input to the predicted arousal level from the adjusted model.
27. The method of claim 25 or 26, further comprising:
30. 1. A method of calibrating a model of a user's alertness level, comprising: receiving, by a computing system, user input specifying a subjective alertness rating during a first time period; by the computing system based on the user input, adjusting scaling parameters of a model trained to predict a level of alertness of the user based at least in part on (i) a physical phenomenon of the user sensed by at least one sensor in communication with the computing system, and (ii) historical data regarding at least one of the user and a user population; executing, by the computing system, during a second time period, the model with the adjusted scaling parameters to predict the user's alertness level during the second time period; receiving, by the computing system, user input during a portion of the second time period specifying a subjective alertness rating during the portion of the second time period; determining, by the computing system, whether the user input specifying a subjective alertness rating during the portion of the second time period is within a threshold range of the user's predicted alertness level during the second time period; calibrating, by the computing system, the scaling parameters of the model based on a determination that the user input specifying a subjective alertness rating during the portion of the second time period is not within the threshold range; executing, by the computing system, the model with the calibrated scaling parameters during a third time period; A method comprising:
31. the first period of time precedes the second period of time; The third period is after the second period.
31. The method of claim 30.
32. The second period is 30 days.
32. The method of claim 30 or 31.
33. The third period is 30 days.
32. The method of claim 30 or 31.
34. the second period is 30 days; The portion of the second period is the last 10 days of the 30 days.
32. The method of claim 30 or 31.
35. The first period of time spans multiple sleep sessions of the user.
32. The method of claim 30 or 31.
36. The second period of time spans multiple sleep sessions of the user.
32. The method of claim 30 or 31.
37. The third period spans multiple sleep sessions of the user.
32. The method of claim 30 or 31.
38. The portion of the second time period is a periodic time spanning multiple sleep sessions of the user.
32. The method of claim 30 or 31.
39. 1. A computer-implemented system comprising: one or more processors; one or more computer readable devices; Equipped with The one or more computer-readable devices include instructions: The instructions, when executed by the one or more processors, cause the computer-implemented system to: receiving sensor readings of the user during a sleep session from at least one sensor; providing the sensor readings as inputs to a model trained to predict the user's alertness level based at least in part on the user's physical phenomena and historical data regarding at least one of the user and a user population; receiving, as output from the model, data indicative of a predicted alertness level of the user for a period beginning after the user awakens from the sleep session; determining a suggested action for the user based at least in part on the predicted alertness level of the user for the period of time; and generating an output to the user presented on a graphical user interface (GUI) display, the output including at least one of (i) the predicted alertness level and (ii) the behavioral suggestion. Execute an action that includes 1. A computer-implemented system comprising: