Bed with pressure compensation features
The bed system automatically adjusts mattress pressure to maintain it within a target value, addressing pressure fluctuations and ensuring accurate user monitoring and system integrity, thereby enhancing biometric detection and sleep quality.
Patent Information
- Application Number
- JP2025502563
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-07-18
- Filing Date
- 2023-07-13
- Publication Date
- 2025-08-13
AI Technical Summary
Existing bed systems face challenges in maintaining accurate pressure monitoring and component integrity due to fluctuations in pressure caused by environmental factors and heating/cooling routines, leading to potential failure and inaccurate user monitoring.
A bed system with pressure sensors and a controller that adjusts mattress pressure automatically to maintain it within a maximum target value, preventing overpressure and ensuring consistent monitoring by deflating the air chamber when necessary.
This solution ensures continuous and accurate monitoring of user biometrics and bed system performance by preventing overpressure, reducing the risk of component failure, and improving the sensitivity and accuracy of vital sign detection and sleep quality assessment.
Smart Images

Figure 2025526326000001_ABST
Abstract
Description
[Technical Field]
[0001] The present disclosure relates to bed systems, and more particularly to devices, systems and methods for controlling the microclimate of a bed based on pressure measurements.
[0002] [CROSS-REFERENCE TO RELATED APPLICATIONS] This application claims the benefit of U.S. Provisional Patent Application No. 63 / 390,024, filed July 18, 2022, the disclosure of which is incorporated by reference into the disclosure of this application. [Background technology]
[0003] Generally, a bed is a piece of furniture used as a place to sleep or relax. Many modern beds include a bed frame topped with a soft mattress. The mattress may contain springs, foam, and / or air chambers to support the weight of one or more occupants. Summary of the Invention
[0004] This specification generally relates to systems, methods, and techniques for pressure limit monitoring in bed systems. More specifically, the disclosed techniques provide for automatically adjusting air chamber pressure during high-pressure scenarios to avoid risks to the accuracy of the monitoring system. The disclosed techniques may enable automatic pressure deflation in the air chamber of a mattress of a bed system when a high-pressure scenario is detected in the bed system. Automatic pressure deflation may be beneficial not only when an active thermal event is introduced in the mattress, such as when a heating or cooling routine is activated (e.g., by a user of the bed system or automatically by the bed system), but also as a result of environmental changes. By automatically deflating the pressure in the mattress (e.g., to a maximum user pressure value or other user-defined pressure value), the disclosed techniques can provide consistent and accurate monitoring of the user by components of the bed system. Consistent and accurate monitoring of the user may then provide the user with accurate health and sleep data and home automation event performance.
[0005] In some scenarios, a user may control a feature of the bed system to automatically adjust the air pressure in the mattress throughout the night. For example, a user may turn on a responsive air feature such that the mattress's air chamber (or the user's side of the mattress) automatically reduces pressure when the user first enters bed and then makes small pressure adjustments throughout the night to maintain the user's comfort (and / or maintain the user's pressure preference). When a user controls this feature, the air chamber pressure may still be affected by environmental / ambient temperature, barometric pressure, altitude, other environmental factors, and the activation of heating or cooling routines in the bed system. Thus, during high-pressure events, such as when the ambient temperature rises or a heating routine is activated, the bed system may have limited monitoring accuracy and / or premature chamber failure due to fluctuations in air pressure. If an increase in temperature causes the pressure in the air chamber to increase beyond a maximum pressure value, the mattress's air chamber may be over-inflated if the responsive air feature is activated, thereby potentially causing chamber failure (e.g., leaks / holes) and / or inaccurate monitoring of the user's condition. Accordingly, the techniques of the present disclosure provide for deflating (reducing) the pressure in the mattress's air chamber during high-pressure scenarios, regardless of whether the responsive air feature is activated or deactivated, to ensure continuous and accurate monitoring of the user during their sleep session.
[0006] More specifically, the techniques of the present disclosure can be used to determine when the pressure in the air chamber exceeds a maximum target pressure value. This may be due to a heating or cooling routine activated by the bed system. The pressure value may be on a scale of 0 to 100, with 0 representing the bed system's lowest firmness setting and 100 representing the highest firmness setting. The maximum target pressure value may also be a maximum possible sleeper (e.g., user) value representing the maximum desired firmness of the mattress for the user. When the pressure exceeds the maximum target pressure value, a change may be made to the bed system's pump control to reduce the pressure in the air chamber, regardless of the bed system's responsive air feature / setting (e.g., whether the responsive air feature is turned on). For example, when the pressure is detected to exceed the maximum target pressure value of 100, the bed system may execute an auto-deflate event to reduce the pressure to the user-desired pressure setting (e.g., the maximum possible sleeper value). By comparison, a bed may also be configured such that there is a maximum operating value, which is the maximum pressure value at which all systems function normally and there is no risk of failure (e.g., bladder walls bursting due to excessive pressure). In some cases, this maximum operating value may be greater than the maximum target pressure value. This may allow, for example, a user to set the target pressure to the maximum possible value, with the expectation that the bed will still operate normally even when environmental factors increase the bed's actual pressure. In some implementations, a timer may be set to limit the amount of auto-deflation events that may be performed during a user's sleep session. For example, if the sleeper is not disturbed by the adjustment, the timer value may be reduced in response to transmitting and determining that the user indicates a lack of disturbance. If user disturbance is detected, the timer value may be increased so that adjustments are made less frequently, for example, or when the user is not in bed.
[0007] A system consisting of one or more computers can be configured to perform specific operations or actions by installing software, firmware, hardware, or a combination thereof on the system, which, in operation, causes the system to perform the operations or actions. One or more computer programs can be configured to perform specific operations or actions by including instructions (instructions) that, when executed by a data processing device, cause the device to perform the operations or actions. One general aspect includes a system having features for protecting an air mattress from an overpressure event. The system includes a bed having a mattress, which may include one or more air chambers. The system also includes a pressure regulator configured to adjust the pressure within the mattress. The system also includes one or more pressure sensors, each configured to sense the pressure in the mattress and transmit a pressure reading to a controller. The system also includes a controller having a processor and memory, configured to receive the pressure readings from each of the pressure sensors, determine a pressure value for the mattress, determine whether the pressure value for the mattress exceeds a maximum target pressure corresponding to a maximum possible sleeper value, and, in response to determining that the pressure value for the mattress exceeds the maximum possible sleeper value, send a command to the pressure regulator to adjust the pressure in the mattress. The maximum possible sleeper value is a maximum value of a sleeper value defining the firmness of the mattress, and the bed has a maximum operating value describing the maximum pressure value at which the system will function normally. Other embodiments of this aspect include corresponding computer systems, apparatus, and computer programs stored on one or more computer storage devices, each configured to perform the operations (steps) of the method.
[0008] Some implementations may include one or more of the following features: The instructions sent to the pressure regulator to adjust the pressure in the mattress may include instructions to decrease the pressure to the maximum target pressure. The instructions sent to the pressure regulator to adjust the pressure in the mattress may include instructions to decrease the pressure value to a pressure corresponding to a selected Sleeper value that is less than the maximum possible Sleeper value. The one or more air chambers of the mattress may be configured to increase pressure due to one or more influences from the group consisting of environmental temperature, humidity, sleeper temperature, air pressure, and altitude. The controller may be further configured to determine when the sleeper enters the bed and responsively determine whether the pressure value in the mattress exceeds the maximum possible Sleeper value. The maximum possible Sleeper value may be 100, representing the maximum firmness of the mattress selectable by a user. The selected Sleeper value may be input by the user into a user interface as an integer within one of the group consisting of i) 1 to 100 and ii), and the selected Sleeper value may not be associated with a unit value, and the mattress pressure value may be a non-integer associated with a unit of pressure. Based on a schedule, the controller may be configured to disable and enable the following operations: determining whether the mattress pressure value exceeds a maximum target pressure corresponding to a maximum possible Sleeper value, which is the maximum value of Sleeper values defining the firmness of the mattress; and sending a command to the pressure regulator to adjust the mattress pressure in response to determining that the mattress pressure value exceeds the maximum possible Sleeper value. The controller may further be configured to activate a heating routine in the bed; determine an increase in the mattress pressure value based on the activation of the heating routine; responsively determine whether the increased mattress pressure value exceeds the maximum possible Sleeper value; and responsively send a command to the pressure regulator to reduce the increased pressure value to a pressure corresponding to the maximum possible Sleeper value.The controller may be further configured to detect a user entering bed, determine that the user entering bed has caused an increase in the increased pressure value of the mattress, and responsively send a command to the pressure regulator to reduce the increased pressure value to a pressure corresponding to the maximum possible sleeper value. The controller may be further configured to activate a heating routine in the bed, determine an increase in the pressure value of the mattress based on the activation of the heating routine, responsively determine whether the increased pressure value of the mattress exceeds a selected sleeper value that is less than the maximum possible sleeper value, and responsively send a command to the pressure regulator to reduce the increased pressure value to a pressure corresponding to the selected sleeper value. The controller may be further configured to detect a user entering bed, determine that the user entering bed has caused an increase in the increased pressure value of the mattress, and responsively send a command to the pressure regulator to reduce the increased pressure value to a pressure corresponding to the selected sleeper value. The controller may be further configured to detect a decrease in the pressure value of the mattress as a result of an environmental change, detect a user entering bed, determine an increase in the pressure value of the mattress based on the user entering bed, responsively determine whether the increased pressure value of the mattress is less than a selected sleeper value, and responsively send a command to the pressure regulator to increase the increased pressure value to a pressure corresponding to the selected sleeper value. The environmental change may be a decrease in air pressure in an environment surrounding the bed. The environmental change may be a decrease in temperature in an environment surrounding the bed. The environmental change may be a change in humidity in an environment surrounding the bed. The environmental change may be the activation of a cooling routine in an environment surrounding the bed. The environmental change may be the activation of a cooling routine in the bed. The controller may be further configured to detect the environmental change.The controller may be further configured to determine a decrease in the mattress pressure value as a result of an environmental change, responsively determine whether the decreased mattress pressure value is less than a selected Sleeper value, and responsively send a command to the pressure regulator to increase the decreased mattress pressure value to a pressure corresponding to the selected Sleeper value. The controller may be further configured to determine that a threshold time has elapsed and responsively determine whether the mattress pressure value exceeds the maximum possible Sleeper value. Implementations of the described techniques may include hardware, methods or processes, or computer software on a computer-accessible medium.
[0009] One general aspect includes a system for protecting a bed system from an overpressure event, comprising a computer system configured to: receive pressure readings from at least one pressure sensor of the bed system; determine a pressure value of the bed system based on the pressure readings; determine whether the pressure value exceeds a target pressure corresponding to a user-selected pressure value; generate instructions to be sent to a pressure regulator of the bed system to adjust the pressure value of the bed system based on determining that the pressure value exceeds the target pressure; and send the instructions to the pressure regulator to adjust the pressure value of the bed system. The instructions, when executed, cause the pressure regulator to deflate the bed system to the target pressure. Other embodiments of this aspect include corresponding computer systems, devices, and computer programs stored on one or more computer storage devices, each configured to perform the operations (steps) of the method.
[0010] Some implementations may include one or more of the following features: the computer system may be a controller of the bed system; the bed system may include a mattress having at least one air chamber; the pressure regulator may be a pump; and the user-selected pressure value defines a firmness level of a mattress of the bed system. The user-selected pressure value may be selected by a user on a scale of 1 to 100 in a user interface presented on a user device, with a user-selected pressure value of 100 defining a maximum firmness level for the bed system. The computer system may be further configured to detect a user's entry into bed and responsively determine whether the pressure value exceeds the target pressure. The computer system may be further configured to determine that a current time satisfies a threshold schedule condition and responsively determine whether the pressure value exceeds the target pressure. The threshold schedule condition is a predetermined amount of time that has elapsed since the computer system last determined whether the pressure value exceeds the target pressure. Implementations of the described technology may include hardware, methods or processes, or computer software on a computer-accessible medium.
[0011] Some implementations may include any, all, or none of the following features. For example, the techniques of the present disclosure may provide protection for bed system components from failure or damage in high-pressure scenarios, such as when the pressure in the air chamber reaches or exceeds a maximum pressure value. Identifying and automatically responding to high-pressure scenarios may be beneficial in avoiding failure of bed system components. Furthermore, automatically responding to such scenarios may improve the sensitivity of monitoring techniques (e.g., bed monitoring and / or user monitoring) performed by bed system components.
[0012] Similarly, by limiting the pressure in the mattress's air chamber, the BCG signal can be accurately and consistently detected by the bed system's sensors. Therefore, maintaining the pressure below a maximum pressure value can ensure that the amplitude of the BCG signal remains at a detectable level. As a result, the bed system's other monitoring technologies, such as vital sign detection, bed presence detection, sleep state detection, sleep quality assessment, and other monitoring technologies, can achieve improved accuracy. Improved accuracy in these monitoring technologies can provide users with more relevant and accurate data to help them improve their sleep quality and overall health. This technology can also advantageously improve user comfort. For example, this technology reduces or eliminates instances where a user is on a bed that is harder or less forgiving than the user prefers. This can reduce or eliminate body pain and improve sleep quality.
[0013] Other features, aspects and potential advantages will become apparent from the accompanying description and drawings. [Brief explanation of the drawings]
[0014] [Figure 1] FIG. 1 shows an exemplary airbed system.
[0015] [Figure 2] FIG. 2 is a block diagram of an example of various components of an airbed system.
[0016] [Figure 3] FIG. 3 shows an exemplary environment including a bed in communication with multiple devices in and around the home.
[0017] [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.
[0018] [Figure 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.
[0019] [Figure 7] FIG. 7 is a block diagram of an example of a daughterboard that may be used in a data processing system that may be associated with a bed.
[0020] [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.
[0021] [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.
[0022] [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.
[0023] [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.
[0024] [Figure 12] 12-16 are block diagrams of exemplary cloud services that may be used in a data processing system that may be associated with a bed. [Figure 13]12-16 are block diagrams of exemplary cloud services that may be used in a data processing system that may be associated with a bed. [Figure 14] 12-16 are block diagrams of exemplary cloud services that may be used in a data processing system that may be associated with a bed. [Figure 15] 12-16 are block diagrams of exemplary cloud services that may be used in a data processing system that may be associated with a bed. [Figure 16] 12-16 are block diagrams of exemplary cloud services that may be used in a data processing system that may be associated with a bed.
[0025] [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.
[0026] [Figure 18] FIG. 18 is a schematic diagram illustrating an example of a computing device and a mobile computing device.
[0027] [Figure 19] FIG. 19 is a block diagram of exemplary components of a data processing system that can regulate pressure within a bed system in a high pressure scenario.
[0028] [Figure 20] FIG. 20 is a swim lane diagram of a process for regulating pressure in a bed system to protect the bed system from an overpressure event.
[0029] [Figure 21] FIG. 21 is a flow chart of a process for regulating the pressure in the bed system to protect the bed system from an overpressure event when a heating routine is activated.
[0030] [Figure 22] FIG. 22 is a flow chart of a process for adjusting pressure within a bed system to protect the bed system from pressure reduction events such as environmental changes.
[0031] [Figure 23] FIG. 23 is a flow chart of a process for determining when to adjust pressure in a bed system in accordance with the techniques described herein. DETAILED DESCRIPTION OF THE INVENTION
[0032] Like reference symbols indicate like elements in the various drawings.
[0033] This specification generally describes techniques that can allow a bed system, such as a smart bed having at least one air chamber, to operate accurately regardless of conditions that may affect the pressure level in the air chamber. Such conditions may include, but are not limited to, environmental conditions (e.g., elevated temperatures, barometric pressure changes, altitude changes, etc.). Such conditions may also include, but are not limited to, the activation of a heating or cooling routine in the bed system. As described herein, heat and other factors can cause the bed system to experience overpressure, in which the pressure in at least one air chamber may increase beyond a maximum target pressure value and / or a user-desired maximum pressure value. In the event of bed overpressure, bed sensing and monitoring technologies may not function correctly or accurately, especially if these technologies are designed to detect and analyze biometrics from pressure values detected by components of the bed system. Therefore, the techniques of the present disclosure can be used in such events where the bed system's controller can automatically reduce the pressure to a maximum sleeper value or a maximum target pressure value. Even with a decrease in pressure in at least one air chamber, the bed sensing technology of the present disclosure can more accurately measure and analyze a user's biometrics from the sensed pressure to generate health and sleep metrics, as well as execute home automation events.
[0034] [Example Air Bed Hardware]
[0035] FIG. 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.
[0036] 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 children's 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 may 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 input by a user using the remote control 122. In some implementations, the control box 124 is integrated into the housing of the pump 120.
[0037] 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 enabling 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 to control 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.
[0038] 2 is a block diagram of an example of various components of an air bed system that may be used in the exemplary air bed 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.
[0039] 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 fluid flow between the pump 120 and the first and second air chambers 114A, 114B, respectively.
[0040] 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).
[0041] The exemplary air bed system 100 shown in FIG. 2 includes two air chambers 114A, 114B and a single pump 120. However, other implementations may include air bed systems having more than one air chamber and one or more pumps incorporated within the air bed system to control the air chambers. For example, a separate pump may be associated with each air chamber of the air bed system, or one pump may be associated with multiple chambers of the air bed 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 air bed system, such as a separate pressure transducer associated with each air chamber.
[0042] In use, the processor 136 may, for example, send a pressure reduction command to one of the air chambers 114A, 114B, and a switching mechanism 138 may be utilized to convert the 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 and open the control valves 145A, 145B. Opening the relief valve 144 may allow air to escape from the air chamber 114A or 114B through the respective air line 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 into 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 to communicate the pressure information to the user.
[0043] As another example, processor 136 may send a pressure increase command. Pump motor 142 may be energized in response to the pressure increase command, electronically actuating corresponding valve 145A, 145B to deliver air to the designated one of air chambers 114A, 114B via air conduit 148A, 148B. While air is being delivered to the designated air chamber 114A or 114B to increase the chamber's firmness, pressure transducer 146 may sense the pressure in pump manifold 143. Again, pressure transducer 146 may send a pressure reading to processor 136 via A / D converter 140. Processor 136 may use information received from A / D converter 140 to determine the difference between the actual pressure in air chamber 114A or 114B and the desired pressure. Processor 136 may send the digital signal to remote control 122 to update display 126 to communicate the pressure information to the user.
[0044] Generally speaking, during the inflation or deflation process, the pressure sensed in pump manifold 143 can provide an approximation of the pressure in the respective air chamber in fluid communication with pump manifold 143. An exemplary method for obtaining a pump manifold pressure reading substantially equal to the actual pressure in the air chamber includes turning off pump 120, allowing the pressure in air chamber 114A or 114B and pump manifold 143 to equalize, and then sensing the pressure in pump manifold 143 with pressure transducer 146. Thus, providing sufficient time to allow the pressure in pump manifold 143 and chamber 114A or 114B to equalize can result in a pressure reading that is an accurate approximation of the actual pressure in air chamber 114A or 114B. In some implementations, the pressure in air chamber 114A and / or 114B can be continuously monitored using multiple pressure sensors (not shown).
[0045] In some implementations, information collected by pressure transducer 146 may be analyzed to determine various states of a person lying in bed 112. For example, processor 136 may use information collected by pressure transducer 146 to determine the heart rate or respiratory rate of a person lying in bed 112. For example, a user may be lying on one side of bed 112, including chamber 114A. Pressure transducer 146 may monitor fluctuations in pressure in chamber 114A, and this information may be used to determine the user's heart rate and / or respiratory 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, processor 136 may determine when the person is falling asleep, while asleep, and the person's various sleep states.
[0046] 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 changes 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 detected slight rhythmic variations in pressure as corresponding to the user's presence on the bed 112. The presence of rhythmic variations can be identified as being due to the user's breathing or cardiac (heartbeat) rhythm (or both). Detection of breathing or heartbeat can distinguish between the user's presence on the bed and other objects (such as a suitcase) placed on the bed.
[0047] In some implementations, pressure fluctuations may be measured at pump 120. For example, one or more pressure sensors may be disposed within one or more internal cavities of pump 120 to detect pressure fluctuations within pump 120. The pressure fluctuations detected at pump 120 may indicate pressure fluctuations in one or both of chambers 114A and 114B. The one or more sensors disposed at pump 120 may be in fluid communication with one or both of chambers 114A and 114B and may operate to determine the pressure within chambers 114A and 114B. Control box 124 may be configured to determine at least one vital sign (e.g., heart rate, respiratory rate) based on the pressure within chamber 114A or chamber 114B.
[0048] In some implementations, control box 124 may analyze pressure signals sensed by one or more pressure sensors to determine the heart rate, respiratory rate, and / or other vital signs of a user lying or sitting on chamber 114A or chamber 114B. More specifically, when a user lies on bed 112 disposed above chamber 114A, the user's heartbeat, breathing, and other movements may each cause forces on bed 112 that are transmitted to chamber 114A. As a result of the force input into chamber 114A due to the user's movements, waves may propagate through chamber 114A and into pump 120. A pressure sensor disposed on pump 120 may detect the waves, such that a pressure signal output by the sensor may indicate the heart rate, respiratory rate, or other information about the user.
[0049] With respect to sleep state, the airbed system 100 may determine the user's sleep state 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.
[0050] Control box 124 may execute 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 to 4.0 Hz and the respiration rate portion of the signal has a frequency in the range of less than 1 Hz. 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 movement, rolling movement, limb movement, weight, user presence or absence, and / or the user's identity. 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 herein by reference.
[0051] For example, pressure transducer 146 may be used to monitor the 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 fluctuate 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.
[0052] 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.
[0053] In some implementations, the exemplary air bed system 100 further includes a temperature controller configured to raise, lower, or maintain the temperature of the bed, for example, for user comfort. 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 one or both of the chambers 114A and 114B. Air may be forced 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 locations of the chambers 114A and 114B) to provide different temperature control on different sides of the bed.
[0054] In some implementations, a user of the air bed system 100 may use an input device, such as the 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 another suitable communication 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 into the remote control 122 by the user.
[0055] 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 determined by a sensor element in the temperature controller, the pressure in 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).
[0056] In some implementations, the exemplary air bed system 100 further includes an adjustable base and an articulation controller configured to adjust the position of a 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 bed's mattress is tilted upward (e.g., to make it easier for a user to sit in bed and / or watch television). In some implementations, the bed 112 includes multiple separately articulatable sections. For example, the portions of the bed corresponding to the positions of chambers 114A and 114B can be articulated independently of each other, allowing 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 their head tilted upward 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.
[0057] [Example of a bed in a bedroom]
[0058] 3 illustrates an exemplary environment 300 including a bed 302 that communicates 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 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 fluctuations in the air pressure in the air chambers 306a-b and use the detected fluctuations 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 signals of the user 308, such as heart rate and respiratory rate. In the illustrated example, the pump 304 is located 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 via 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 different physical locations. For example, circuitry for controlling the operation of the pump 304 may be located within a pump casing of the pump 304, while control circuitry 334 for performing other functions related to the bed 302 may be located within another portion of the bed 302 or external to the bed 302. As another example, the control circuitry 334 located within the pump 304 may communicate with 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 .
[0059] In some implementations, one or more devices other than or in addition to pump 304 and control circuitry 334 may be used to identify a user's presence in bed, sleep state, movement, and biometric signals. For example, bed 302 may include a second pump in addition to pump 304, each of which may be connected to a respective one of air chambers 306a-b. For example, pump 304 may be in fluid communication with air chamber 306b, control the inflation and deflation of air chamber 306b, and detect user signals of the user located on air chamber 306b, such as presence in bed, sleep state, movement, and biometric signals. Meanwhile, the second pump may be in fluid communication with air chamber 306a, control the inflation and deflation of air chamber 306a, and detect user signals of the user located on air chamber 306a.
[0060] As another example, bed 302 may include one or more pressure-sensitive pads or pressure-sensitive surfaces operable to detect motion, including a user's presence, user movement, breathing, and heart rate. For example, a first pressure-sensitive pad may be incorporated into the surface of bed 302 on the left side of bed 302 where a first user typically sleeps, and a second pressure-sensitive pad may be incorporated into the surface of bed 302 on the right side of bed 302 where a second user typically sleeps. Motion detected by the one or more pressure-sensitive pads or pressure-sensitive surfaces may be used by control circuitry 334 to identify the user's sleep state, bed presence, or biometric signature.
[0061] In some implementations, information sensed by the bed (e.g., motion information) is processed by control circuitry 334 (e.g., control circuitry 334 integrated with pump 304) and provided to one or more user devices, such as user device 310, for presentation to user 308 or other users. In the example shown in FIG. 3 , user device 310 is a tablet device. However, in some implementations, user device 310 may be a personal computer, a smartphone, a smart television (e.g., television 312), or other user device capable of wired or wireless communication with control circuitry 334. User device 310 may communicate with control circuitry 334 of bed 302 over a network or via direct point-to-point communication. For example, control circuitry 334 may be connected to a LAN (e.g., via a Wi-Fi router) and communicate with user device 310 over the LAN. As another example, control circuitry 334 and 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 a USB connector, serial / RS232, or other wired connection suitable for the application.
[0062] 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 the user 308 had over a period of time (e.g., one night, a week, a 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 given period of time, the user's 308 heart rate over a period of time, the user's 308 respiratory 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 air chamber 306a may be presented along with information for a second user located on 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.
[0063] The user device 310 may also be used as an interface for the control circuitry 334 of the bed 302 to allow the user 308 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 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 with the sleep information of other people with a similar weight, height, and / or age. 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 recline or tilt 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).
[0064] 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 point-to-point communication (e.g., Bluetooth, wireless communication, or a wired connection). In some implementations, the control circuitry 334 of different beds 302 may communicate with different sets of devices. For example, a kids' 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.
[0065] 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 bed 302 or other devices. For example, control circuitry 334 may receive information from thermostat 316 indicating the current ambient temperature of the house or room in which bed 302 is located. 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 bed 302. Control circuitry 334 may then cause the heating or cooling mechanism of bed 302 to increase or decrease the temperature of the surface of bed 302. For example, user 308 may indicate a desired sleeping temperature of 74 degrees Fahrenheit, while a second user of bed 302 may indicate a desired sleeping temperature of 72 degrees Fahrenheit. Thermostat 316 may indicate to 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 sleeping 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 that is positioned to increase the temperature of the user's 308 sleeping surface to the desired temperature.
[0066] 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, ambient 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's 308 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 characteristics 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.
[0067] 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 this detected increase in air pressure to determine that the user 308 is present in 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 indicating the user's presence in bed is combined with other information to identify the user's 308's possible current or future state. For example, a user's detected presence in bed at 11:00 AM may indicate that the user is sitting in bed (e.g., tying their shoelaces or reading a book) and is not intending to fall asleep, whereas a user's detected presence in bed at 10:00 PM 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 AM (e.g., indicating that the user 308 has woken up for the day) and then detects the user 308's presence in bed at 7:30 AM, 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 their shoelaces before heading to work) rather than as an indication that the user 308 intends to remain in bed for an extended period of time.
[0068] In some implementations, the control circuitry 334 may use collected information (including information related to the user's 308 interactions with the bed 302, environmental information, time information, and input received from the user) to identify a usage pattern of the user 308. For example, the control circuitry 334 may use information collected over a period of time indicative of the user's 308 presence in bed and sleep status to identify the user's sleep pattern. For example, based on information indicative of the user's presence collected over a week and the user's 308 biometric characteristic signal, the control circuitry 334 may identify that the user 308 generally goes to bed between 9:30 PM and 10:00 PM, falls asleep generally between 10:00 PM and 11:00 PM, and wakes up generally between 6:30 AM and 6:45 AM. 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.
[0069] For example, given the bed presence, sleeping, and waking patterns of user 308 in the example above, if user 308 is detected to be in bed at 3:00 PM, 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 control circuitry 334 determined that user 308 was in bed in the evening. As another example, if control circuitry 334 detects that user 308 got out of bed at 3:00 AM, 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 restroom 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 AM, 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 bed (such as if the user 308 left bed 302 at 3:00 AM). For other users 308, getting out of bed 302 at 3:00 AM may be a normal wake-up time, and the control circuitry 334 may learn and respond accordingly.
[0070] As mentioned above, 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 the 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 from 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 user 308 on 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), control circuitry 334 may use this information to determine that user 308 is in bed to sleep. If television 312 is on (indicated by communications received by control circuitry 334 of bed 302 from television 312), control circuitry 334 may generate a control signal to turn television 312 off. The control signal may then be transmitted to the television (e.g., via a directed communications link between television 312 and control circuitry 334 or over a network). As another example, rather than turning off television 312 in response to detecting the user's presence in bed, control circuitry 334 may generate a control signal to lower the volume of television 312 by a pre-specified amount.
[0071] As another example, when control circuitry 334 detects that user 308 has left bed 302 during a specified time range (e.g., between 6:00 AM and 8:00 AM), it may generate a control signal to turn on television 312 and tune it to a pre-specified channel (e.g., user 308 indicates a preference to watch the morning news when getting out of bed in the morning). Control circuitry 334 may generate and send a control signal to television 312 to turn on television 312 and tune it to a desired station (which may be stored in control circuitry 334, television 312, or elsewhere). As another example, when control circuitry 334 detects that user 308 has woken up for the day, it may generate and send a control signal to turn on television 312 and begin playing a previously recorded program from a digital video recorder (DVR) in communication with television 312.
[0072] 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 characteristic 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 a threshold time 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, in response to determining that user 308 is asleep, control circuitry 334 generates and transmits a control signal to gradually decrease the volume on a television over a period of time, and then turn the television off.
[0073] 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 reduce the volume of a video or audio file being played on the user device 310.
[0074] 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 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 sent 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 send a control signal to turn off all the lights in the general room but not in other bedrooms. As another example, in response to determining that user 308 is in bed to sleep, the control signal generated by control circuitry 334 may indicate that lights in all rooms other than the room in which bed 302 is located should be turned off, and that one or more lights located outside the premises containing bed 302 should also be turned off. Further, control circuitry 334 may generate and transmit a control signal to turn on night light 328 in response to determining that user 308 is in bed or that user 308 is asleep. As another example, control circuitry 334 may generate a first control signal to turn off a first set of lights (e.g., the general room lights) 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 bed 302 is located) in response to detecting that user 308 is asleep.
[0075] 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 style in the room in which the bed 302 is located. The sunset lighting style 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 style may help the user 308 fall asleep when the control circuitry 334 determines that the user 308 is in bed to sleep.
[0076] The control circuitry 334 may also be configured to implement a sunrise lighting style 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 by, for example, detecting that the user 308 has left the bed 302 (i.e., is no longer present in the bed 302) during a specified time frame (e.g., between 6:00 AM and 8:00 AM). As another example, the control circuitry 334 may monitor the user's 308 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, for example, on previously recorded user bed presence information collected over a period of time (e.g., two weeks), which may indicate that the user 308 typically wakes up between 6:30 AM and 7:30 AM. In response to control circuitry 334 determining that user 308 is awake, control circuitry 334 may generate a control signal to cause lighting system 314 to implement a sunrise lighting style in the bedroom in which bed 302 is located. The sunrise lighting style may include, for example, turning on lights (e.g., lamps 326 or other lights in the bedroom). The sunrise lighting style may further include gradually increasing the level of lighting in the room in which bed 302 is located (or one or more other rooms). The sunrise lighting style may also include turning on only lights of a specified color. For example, the sunrise lighting style may include illuminating the bedroom with blue light to gently assist user 308 in waking up and becoming active.
[0077] 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 of day that 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 as having 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 as having 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 user 308 gets out of bed before 6:30 a.m., control circuitry 334 may turn on lights that guide user 308 to the kitchen (which may include, for example, turning on night light 328, turning on under-bed lights, or turning on lamp 326).
[0078] 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 to have gotten out of bed before a designated morning wake-up time for the user 308, the control circuitry 334 causes the lighting system 314 to turn on a weaker light than the light that would be turned on by the lighting system 314 if the user 308 were detected to have gotten out of bed after the designated morning wake-up time. Turning on only weaker lights when the user 308 gets out of bed at night (i.e., before the user's 308'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.
[0079] 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 time 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 actually gets out of bed). In some implementations, a buffer time may be added to these window periods. For example, if the user is identified as typically going to bed between 10:00 PM and 10:30 PM, a 30-minute buffer may be added in each direction to the window period, such that detecting 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, detecting a user 308's presence in bed within a time window beginning 30 minutes before the user's earliest typical time to go to bed and extending through the user's typical wake-up time (e.g., 6:30 AM) 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 PM and 10:30 PM, detecting the user's presence in bed at 12:30 AM (12:30 AM) one night may be interpreted as the user 308 going to bed for the night because it occurs outside the user's typical time window for going to bed but before the user's normal wake-up time. In some implementations, different time windows 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 wake up earlier on weekdays than on weekends).
[0080] The control circuitry 334 may distinguish between a short time in bed 302 (e.g., a nap) and a long time in bed (e.g., a night) by sensing the duration of the user's 308 presence. In some examples, the control circuitry 334 may distinguish between a short time in bed (e.g., a nap) and a long time in bed (e.g., a night) by sensing the duration of the user's 308 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 gone to sleep at night. In some examples, the threshold may be approximately two hours, such that if the user 308 is sensed in bed 302 for more than two hours, the control circuitry 334 registers this as a long sleep event. In other examples, the threshold may be longer or shorter than two hours.
[0081] 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 its knowledge of the user's 308 bedtime range to differentially control one or more components (including the bed 302 and / or non-bed peripherals) based on sensing the user's 308 presence in bed during or outside the bedtime range.
[0082] In some examples, control circuitry 334 may automatically determine a bedtime range for user 308 without requiring user input. In some examples, control circuitry 334 may determine a bedtime range for user 308 automatically and in combination with user input. In some examples, control circuitry 334 may directly set a bedtime range according to user input. In some examples, control circuitry 334 may associate different bedtimes with different days of the week. In each of these examples, control circuitry 334 may control one or more components (such as lighting system 314, thermostat 316, security system 318, oven 322, coffee maker 324, lamp 326, and nightlight 328) as a function of the detected bed presence and bedtime range.
[0083] Control circuitry 334 may also communicate with thermostat 316, receive information from thermostat 316, and generate control signals to control the functions of thermostat 316. For example, user 308 may indicate a user preference for different temperatures at different times depending on the user's sleep state or presence in bed. For example, user 308 may prefer an ambient temperature of 72°F when out of bed, 70°F when in bed but awake, and 68°F when asleep. Control circuitry 334 of bed 302 may detect the user's 308 presence in bed at night and determine that user 308 is asleep. In response to this determination, control circuitry 334 may generate a control signal that causes the thermostat to change the temperature to 70°F. Control circuitry 334 may then transmit the control signal to thermostat 316. Upon detecting that the user 308 is asleep or in bed 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. The next morning, upon determining that the user has woken up for the day (e.g., the user 308 got out of bed after 6:30 AM), the control circuitry 334 may generate and send a control signal to cause the thermostat 316 to change the temperature to 72 degrees F.
[0084] 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°F when it detects 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°F at 10:00 PM and decrease the surface temperature to 68°F at 11:30 PM.
[0085] In some implementations, in response to detecting the user 308's presence in bed and / or detecting that the user 308 is asleep, the control circuitry 334 may cause the thermostat 316 to change the temperature 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.
[0086] Control circuitry 334 may also receive temperature information from thermostat 316 and may use this temperature information to control the function 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.
[0087] 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 for the 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 for the day.
[0088] The control circuitry 334 may also 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, causing the security system 318 to activate. 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 AM). 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.
[0089] 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 transmit 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 the 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 cause the bed 302 to vibrate. 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.
[0090] The control circuitry 334 may further generate and send control signals to control the garage door 320 and may receive information indicating the state of the garage door 320 (i.e., whether it is 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 send 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 a bedroom and to alert the user 308 to check the user device 310 for an alert (in this example, an alert about 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 differ depending on the age of the user 308.
[0091] 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. The 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 about 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 close and lock it. If the door 332 is closed and locked, the control circuitry 334 may determine that no further action is required.
[0092] 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 (e.g., on or off) of the oven 322. 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, control circuitry 334 may cause lamp 326 (or one or more other lights via lighting system 314) to flash in a first pattern if security system 318 detects a breach, in a second pattern if garage door 320 is open, in a third pattern if door 332 is open, in a fourth pattern if 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 child's bed 302 detects that user 308's child has gotten out of bed during the night). Other examples of alerts that may be processed by control circuitry 334 of bed 302 and communicated to the user include a smoke detector that detects smoke (and communicates the smoke detection to control circuitry 334), a carbon monoxide tester that detects carbon monoxide, a heater malfunction, or an alert from any other device capable of communicating with control circuitry 334 and capable of detecting the occurrence of an event that should be brought to the attention of user 308.
[0093] 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 close the blinds 330. 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 AM), the control circuitry 334 may generate and transmit a control signal to open the blinds 330. In contrast, if the user 308 gets out of bed before the user's 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 open the blinds 330. As yet another example, the control circuitry 334 may generate and transmit a control signal to close a first set of blinds in response to detecting the user 308's presence in bed, and to close a second set of blinds in response to detecting that the user is asleep.
[0094] Control circuitry 334 may generate and transmit control signals to control functions of other home devices in response to detecting user interaction with bed 302. For example, in response to determining that user 308 has woken up for the day, control circuitry 334 may generate and transmit a control signal to coffee maker 324 to cause coffee maker 324 to begin brewing coffee. As another example, control circuitry 334 may generate and transmit a control signal to oven 322 to cause the oven to begin preheating (for users who like freshly baked bread in the morning). As another example, control circuitry 334 may use information indicating that user 308 has woken up for the day, along with information indicating that it is currently winter time of year and / or that the outside temperature is below a threshold, to generate and transmit a control signal to turn on a car's engine block heater.
[0095] 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 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 sleep mode (to normal mode).
[0096] 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 that the user 308 is 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 where the bed 302 is located, for example. As another example, upon determining that the user 308 is in bed at night or that the user 308 is asleep, the control circuitry 334 may generate and transmit control signals to turn on, off, increase, or decrease the volume of one or more sound-producing devices, such as a stereo system radio, a computer, a tablet, etc.
[0097] 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 the head portion of the mattress of the bed 302 is tilted upward (e.g., to make it easier for a user to sit in bed and / or watch 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 their head tilted upward 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 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 bed 302, or to vibrate the bed to alert users 308 as described above.
[0098] 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, and in response, the control circuitry 334 may cause the articulation controller to 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).
[0099] In some implementations, control circuitry 334 may control the articulation controller to wake one user of bed 302 without waking another user of bed 302. For example, user 308 and a second user of bed 302 may each set different wake-up times (e.g., 6:30 AM and 7:15 AM, respectively). When user 308's wake-up time arrives, control circuitry 334 may cause the articulation controller to vibrate or change the position of only the side of the bed where user 308 is located to wake user 308 without disturbing the second user. When the second user's wake-up time arrives, control circuitry 334 may cause the articulation controller to vibrate or change the position of only the side of the bed where the second user is located. Alternatively, when the second user's wake-up time arrives, control circuitry 334 may wake the second user using other methods (e.g., an audio alarm, turning on a light, etc.). This is because when control circuitry 334 attempts to wake up the second user, user 308 is already awake and will not be disturbed.
[0100] Continuing with reference to FIG. 3 , control circuitry 334 of bed 302 may utilize information about multiple users' interactions with bed 302 to generate control signals for controlling the functions of various other devices. For example, control circuitry 334 may wait to generate control signals, such as to activate security system 318 or to command lighting system 314 to turn off various room lights, until it detects that both user 308 and a second user are present on bed 302. As another example, control circuitry 334 may generate a first set of control signals to cause lighting system 314 to turn off a first set of lights upon detecting user 308's presence in bed, and may generate a second set of control signals to turn off a second set of lights in response to detecting a second user's presence in bed. As another example, control circuitry 334 may wait to generate control signals to open blinds 330 until it determines that both user 308 and a 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 that a 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, security system 318 to deactivate, lamp 326 to turn on, night light 328 to turn off, thermostat 316 to increase the temperature in one or more rooms to 72 degrees Fahrenheit, and 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 woken up), 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, open the bedroom blinds, and turn on television 312 on a pre-designated channel.
[0101] [Example of a data processing system associated with a bed]
[0102] Described herein are examples of systems and components that may be used for data processing tasks associated with, for example, a bed. In some cases, multiple instances of a particular component or group of components are presented. Some of these instances are redundant and / or mutually exclusive alternatives. Connections between components are shown as examples illustrating possible network topologies for allowing communication between components. Various types of connections may be used as technically required or desired. The connections generally represent 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.
[0103] FIG. 4A is a block diagram of an example 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, e.g., 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 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, the Internet 412, or other manners as technically appropriate. Each of these components is described in more detail below, along with several exemplary embodiments.
[0104] 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, 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 may in response determine whether a controller in the controller array 408 should adjust some parameter of a logic 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.
[0105] One advantage of a hub-and-spoke network topology (sometimes called a star network) is reduced network traffic, compared to, for example, a mesh network using dynamic routing. Even if a particular sensor generates a large, continuous stream of traffic, that traffic may only be sent through one spoke of the network to the motherboard 402. The motherboard 402 may, for example, marshal the data, condense it into a smaller data format, and retransmit it for storage to 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 through a different spoke of the network. For example, if the large data stream is pressure readings 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 an air chamber. In this case, the single command message may be several orders of magnitude smaller than the stream of pressure readings.
[0106] 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, for more, fewer, or different sensors in sensor array 406, more, fewer, or different controllers in 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 obsoleted by a newer version of that sensor, system 400 may be configured such that only motherboard 402 needs to be updated with the replacement sensor. This may allow for 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 can add their own selection of components to system 400.
[0107] Furthermore, a range 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 a pump, motherboard 402 (and optionally daughterboard 404) may be designed to fit within a single universal housing. Additional sensors, controllers, cloud services, etc. may then be added with each upgrade of a product within the product line. Designing all products in a product line from this base may reduce design, manufacturing, and testing time compared to a product line where each product has a custom logic control system.
[0108] Each of the aforementioned components may be implemented in a variety of technologies and forms. Some 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.
[0109] 4B is a block diagram illustrating some communication paths of data processing system 400. As previously mentioned, motherboard 402 and pump daughterboard 404 may function as a hub for peripherals and cloud services for system 400. When pump daughterboard 404 communicates with a cloud service or other component, communications from pump daughterboard 404 may be routed through pump motherboard 402. This may allow, for example, a bed to have only a single connection to the Internet 412. 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).
[0110] 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 pump motherboard 402 can communicate directly with them—that is, motherboard 402 may communicate with cloud service 410 without having to use another cloud service 410 as an intermediary. Additionally or alternatively, some cloud services 410, e.g., cloud service 410f, may be reachable by pump motherboard 402 only through an intermediary cloud service, e.g., cloud service 410e. While not shown here, some cloud services 410 may be reachable directly or indirectly by pump motherboard 402.
[0111] 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, e.g., for backup, coordination, migration purposes, or to perform computations or data mining. In another example, many cloud services 410 may contain data indexed according to specific users tracked by 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.
[0112] Figure 5 is a block diagram of an example 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.
[0113] The motherboard includes a power supply 500, a processor 502, and computer memory 512. Generally, 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.
[0114] 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 of these, and / or other hardware to perform the necessary functions.
[0115] 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 random access memory), or any other technically suitable configuration.
[0116] 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 the 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 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.
[0117] Valve solenoid 508 may control which air chamber the pump is connected to. In some cases, solenoid 508 may be controlled directly by processor 502. In some cases, solenoid 508 may be controlled by pump controller 504.
[0118] The remote interface 510 of the motherboard 402 may allow the motherboard 402 to communicate with other components of the 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.
[0119] Figure 6 is a block diagram of an example 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. 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.
[0120] 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.
[0121] Similar to how pump controller 504 converts commands from processor 502 into control signals for pump motor 506, valve controller 600 can convert commands from processor 502 into control signals for valve solenoid 508. In one example, processor 502 can issue a command to valve controller 600 to connect a pump to a particular air chamber of a group of air chambers in an air bed. Valve controller 600 can control the position of valve solenoid 508 so that the pump is connected to the indicated air chamber.
[0122] 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.
[0123] Motherboard 402 may include a set of network interfaces, including but not limited to those illustrated here, that 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.
[0124] 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 embodiments, one or more daughterboards 404 may be connected to the motherboard 402. Some daughterboards 404 may be designed to offload specific tasks and / or compartmentalized tasks from the motherboard 402. This may be advantageous, for example, if a specific task is computationally intensive, proprietary, or subject to future revision. For example, a daughterboard 404 may be used to calculate a specific 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 revision. 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 additional components in addition to the daughterboard 404, since the same motherboard 402 and other components may be used.
[0125] The daughter board 404 is shown with a power supply 700, a processor 702, computer-readable memory 704, a pressure sensor 706, and a Wi-Fi radio 708. The processor may use the pressure sensor 706 to collect information regarding the pressure in one or more air chambers of the air bed. From this data, the processor 702 may execute an algorithm to calculate sleep metrics. In some examples, sleep metrics may be calculated solely from the air chamber pressure. 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 that data from an appropriate sensor or sensors. These sensors may be internal to the daughter board 404, accessible via the Wi-Fi 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.
[0126] 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.
[0127] 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.
[0128] 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.
[0129] Some of the peripheral sensors 900 of the sensor array 406 may be attached to the bed. These sensors may, for example, be embedded within the structure of the bed, sold with the bed, or later attached to the structure of the bed. Other peripheral sensors 902, 904 may communicate 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, when attached to the motherboard 402, includes conductors including wires, multi-wire cables, or plugs from each sensor that connect all of the associated sensors 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 sensors 902, 904, 906, 908, 910 are capable of sensing one or more characteristics external to the mattress. In some embodiments, some or all of sensors 902, 904, 906, 908, 910 are capable of sensing one or more characteristics of the mattress and / or one or more characteristics external to the mattress, while pressure sensor 902 is capable of sensing pressure in the mattress.
[0130] 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.
[0131] The peripheral controllers of the controller array 408 may communicate with the motherboard 402 via one or more network interfaces on 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.
[0132] Some of the controllers 1000 in 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 within the bed structure, sold with the bed, or later mounted to the bed structure. Other peripheral controllers 1002, 1004 may communicate with the motherboard 402 but may optionally not be mounted to the bed. In some cases, some or all of the bed-mounted controllers 1000 and / or peripheral controllers 1002, 1004 may share networking hardware, which, when mounted to the motherboard 402, includes conductors, including wires, multi-wire cables, or plugs for each controller, connecting all of the associated controllers to the motherboard 402.
[0133] 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 bed user. Exemplary computing devices 414 include, but are not limited to, mobile computing devices (e.g., mobile phones, tablet computers, laptops) and desktop computers.
[0134] The computing device 414 includes a power supply 1100, a processor 1102, and computer-readable memory 1104. User input and output may be transmitted, for example, via a speaker 1106, a touchscreen 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., setting a desired firmness for the bed or a desired operation for a peripheral device). In some cases, the computing device 414 may be used in addition to or in place of the remote control 122 described above.
[0135] Figure 12 is a block diagram of an example 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-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 with one or more users occupying the bed at the time the sensor data and sleep data were generated.
[0136] 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.
[0137] 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, network interface 1200 may include network cards, routers, modems, and other hardware required to allow components of bed data cloud service 410a to communicate with each other and other destinations, for example, via the Internet 412. Communications manager 1202 generally includes hardware and software operating on network interface 1200. This includes software for initiating, maintaining, and tearing down network communications used by bed data cloud service 410a. This includes, for example, TCP / IP, SSL or TLS, Torrent, and other communication sessions over local or wide area networks. Communications manager 1202 may also provide load balancing and other services to other elements of bed data cloud service 410a.
[0138] 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, graphics 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, which may be geographically separated or connected.
[0139] 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.
[0140] 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.
[0141] 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 product information (products) 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 users associated with the bed. For example, the indexes may record sales of beds to one or more users who sleep in the bed.
[0142] The sensor data module 1212 may record raw (unprocessed) or condensed (processed) 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, either in raw sensor form or in a format generated from the raw data (e.g., sleep metrics), may be communicated by the bed's data processing system to the bed data cloud service 410a 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.
[0143] The bed data cloud service 410a may use any of its available data to generate advanced sleep data 1214. Generally, 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 if, for example, 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 be useful to allow the bed system to operate with a relatively simple controller while still being part of a system that performs relatively complex tasks and calculations.
[0144] 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.
[0145] Sleep data cloud service 410b is shown with network interface 1300, communications manager 1302, server hardware 1304, and server system software 1306. Sleep data cloud service 410b is further shown with user identification module 1308, pressure sensor management module 1310, pressure-based sleep data module 1312, raw pressure sensor data module 1314, and non-pressure sleep data module 1316.
[0146] 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.
[0147] The pressure-based sleep data 1312 may use the raw pressure sensor data 1314 to calculate sleep metrics, particularly those 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 the user associated with the pressure sensor, the raw pressure sensor data, and / or the pressure-based sleep data.
[0148] 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.
[0149] 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.
[0150] User counting cloud service 410c is shown with network interface 1400, communications manager 1402, server hardware 1404, and server system software 1406. Additionally, user counting cloud service 410c is shown with user identification module 1408, purchase history module 1410, engagement module 1412, and application usage history module 1414.
[0151] 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 count cloud service 410c or other service. Each user may have, for example, a unique identifier, user credentials, demographic information, or other technically appropriate information.
[0152] The purchase history module 1410 may include or reference data related to purchases 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.
[0153] The engagement module 1412 may track user interactions with bed and / or cloud service manufacturers, vendors, and / or administrators. This engagement data may include correspondence (e.g., emails, service calls, etc.), sales data (e.g., receipts, configuration logs), and social network interactions.
[0154] 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. This 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 count cloud service 410c may identify the user associated with each log entry.
[0155] Figure 15 is a block diagram of an example 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.
[0156] 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.
[0157] Purchase history module 1512 may include or reference data related to purchases made by a user identified in user identification module 1510. 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 selections made by the user regarding 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.
[0158] 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.
[0159] The data recorded in the point of sale cloud service 1500 can later be referenced by the user's bed system, which can control functions of the bed system and / or send control signals to peripheral components according to the data recorded in the point of sale cloud service 1500. This can allow sales personnel 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, requiring little to no user input data 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.
[0160] 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-3. In this example, the environmental cloud service 1600 is configured to record data related to a user's home environment.
[0161] Environmental cloud service 1600 is shown with network interface 1602, communication manager 1604, server hardware 1606, and server system software 1608. Additionally, environmental cloud service 1600 is shown with user identification module 1610, environmental sensor module 1612, and environmental factor module 1614.
[0162] The environmental sensor module 1612 may contain a list of sensors that have been installed in the bed by the 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 these sensors.
[0163] 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.
[0164] 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 partially or completely shared 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 a different number, type, and style of components, where technically possible.
[0165] 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 in 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 variety of sources (e.g., sensors, non-sensor local sources, cloud data services) and may use a behavioral algorithm 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.
[0166] 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 in 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 within the bed. From this reading, and possibly other data, the presence of a user in the bed may be determined. In another example, the behavioral analysis module 1700 may access the light sensor 908 to detect the amount of light in the environment of the bed.
[0167] Similarly, behavioral analysis module 1700 may access data from cloud services. For example, behavioral analysis module 1700 may access bed cloud service 410a and may access historical sensor data 1212 and / or advanced sleep data 1214. Other cloud services 410, including those not previously described, may be accessed by behavioral analysis module 1700. For example, 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.
[0168] Similarly, behavior analysis module 1700 may access data from non-sensor sources 1704. For example, behavior analysis module 1700 may access a local clock and calendar service (e.g., a component of motherboard 402 or processor 502).
[0169] 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 user behavior and / or perform some action based on the state of the accessed data and / or predicted user behavior. For example, the behavioral algorithm 1702 may use available data (e.g., pressure sensor, non-sensor data, clock, and calendar data) to create a model of when a 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 likely indicates the user has gone 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, base actuator 1706, temperature controller 1008, under-bed lighting 1010, peripheral controller 1002, or peripheral controller 1004, to name a few.
[0170] In the depicted example, behavioral analysis module 1700 and behavioral algorithm 1702 are shown as components of motherboard 402, although other configurations are possible. For example, the same or similar behavioral analysis module and / or behavioral algorithm may be executed in one or more cloud services, with the resulting output being sent to motherboard 402, a controller in controller array 408, or any other technically suitable recipient.
[0171] 18 illustrates an example computing device 1800 and an example mobile computing device that may be used to implement the techniques described herein. 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. Mobile computing device is intended to represent various forms of mobile devices, such as personal digital assistants, mobile phones, smartphones, and other similar computing devices. The components, their connections and relationships, and their functions shown here are intended to be illustrative only and are not intended to limit the implementation of the invention(s) described and / or claimed herein.
[0172] Computing device 1800 includes processor 1802, memory 1804, storage device 1806, high-speed interface 1808 connecting memory 1804 and multiple high-speed expansion ports 1810, and low-speed interface 1812 connecting low-speed expansion port 1814 and storage device 1806. Each of processor 1802, memory 1804, storage device 1806, high-speed interface 1808, high-speed expansion port 1810, and low-speed interface 1812 are interconnected using various buses and may be mounted on a common motherboard or in other manners as needed. Processor 1802 processes instructions for execution within computing device 1800, including instructions stored in memory 1804 or storage device 1806, and may display graphical information for a GUI on an external input / output device, such as a display 1816 coupled to high-speed interface 1808. In other implementations, multiple processors and / or multiple buses may be used, along with multiple memories and memory types, as desired, and multiple computing devices may be connected (e.g., as a server bank, as a collection of blade servers, or as a multiprocessor system) with each computing device providing a portion of the required operations.
[0173] 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 also be another form of computer-readable medium, such as a magnetic disk or an optical disk.
[0174] 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 multiple devices. 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 those 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 memory on the processor 1802.
[0175] High-speed interface 1808 manages bandwidth-intensive operations for computing device 1800, while low-speed interface 1812 manages lower-bandwidth operations. This allocation of functionality is merely exemplary. In some implementations, high-speed interface 1808 is coupled to memory 1804, display 1816 (e.g., via a graphics processor or accelerator), and high-speed expansion port 1810, which can accept various expansion cards (not shown). In such implementations, low-speed interface 1812 is coupled to storage device 1806 and low-speed expansion port 1814. 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, pointing device, scanner, or network device, such as a switch or router, via a network adapter.
[0176] Computing device 1800, as shown, may be implemented in several different forms. 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 communicating with each other.
[0177] The mobile computing device 1850 includes, among other things, a processor 1852, 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.
[0178] 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 example, control of a user interface, applications executed by the mobile computing device 1850, and coordination of other components of the mobile computing device 1850, such as wireless communication by the mobile computing device 1850.
[0179] Processor 1852 may communicate with a user via control interface 1858 and display interface 1856 coupled to display 1854. 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. Display interface 1856 may have appropriate circuitry for driving display 1854 to present graphical and other information to the user. Control interface 1858 may receive commands from the user and convert them for presentation to processor 1852. Additionally, external interface 1862 may provide communication with processor 1852 and enable short-range communication with other devices in mobile computing device 1850. External interface 1862 may provide, for example, wired communication in some implementations or wireless communication in other implementations, although multiple interfaces may be used.
[0180] Memory 1864 stores information within mobile computing device 1850. 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. Expansion memory 1874 may also be provided and connected to mobile computing device 1850 via expansion interface 1872, which may include, for example, a SIMM (single in-line memory module) card interface. Expansion memory 1874 may provide additional storage space for mobile computing device 1850 or may store applications or other information for mobile computing device 1850. Specifically, expansion memory 1874 may include instructions for performing or supplementing the processes described above and may also include security information. Thus, for example, expansion memory 1874 may be provided as a security module for mobile computing device 1850 and may be programmed with instructions that allow for secure use of 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.
[0181] The memory may include, for example, flash memory and / or NVRAM (non-volatile random access memory) 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 those 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 as a propagated signal, for example, via transceiver 1868 or external interface 1862.
[0182] Mobile computing device 1850 may communicate wirelessly via communication interface 1866. Communication interface 1866, which may include digital signal processing circuitry as needed, 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 transceiver 1868 using radio frequencies, for example. Additionally, short-range communications may occur, such as using Bluetooth, WiFi, or other such transceivers (not shown). Additionally, a GPS (Global Positioning System) receiver module 1870 may provide additional navigation- and location-related wireless data to mobile computing device 1850. It may be suitably used by applications running on the mobile computing device 1850.
[0183] 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 audible sounds for the user, such as through a speaker in the 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 sounds generated by applications running on the mobile computing device 1850.
[0184] The mobile computing device 1850 may be implemented in several different forms, as shown in the figure. For example, it may be implemented as a mobile phone 1880. It may also be implemented as part of a smartphone 1882, personal digital assistant, or other similar mobile device.
[0185] 19 is a block diagram of exemplary components of a data processing system that can regulate pressure in a bed system in a high-pressure scenario. The bed controller 1900, pressure sensors 1902A-N, and pressure regulator 1904 can communicate (e.g., wired and / or wirelessly) via one or more networks. The bed controller 1900 can be configured to control the operation of one or more components of the bed system. The pressure sensors 1902A-N can be part of the bed system. For example, one or more of the pressure sensors 1902A-N can be integrated into at least one air chamber of a mattress of the bed system. One or more of the pressure sensors 1902A-N can also be integrated into at least one fluid connection between the air chamber and a pump. One or more of the pressure sensors 1902A-N can also be attached to or otherwise configured with respect to the pump. The pump can be the same as the pressure regulator 1904 in some implementations. In this manner, the pressure regulator 1904 may be configured to adjust the pressure in at least one air chamber of the mattress. The components 1900, 1902A-N, 1904 may be part of the data processing system 400 described herein. The components 1900, 1902A-N, 1904 may also be part of one of the bed systems (e.g., smart beds) described herein.
[0186] The components 1900, 1902A-N, 1904 can perform the techniques described herein to ensure that the bed system does not reach overpressure values that could adversely affect the accuracy of the user's biometric and health monitoring technology without causing mechanical failure. That is, overpressure can be a pressure outside of the desired operating pressure set to ensure sleeper comfort, but the overpressure may not be high enough to damage the bed. In some implementations, an overpressure condition within the bed system can cause the bed system's technology to malfunction, leak, and / or burst.
[0187] At least one pressure sensor 1902A-N may sense the pressure in the air chamber of the mattress of the bed system (block 1910). The sensed pressure value may be transmitted to the bed controller 1900. In block 1910, the pressure may be detected continuously. In some implementations, the pressure may be detected at predetermined time intervals (e.g., every 30 seconds, every minute, every 3 minutes, every 5 minutes, etc.).
[0188] The bed controller 1900 may be configured to determine overpressure in the bed system (block 1912). For example, the bed controller 1900 may determine whether the sensed pressure in block 1910 exceeds a maximum target pressure value for the bed system. The bed controller 1900 may also determine whether the sensed pressure exceeds a user-desired pressure value. The sensed pressure may be measured in PSI. The sensed pressure may also be measured in one or more other measurements. The bed controller 1900 may convert the sensed pressure to a value corresponding to the maximum target pressure value (or user-desired pressure value). For example, the pressure measurement in PSI may be correlated to a value on a scale of 0 to 100, with 0 representing the lowest pressure and 100 representing the highest pressure. The maximum target pressure value and the user-desired pressure value may be on the same scale of 0 to 100, with 0 representing the lowest pressure designed to be comfortable for sleeping on the bed and 100 representing the highest pressure designed to be comfortable for sleeping on the bed. Thus, in block 1910, the bed controller 1900 may determine whether the sensed pressure exceeds a maximum target pressure value. In some implementations, the maximum target pressure value may be 100. Thus, if the sensed pressure corresponds to a pressure value greater than 100, the bed controller 1900 may determine an overpressure condition in the bed system.
[0189] Based on the bed controller 1900's over-pressure determination, the bed controller 1900 may generate and transmit to the pressure regulator 1904 commands to adjust the pressure in the mattress's air chamber to correct the over-pressure condition (block 1914). In some implementations, the commands may include deflating the mattress's air chamber until a maximum target pressure value is reached. The commands may also include deflating the air chamber until a user-desired pressure value is reached. In some implementations, the commands may include inflating the mattress's air chamber until the maximum target pressure value is reached and / or until a user-desired pressure value is reached. Similarly, in a depressurized state, the bed pressure may be increased until a minimum target pressure value is reached. The minimum target pressure may, for example, be less than the maximum target pressure value.
[0190] The command at block 1914 may be determined and generated based on one or more factors. Such factors may include, but are not limited to, a change in the environment, activation of a heating routine, and / or activation of a cooling routine. The change in the environment may include a change in the environmental temperature, air pressure, and / or altitude. For example, an increase in temperature within the mattress air chamber (e.g., as a result of activating a heating routine) may result in higher pressure within the air chamber, thereby contributing to the over-pressure condition determination at block 1912. Accordingly, the bed controller 1900 may generate a command at block 1914 to deflate the air chamber to correct the over-pressure condition.
[0191] As another example, a decrease in temperature in the air chamber (e.g., as a result of activating a cooling routine) may result in a lower pressure in the air chamber. When a user enters bed, the pressure in the air chamber may increase only slightly and may not reach the user-desired or maximum target pressure value. Thus, the bed controller 1900 may generate a command to inflate the air chamber in block 1914.
[0192] As yet another example, a decrease in ambient air temperature may result in higher pressure in the air chamber, thereby contributing to the over-pressure condition determination in block 1912. Accordingly, the bed controller 1900 may generate a command to deflate the air chamber in block 1914. As will be appreciated, these actions may be taken even if the bed controller 1900 does not have access to direct measurements of these environmental factors because these factors affect the pressure sensed by the pressure sensor 1902.
[0193] Blocks 1910, 1912, and 1914 may be executed continuously. In some implementations, blocks 1910, 1912, and 1914 may be executed during one or more predetermined time intervals. The predetermined time interval may include a threshold time before the user is expected to enter the bed system. The predetermined time interval may also include the current time the user is in the bed system. In some implementations, one or more of blocks 1910, 1912, and 1914 may not be executed until it is detected that the user has entered bed. In some implementations, one or more of blocks 1910, 1912, and 1914 may not be executed until a predetermined amount of time has passed since the last time that one or more of blocks 1910, 1912, and 1914 were executed. For further explanation, see FIG. 23.
[0194] 20 is a swim lane diagram of a process 2000 for regulating pressure in a bed system to protect the bed system from an overpressure event. Although process 2000 is described with respect to pressure sensors 1902A-N, a bed controller 1900, and a pressure regulator 1904, one or more other components and / or computing systems and / or devices may be used to perform process 2000.
[0195] Referring to process 2000 of FIG. 20 , at least one pressure sensor 1902A-N may sense pressure in a bed system in block 2002. As described herein, the bed system may include a mattress. The mattress may have one or more air chambers. The pressure sensors 1902A-N may sense pressure in air chamber(s) within the mattress. The air chamber(s) may be configured to increase in pressure due to the influence of one or more factors, which may include, but are not limited to, environmental temperature, humidity, sleeper temperature (e.g., body temperature or a heating or cooling device used for the sleeper's comfort), air pressure, and altitude. The sensing may be performed continuously. In some embodiments, the sensing may be performed at predetermined time intervals.
[0196] In block 2004, the sensors 1902A-N may transmit pressure reading(s) to the bed controller 1900, which may receive the pressure reading(s) in block 2006.
[0197] The bed controller 1900 may then determine the pressure value of the mattress of the bed system in block 2008. For example, the bed controller 1900 may map the pressure reading in PSI (pounds per square inch) using a numerical scale of values from 0 to 100, with 0 representing the lowest pressure and 100 representing the highest pressure.
[0198] The bed controller 1900 may also determine, in block 2010, whether the mattress pressure value exceeds a maximum target pressure value. In some implementations, the bed controller 1900 may determine that a user has entered bed and then responsively determine whether the mattress pressure value exceeds a maximum target pressure value. In some cases, the maximum target pressure value may be a PSI value. The maximum target pressure value may correspond to a maximum possible sleeper value. The sleeper value may be a numerical value on a predetermined scale, such as 0 to 100. The maximum possible sleeper value may be the maximum sleeper value that defines the firmness of the mattress. The maximum possible sleeper value may be the same for all users and may be "100," thereby representing the maximum mattress firmness that may be selectable by a user. Thus, in block 2010, the bed controller 1900 may determine whether the current mattress pressure value exceeds the maximum firmness level that the mattress can achieve (which is "100" in this example).
[0199] In some implementations, the maximum possible sleeper value may correspond to a firmness level preferred by a user of the mattress. For some users, the maximum possible sleeper value may be "100," which corresponds to the highest firmness level of the mattress. As another example, a user may have a maximum possible sleeper value of "65," which corresponds to a certain firmness level of the mattress. One or more other firmness levels may also be selected as the user's maximum possible sleeper value.
[0200] If the pressure value exceeds the maximum target pressure value, an over-pressure condition exists, and the bed controller 1900 may generate a command to adjust the mattress pressure (block 2012). The command may include decreasing the mattress pressure to the maximum target pressure value. For example, if the pressure value is determined to be "110" on a scale of 1 to 100 and the maximum target pressure value is "100," the command may cause the pressure regulator 1904 to deflate the mattress until the pressure sensor(s) 1902A-N sense a pressure corresponding to the maximum target pressure value of "100" (block 2002).
[0201] The command may also include decreasing (lowering) the mattress pressure to a pressure value corresponding to a selected Sleeper value that is less than the maximum target pressure value. For example, the Sleeper value may be selected by a user in a mobile application presented on a user device (e.g., a cell phone, smartphone, laptop, tablet, etc.) and transmitted to the bed controller 1900 (or stored in a data store and retrieved by the bed controller 1900). The Sleeper value may correspond to a user-preferred firmness level of the mattress. In other words, the selected Sleeper value may be entered by the user into a user interface as an integer within the range of 1 to 100 or 0 to 100 (e.g., 12, 54, 55, 78). The selected Sleeper value may not be associated with a unit value. Furthermore, the mattress pressure value may be a non-integer associated with a unit of pressure, such as PSI, as described above. Examples of non-integer values include real values that store decimal values, and the specific limitations of the real values may be based on the hardware and software capabilities of the bed controller 1900.
[0202] As an illustrative example, the selected Sleeper value may be 65 on a scale of 1 to 100, where 65 is less than the maximum target pressure value of 100. The command may cause the pressure regulator 1904 to deflate the mattress until pressure sensor(s) 1902 A-N sense a pressure corresponding to the selected Sleeper value of 65 (block 2002). In some implementations, as described with reference to FIG. 22, the command may include inflating the mattress to achieve the maximum target pressure value and / or the selected Sleeper value.
[0203] The bed controller 1900 may then transmit the command to the pressure regulator 1904 (e.g., a pump and deflate valve) in block 2014. The pressure regulator 1904 may receive the command in block 2016 and execute the command in block 2018 to adjust the mattress pressure to the maximum target pressure value.
[0204] Referring back to block 2010, if the pressure value does not exceed the maximum target pressure value, the process 2000 may return to block 2002. The pressure sensor(s) 1902A-N may continue to transmit pressure in the bed system and may continue to transmit pressure reading(s) to the bed controller 1900, which may perform the techniques described herein.
[0205] In some implementations, the bed controller 1900 may be configured to enable and disable actions, such as determining whether the mattress pressure value exceeds a maximum target pressure value (block 2010) and generating and sending instructions to the pressure regulator 1904 to adjust the mattress pressure in response to determining that the pressure value exceeds the maximum possible sleeper value (blocks 2014-2016), based on a schedule. As a result, the bed controller 1900 may perform these actions in the process 2000 only during specific times and / or as a result of the occurrence of specific events, such as when the user is asleep. Doing so may be beneficial to ensure that the user experiences continuous, uninterrupted, comfortable, and / or high-quality sleep that is not interrupted by changes in bed pressure within a safe pressure range that does not risk damaging the hardware of the system 2000.
[0206] 21 is a flowchart of a process 2100 for regulating pressure in a bed system to protect the bed system from an overpressure event when a heating routine is activated. Process 2100 may be performed by the bed controller 1900 described herein. Process 2100 may also be performed by one or more other components of a data processing system and / or one or more other computing systems, computing devices, networks of devices, and / or cloud-based systems. For illustrative purposes, process 2100 is described from the perspective of a controller.
[0207] Referring to process 2100, the controller may receive a user input of a user-desired pressure value at block 2102. The user input may be received at some time other than when one or more of blocks 2104-2118 are executed in process 2100. For example, the user input may be received when the bed system is set up for the user. As another example, the user input may be received whenever the user decides to change or otherwise set their user-desired pressure value. The user-desired pressure value may be the firmness level to which the user wants their bed system set whenever the user goes to sleep. The user-desired pressure value may be an integer (e.g., a number) on a scale such as "1 to 100," as described throughout this disclosure. A value of "1" may indicate the lowest firmness level (e.g., the minimum pressure in the air chamber of the mattress of the bed system), and a value of "100" may indicate the highest firmness level (e.g., the highest or maximum pressure in the air chamber of the mattress of the bed system). In the exemplary embodiment of process 2100 of FIG. 21, the user-desired pressure value may be "65."
[0208] In block 2104, the controller may adjust the bed to a user-desired pressure value. For example, the controller may receive a pressure reading from at least one pressure sensor in the bed system. The controller may determine a change in pressure between the pressure reading and a pressure value corresponding to the user-desired pressure value. Based on the change, the controller may execute commands that may cause a pressure regulator (e.g., pressure regulator 1904, a pump, etc.) to inflate or deflate the mattress's air chamber(s) until the user-desired pressure value is achieved. In the exemplary embodiment of process 2100 of FIG. 21, the controller may determine that the bed's current pressure corresponds to a pressure value of "43." The controller may execute commands that may cause the pressure regulator to increase the pressure in the mattress's air chamber(s) until the pressure value increases from "43" to the user-desired pressure value of "65."
[0209] The controller may also activate a heating routine in the bed at block 2108. For example, during the day or a predetermined amount of time before the user gets into bed and goes to sleep, the controller may activate a heating routine (e.g., increase the heat or cool down) so that the bed can achieve the temperature desired by the user when the user goes to sleep. In some implementations, block 2108 may be performed simultaneously with block 2104. In some implementations, block 2108 may be performed before block 2104. In the illustrative example of process 2100 of FIG. 21 , a user may set a heating routine to increase the temperature of the bed to 35° C. two hours before the user is expected to go to bed. Thus, two hours before the user's expected time of going to bed, the controller may activate a heating routine to warm the user's bed.
[0210] The controller may detect an increase in pressure resulting from activation of the heating routine (block 2110). The controller may continue to receive pressure readings from at least one sensor throughout process 2100. Thus, the controller may monitor changes in pressure while the heating routine is activated. Eventually, an increase in temperature within the mattress's air chamber(s) may result in an increase in pressure within the air chamber(s). The increased pressure may exceed the user-desired pressure value. In the illustrative example of process 2100 of FIG. 21, the controller may detect that the pressure within the mattress's air chamber(s) has increased to a value corresponding to a pressure value of "75," which is greater than the user-desired pressure value of "65." Although the pressure within the mattress has increased as a result of activating the heating routine, the controller may not yet deflate the mattress's air chamber(s) to the user-desired pressure value.
[0211] Instead, the controller may first detect the user's entry into bed (block 2112). Block 2112 may be executed at some point after any of blocks 2102-2110. For example, the user's entry into bed may not be detected until several hours after the heating routine is activated and / or several hours after the pressure in the air chamber(s) is detected as increasing. In some implementations, block 2112 may be executed closer to any of blocks 2102-2110.
[0212] A user's entry into bed can be identified based on detecting a change in pressure, such as a sudden spike in pressure readings. For example, when a user sits on the bed, this sudden movement can cause a pressure spike. On the other hand, when the pressure in the air chamber(s) changes due to the activation of a heating routine, the pressure change can occur more gradually over time. Thus, the controller can detect that a user has entered the bed system by identifying a sudden spike in pressure readings received from at least one sensor of the bed system. In an exemplary embodiment of process 2100 of FIG. 21, when a user enters bed, the pressure reading can suddenly spike from a value corresponding to a pressure value of "75" to a value corresponding to a pressure value of "110."
[0213] Thus, the controller may determine an increased pressure value for the bed as a result of the detected user entering bed (block 2114). As previously described, the controller may correlate the sudden spike in pressure readings with a pressure value on a scale of "1 to 100." Here, the controller correlates the sudden spike with a pressure value of "110."
[0214] The controller may then determine whether the increased pressure value exceeds the user-desired pressure value in block 2116. If the increased pressure value does not exceed the user-desired pressure value, the controller may execute block 2218 of process 2200 of FIG. 22. In essence, the controller may generate a command to inflate the bed to the user-desired pressure value. Ultimately, a pressure reduction event may exist, which may reduce the accuracy of the bed system monitoring technology and reduce the user's sleep quality and comfort. In some implementations, process 2100 may stop in block 2116 if the increased pressure value is less than the user-desired pressure value. Alternatively, the controller may return to one or more other blocks of process 2100, such as block 2110. In block 2110, the controller detects an increase in the bed pressure as a result of the heating routine being activated. Thus, the controller may continue to monitor the pressure change in the bed and determine whether an overpressure event occurs, in which the bed pressure value exceeds the user-desired pressure value.
[0215] If, at block 2116, the increased pressure value exceeds the user-desired pressure value, the controller may generate a command to deflate the bed to the user-desired pressure value (block 2118). In the exemplary embodiment of process 2100 of FIG. 21, the controller may generate a command to cause the pressure regulator to deflate the air chamber(s) from a current pressure corresponding to a pressure value of "110" until a pressure reading corresponding to a user-desired pressure value of "65" is detected. Once the pressure reaches the user-desired pressure value of "65," process 2100 may stop. In some implementations, process 2100 can continue to run while the user is in bed, while the user is asleep, and / or while the user is out of bed (e.g., the user wakes up the next morning).
[0216] In some implementations, the controller may generate a command to cause the bed to deflate to the maximum possible Sleeper value of the bed system. The maximum possible Sleeper value, as described herein, may be "100" (e.g., the highest firmness level of the mattress). The bed may be deflated to the maximum possible Sleeper value in scenarios where the user is not in bed or where the user is no longer in bed. As a result, the user's comfort and / or sleep quality are not disturbed or otherwise negatively affected. The bed may also be deflated to the maximum possible Sleeper value (block 2102) even in scenarios where the user has not set a user-desired pressure value. In some implementations, the bed may be deflated to the maximum possible Sleeper value in scenarios where a particular user monitoring technique is being performed in which the maximum possible Sleeper value provides the most accurate detection of the user's biometric signals.
[0217] 22 is a flowchart of a process 2200 for adjusting the pressure in a bed system to protect the bed system from a pressure reduction event, such as an environmental change. The process 2200 may be performed in a scenario where an environmental change, such as a change in pressure, altitude, and / or temperature in the surrounding environment, reduces the pressure in the air chamber of the mattress of the bed system. As a result of the pressure reduction, the process 2200 may be performed to inflate the mattress to a user-desired pressure value.
[0218] Process 2200 may be performed by the bed controller 1900 described herein. Process 2200 may also be performed by one or more other components of a data processing system and / or one or more other computing systems, computing devices, networks of devices, and / or cloud-based systems. For purposes of illustration, process 2200 is described from the perspective of a controller.
[0219] Referring to process 2200, the controller may receive input of a user-desired pressure value at block 2202. For additional explanation, see block 2102 of process 2100 in Figure 21. As an illustrative example of process 2200, the user-desired pressure value may be "65."
[0220] The controller may adjust the bed to the user-desired pressure value in block 2204. See block 2104 of process 2100 of Figure 21 for additional explanation.
[0221] In block 2208, the controller may detect an environmental change. The environmental change may result from a weather event such as a storm. For example, during a storm, the environmental air pressure may decrease. The decrease in air pressure may also decrease the pressure in the mattress's air chamber(s). The environmental change may include, but is not limited to, a change in altitude (e.g., a user moving the bed system from sea level to a mountainous area) and a change in environmental temperature (e.g., a cold front moving in causing a sudden drop in the outside temperature). The environmental change may be user-initiated or user-initiated. A user-initiated or user-initiated environmental change may include a user turning on an environmental cooling system, such as an AC (air conditioner), in the environment surrounding the bed system. A user-initiated or user-initiated environmental change may include a change in humidity, including from activating a humidifier or dehumidifier. A user-initiated or user-initiated environmental change may include activating a cooling routine in the bed system. A decrease in the environmental temperature surrounding the bed or the temperature of the bed may result in a decrease in the pressure in the mattress's air chamber(s).
[0222] In some implementations, the controller may not detect an environmental change and may simply proceed to block 2210. As an illustrative example of process 2200, the environmental change may be a storm causing low environmental pressure.
[0223] The controller may detect a decrease (drop) in pressure from an environmental change at block 2210. For additional discussion regarding detecting a change in pressure, see block 2110 of process 2100 of Figure 21. In an exemplary implementation of process 2200, the controller may detect that the pressure in the mattress air chamber(s) has dropped from a user-desired pressure value of "65" to a pressure value of "55."
[0224] The controller may also detect a user going to bed in block 2212. See block 2112 of process 2100 of FIG. 21 for additional discussion regarding detecting a user going to bed.
[0225] The controller may determine an increased pressure value as a result of the bed entry (block 2214). For additional discussion regarding determining an increased pressure value, see block 2114 in process 2100 of Figure 21. In an exemplary implementation of process 2200, the controller may determine that the bed pressure value increased from "55" to "60" when the user entered the bed.
[0226] In block 2216, the controller may determine whether the increased pressure value is less than the user-desired pressure value. For additional discussion regarding this determination, see block 2116 of process 2100 in FIG. 21 . In an exemplary embodiment of process 2200, the controller may determine that the increased pressure value of "60" is still less than the user-desired pressure value of "65." Therefore, the bed system is under-inflated. As a result of the under-inflated condition, the bed system's user monitoring technology (e.g., biometric monitoring, health monitoring, sleep quality monitoring, etc.) may not be accurate. Furthermore, as a result of the under-inflated condition, the user may not experience as comfortable and / or good quality sleep as if the bed system were set to the user-desired pressure value of "65."
[0227] If the increased pressure value is less than the user-desired pressure value, the controller may generate a command to inflate the bed to the user-desired pressure value in block 2218. For additional discussion regarding generating such a command, see block 2118 in process 2100 of FIG. 21 . In some implementations, the controller may generate a command to inflate the air chamber(s) of the mattress of the bed system to the maximum possible Sleeper value, which may be "100." In an example example of process 2200, the controller may generate a command to increase the pressure value from "60" to the user-desired pressure value of "65."
[0228] When a user-desired pressure value of "65" is detected in the bed system, process 2200 may stop. In some implementations, process 2200 may be repeated. In some implementations, one or more of the blocks may be repeated in process 2200. For example, the controller may return to blocks 2208 and / or 2210 to continuously monitor pressure changes in the bed system during the user's sleep session. Continuous monitoring of pressure changes may ensure that the bed system is maintained at the user-desired pressure value for both accurate monitoring purposes and a comfortable and quality sleep experience for the user.
[0229] If the increased pressure value in block 2216 is not less than the user-desired pressure value, the controller may execute block 2118 of process 2100 of FIG. 21 . In other words, the controller may generate a command to deflate the bed to the user-desired pressure value. Consequently, if the increased pressure value in block 2216 is greater than the user-desired pressure value, an overpressure event has occurred, and the monitoring technology of the bed system may be impaired. Decreasing (reducing) the pressure in the mattress air chamber(s) of the bed system may eliminate the overpressure event and ensure that the monitoring technology of the bed system continues to function accurately. Decreasing (reducing) the pressure in such a scenario may be beneficial to ensure that the user maintains good quality sleep and comfort during the sleep session.
[0230] Alternatively, process 2200 may stop if the increased pressure value at block 2216 is greater than the user-desired pressure value. In some implementations, the controller may return to one or more other blocks in process 2200, such as block 2208 and / or block 2210, to continuously monitor pressure changes in the bed system during the user's sleep session.
[0231] 23 is a flowchart of a process 2300 for determining when to adjust the pressure in a bed system according to the techniques described herein. As described throughout this disclosure, the controller of the bed system may continuously monitor pressure changes in the bed system (e.g., while the user is in bed, during the day when the user is not in bed, when a heating or cooling routine is activated in the bed, etc.). However, the controller may not perform a thermal calibration to adjust the pressure in the bed system unless one or more conditions are met, as described in process 2300.
[0232] Process 2300 may be performed by the bed controller 1900 described herein. Process 2300 may also be performed by one or more other components of a data processing system and / or one or more other computing systems, computing devices, networks of devices, and / or cloud-based systems. For purposes of illustration, process 2300 is described from the perspective of a controller.
[0233] Referring to process 2300, the controller may identify a user for admission to bed (block 2302) or may determine that a threshold time (amount of time) has elapsed (block 2304). The controller may identify a user for admission to bed in block 2302 using techniques described throughout this disclosure. In block 2304, the threshold time may be varied. The threshold time may be a schedule. The threshold time may be every predetermined amount of seconds, every predetermined amount of minutes, or every predetermined amount of hours. As an illustrative example, block 2304 may be met / executed every 15 seconds. This means that the controller may proceed to block 2306 every 15 seconds, regardless of whether admission to bed was identified in block 2302. One or more other threshold times (e.g., schedules) may be used.
[0234] When either block 2302 or block 2304 is satisfied / executed, the controller may execute block 2306, in which the controller performs a thermal calibration. In some implementations, the computer system may proceed to block 2306 if both block 2302 and block 2304 are executed. Performing a thermal calibration may include deflating an air chamber of a mattress of the bed system to reach a user-desired pressure value (block 2308). For additional description, see process 2100 in FIG. 21 . Performing a thermal calibration may also include inflating an air chamber to reach a user-desired pressure value (block 2310). For additional description, see process 2200 in FIG. 22 . In some implementations, the controller may generate instructions to deflate (block 2308) or inflate (block 2310) the bed system to reach a maximum possible sleeper value, as described throughout this disclosure.
Claims
1. 1. A system having features for protecting an air mattress from an overpressure event, comprising: a bed having a mattress with one or more air chambers; a pressure regulator configured to regulate pressure within the mattress; one or more pressure sensors; a controller having a processor and a memory; Equipped with Each sensor is Sense the pressure of the mattress; Transmitting pressure readings to the controller It is structured as follows: The controller receiving pressure readings from each of said pressure sensors; determining a pressure value of the mattress; determining whether the pressure value of the mattress exceeds a maximum target pressure corresponding to a maximum possible sleeper value; In response to determining that the pressure value of the mattress exceeds the maximum possible sleeper value, sending a command to the pressure regulator to adjust the pressure of the mattress. It is structured as follows: the maximum possible sleeper value is the maximum sleeper value defining the firmness of the mattress; The bed has a maximum operating value that describes the maximum pressure at which the system will function normally. A system characterized by:
2. The commands sent to the pressure regulator to adjust the pressure in the mattress include commands to reduce the pressure to the maximum target pressure.
2. The system of claim 1.
3. The instructions sent to the pressure regulator to adjust the pressure in the mattress include instructions to decrease the pressure value to a pressure corresponding to a selected sleeper value that is less than the maximum possible sleeper value.
2. The system of claim 1.
4. The one or more air chambers of the mattress are configured to increase in pressure due to one or more of the following influences: environmental temperature, humidity, sleeper temperature, air pressure, and altitude.
2. The system of claim 1.
5. The controller further comprises: determining that the sleeper has entered the bed; Responsively determining whether the pressure value of the mattress exceeds the maximum possible sleeper value. It is configured as follows:
2. The system of claim 1.
6. The Maximum Possible Sleeper Value is 100, which represents the maximum firmness of the mattress selectable by the user.
6. A system according to any one of claims 1 to 5.
7. the selected sleeper value is input by the user into a user interface as an integer within one of the group consisting of: i) 1 to 100; and ii) the selected sleeper value is not associated with a unit value; The pressure value of the mattress is a non-integer associated with a unit of pressure. The system of claim 6 .
8. Based on the schedule, the controller: The device is configured to disable and enable the following operations: determining whether the pressure value of the mattress exceeds a maximum target pressure corresponding to a maximum possible sleeper value, which is the maximum value of a sleeper value that defines the firmness of the mattress; and sending a command to the pressure regulator to adjust the pressure of the mattress in response to determining that the pressure value of the mattress exceeds the maximum possible sleeper value.
6. A system according to any one of claims 1 to 5.
9. The controller further comprises: activating a heating routine in said bed; determining an increase in the pressure value of the mattress based on activation of the heating routine; responsively determining whether the increased pressure value of the mattress exceeds the maximum possible sleeper value; responsively transmitting a command to the pressure regulator to reduce the increased pressure value to a pressure corresponding to the maximum possible sleeper value. It is configured as follows:
6. A system according to any one of claims 1 to 5.
10. The controller further comprises: Detecting when a user enters bed; determining that the user's entry into bed caused an increase in the increased pressure value of the mattress; responsively transmitting a command to the pressure regulator to reduce the increased pressure value to a pressure corresponding to the maximum possible sleeper value. It is configured as follows:
10. The system of claim 9.
11. The controller activating a heating routine in said bed; determining an increase in the pressure value of the mattress based on activation of the heating routine; responsively determining whether the increased pressure value of the mattress exceeds a selected sleeper value that is less than the maximum possible sleeper value; responsively transmitting a command to the pressure regulator to reduce the increased pressure value to a pressure corresponding to the selected sleeper value. It is configured as follows:
6. A system according to any one of claims 1 to 5.
12. The controller further comprises: Detecting when a user enters bed; determining that the user's entry into bed caused an increase in the increased pressure value of the mattress; responsively transmitting a command to the pressure regulator to reduce the increased pressure value to a pressure corresponding to the selected sleeper value. It is further configured as follows:
6. A system according to any one of claims 1 to 5.
13. The controller further comprises: detecting a decrease in the pressure value of the mattress as a result of an environmental change; Detecting when a user enters bed; determining an increase in the pressure value of the mattress based on the user entering bed; responsively determining whether the increased pressure value of the mattress is less than a selected sleeper value; responsively transmitting a command to the pressure regulator to increase the increased pressure value to a pressure corresponding to the selected sleeper value. It is configured as follows:
6. A system according to any one of claims 1 to 5.
14. The environmental change is a decrease in air pressure in the environment surrounding the bed.
14. The system of claim 13.
15. The environmental change is a decrease in temperature in the environment surrounding the bed.
14. The system of claim 13.
16. The environmental change is a change in humidity in the environment surrounding the bed.
14. The system of claim 13.
17. The environmental change is the initiation of a cooling routine in the environment surrounding the bed.
14. The system of claim 13.
18. The environmental change is the activation of a cooling routine in the bed.
14. The system of claim 13.
19. The controller is further configured to detect the environmental change.
14. The system of claim 13.
20. The controller further comprises: determining a decrease in the pressure value of the mattress as a result of an environmental change; responsively determining whether the reduced pressure value of the mattress is less than a selected sleeper value; responsively transmitting a command to the pressure regulator to increase the reduced pressure value to a pressure corresponding to the selected sleeper value. It is configured as follows:
6. A system according to any one of claims 1 to 5.