Bed with features for determining risk of insomnia
By installing sensors on the bed and using machine learning classifiers to monitor users' physiological phenomena in real time and generate insomnia risk measurements, the problem of difficulty in effectively monitoring and preventing insomnia in the existing technology is solved, and personalized sleep environment and automated peripheral control are realized, and sleep quality is improved.
Patent Information
- Application Number
- CN202380059694.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-09-08
- Filing Date
- 2023-09-06
- Publication Date
- 2025-03-28
AI Technical Summary
The prior art is difficult to effectively monitor and prevent insomnia, especially in terms of personalized sleep environments and automated peripheral controls.
By installing sensors on the bed, monitoring users' physiological phenomena such as breathing rate, heart rate, and movement in real time, utilizing machine learning classifiers to generate insomnia risk metrics and reporting in a graphical user interface, automating the activation or disabling of peripherals to optimize the sleep environment.
Real-time monitoring and early warning of users' insomnia risks is achieved, and the sleep quality and user experience are improved through personalized sleep environment and automated peripheral control.
Smart Images

Figure CN119730786A_ABST
Abstract
Description
[0001] This document deals with the automation of consumer devices such as air beds, processing sensor readings, and classifying the data.
[0002] CROSS-REFERENCE TO RELATED APPLICATIONS
[0003] This application claims the benefit of U.S. Provisional Application Serial No. 63 / 404,589, filed on September 8, 2022. The disclosure of that prior application is considered part of the disclosure of the present application, and its entirety is incorporated into the present application. Background Art
[0004] Generally speaking, a bed is a piece of furniture for sleeping or relaxing. Many modern beds include a soft mattress on a bed frame. The mattress may include springs, foam materials and / or air chambers to support the weight of one or more occupants. Summary of the invention
[0005] A system of one or more computers may be configured to perform specific operations or actions by installing software, firmware, hardware, or a combination thereof on the system, which software, firmware, hardware, or a combination thereof causes or causes the system to perform actions in operation. One or more computer programs may be configured to perform specific operations or actions by including instructions that, when executed by a data processing device, cause the device to perform an action. A general aspect includes a bed having a mattress. The system also includes one or more sensors configured to: sense a physiological phenomenon of a user of the bed, and generate one or more data streams based on the sensing of the physiological phenomenon of the user. The system also includes a computing system, which may include at least one processor and a computer memory, and the computing system is configured to: receive one or more data streams, and use the one or more data streams to generate an insomnia risk metric for the user reflecting the risk that the user will experience or is experiencing symptoms consistent with insomnia. Other embodiments of this aspect include corresponding computer systems, devices, beds, and computer programs recorded on one or more computer storage devices, each of which is configured to perform the actions of the method.
[0006] Specific implementations may include one or more of the following features. The computing system in the system is further configured to report an insomnia risk metric in a graphical user interface (GUI). The computing system is further configured to enable one or more automated peripherals based on the insomnia risk metric. The system is further configured to enable automated peripherals according to a regular daily schedule, and the enabling of the automated system may include providing a first environmental stimulus to the user at the user's bedtime. The regular schedule may include providing a second environmental stimulus to the user at the user's wake-up time. In order to generate an insomnia risk metric, the computing system is configured to provide the user's sleep data as input to an insomnia risk classifier and receive the insomnia risk metric as output, wherein the insomnia risk classifier may include a model defining the relationship between sleep data and insomnia risk. The sleep data is a feature vector created based on the user's sleep data across multiple sleep periods. The feature vector may include features for each of the following: i) breathing rate, ii) heart rate, iii) movement, iv) sleep quality, v) sleep duration, vi) restful sleep duration, and vii) time to sleep. The feature vector may include features for i) average heart rate, ii) percentage of exercise, iii) rest time, iv) breathing rate, v) sleep loss, vi) sleep duration, and vii) sleep quality. The feature vector may include features for i) sleep quality and ii) sleep quality deviation. The model is created by performing machine learning analysis on training sleep data and training sets of insomnia risk. The machine learning classifier is implemented as a random forest. Specific implementations of the described technology may include hardware, methods or processes or computer software on a computer accessible medium.
[0007] The details of one or more specific implementations are illustrated in the accompanying drawings and the description below. Other features, aspects and potential advantages will be apparent from the accompanying description and drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0008] Figure 1 An example air bed system is shown.
[0009] Figure 2 is a block diagram of an example of various components of an air bed system.
[0010] Figure 3 An example environment is shown including a bed in communication with devices in and around the home.
[0011] Figure 4A and Figure 4B is a block diagram of an example data processing system that may be associated with a bed.
[0012] Figure 5 and Figure 6is a block diagram of an example of a motherboard that may be used in a data processing system associated with a bed.
[0013] Figure 7 is a block diagram of an example of a daughter board that may be used in a data processing system associated with a bed.
[0014] Figure 8 is a block diagram of an example of a motherboard without a daughterboard that may be used in a data processing system associated with a bed.
[0015] Fig. 9A is a block diagram of an example of a sensor array that may be used in a data processing system associated with a bed.
[0016] Fig. 9B is a schematic top view of an example bed with a sensor bar having one or more sensors that may be used in a data processing system associated with the bed.
[0017] Fig. 9C is a schematic diagram of an example bed with force sensors located at the bottom of the legs of the bed.
[0018] Fig.10 is a block diagram of an example of a control array that may be used in a data processing system associated with a bed.
[0019] Fig.11 is a block diagram of an example of a computing device that may be used in a data processing system associated with a bed.
[0020] Figures 12 to 16 is a block diagram of an example cloud service that may be used in a data processing system associated with a bed.
[0021] Fig.17 is a block diagram of an example of using an information processing system that may be associated with a bed to automate peripheral devices around the bed.
[0022] Fig.18 is a schematic diagram illustrating examples of computing devices and mobile computing devices.
[0023] Fig.19 is a block diagram of an example system for determining risk of insomnia.
[0024] Fig. 20 is a block diagram of an example system with computing elements and data.
[0025] Fig.21 Data showing a system for determining risk of insomnia.
[0026] Fig. 22 is a swim lane diagram of an example process for determining insomnia risk, reporting insomnia risk, and / or operating a computer-controlled automation based on insomnia risk.
[0027] Like reference numbers in the various drawings indicate like elements. DETAILED DESCRIPTION
[0028] A sleeper's insomnia risk metric may be calculated based on automatic sensing of sleep data. For example, a bed may have sensors to create ballistocardiography data from which a machine learning classifier may generate a metric.
[0029] Example Air Bed Hardware
[0030] Figure 1 An example air bed system 100 is shown that includes a bed 112. The bed 112 can be a mattress that includes at least one air chamber 114 surrounded by an elastic boundary 116 and enclosed by a mattress pad 118. The elastic boundary 116 can include any suitable material, such as foam. In some embodiments, the elastic boundary 116 can be combined with a top layer or multiple layers of foam ( Figure 1 In other embodiments, the mattress structure can be varied depending on the application.
[0031] like Figure 1 As shown, the bed 112 can be a dual chamber design having a first fluid chamber and a second fluid chamber (such as a first air chamber 114A and a second air chamber 114B). Sometimes, the bed 112 may include a chamber for use with a fluid other than air suitable for the application. For example, the fluid may include a liquid. In some embodiments, such as a single bed or a crib, the bed 112 may include a single air chamber 114A or 114B or multiple air chambers 114A and 114B. Although not shown, sometimes the bed 112 may include additional air chambers.
[0032] The first air chamber 114A and the second air chamber 114B can be in fluid communication with the pump 120. The pump 120 can be electrically communicated with the remote control 122 via the 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 based on commands entered by the user using the remote control 122 to cause the fluid pressure of the first air chamber 114A and the second air chamber 114B to increase and decrease. In some specific implementations, the control box 124 is integrated into the housing of the pump 120. In addition, sometimes, the pump 120 can be wirelessly communicated with the mobile device via the control box 124 (e.g., via a home network, WIFI, Bluetooth or other wireless network). The mobile device may include but is not limited to the user's smart phone, cellular phone, laptop, tablet computer, computer, wearable device, home automation device or other computing device. The mobile application may be presented at the mobile device and provide the user with the functionality of controlling the bed 112 and viewing information about the bed 112. The user can enter commands in the mobile application presented at the mobile device. The input commands may be transmitted to the control box 124 , which may operate the pump 120 based on the commands.
[0033] The remote controller 122 may include a display 126, an output selection mechanism 128, a pressure increase button 129, and a pressure decrease button 130. The remote controller 122 may include one or more additional output selection mechanisms and / or buttons. The display 126 may present information about the settings of the bed 112 to the user. For example, the display 126 may present the pressure settings of both the first air chamber 114A and the second air chamber 114B or the pressure settings of one of the first air chamber 114A and the second air chamber 114B. Sometimes, the display 126 may be a touch screen and may receive input from the user indicating one or more commands to control the pressure in the first air chamber 114A and the second air chamber 114B and / or other settings of the bed 112.
[0034] The output selection mechanism 128 can allow the user to switch the air flow generated by the pump 120 between the first air chamber 114A and the second air chamber 114B, thereby enabling the control of multiple air chambers using a single remote control 122 and a single pump 120. For example, the output selection mechanism 128 can be implemented by a physical control (e.g., a switch or button) or an input control presented on the display 126. Alternatively, a separate remote control unit can be provided for each air chamber 114A and 114B, and each remote control unit may include the ability to control multiple air chambers. The pressure increase button 129 and the pressure reduction button 130 can allow the user to increase or decrease the pressure in the air chamber selected by the output selection mechanism 128, respectively. Adjusting the pressure in the selected air chamber can cause a corresponding adjustment to the hardness of the corresponding air chamber. In some embodiments, the remote control 122 can be omitted or modified to be suitable for the application.
[0035] Figure 2 1 is a block diagram of an example of various components of an air bed system. These components can be used in the example air bed system 100. 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 can be, for example, a relay or a solid-state switch. In some specific implementations, the switching mechanism 138 can be located in the pump 120 instead of the control box 124. The pump 120 and the remote control 122 can communicate bidirectionally with the control box 124. The pump 120 includes a motor 142, a pump manifold 143, a safety valve 144, a first control valve 145A, a second control valve 145B, and a pressure transducer 146. The pump 120 is connected to the first air chamber 114A and the second air chamber 114B fluid via a first tube 148A and a second tube 148B, respectively. The first control valve 145A and the second control valve 145B may be controlled by the switching mechanism 138 and may be operable to regulate the flow of fluid between the pump 120 and the first air chamber 114A and the second air chamber 114B, respectively.
[0036] In some implementations, the pump 120 and the control box 124 can be provided and packaged as a single unit. In some implementations, the pump 120 and the control box 124 can be provided as physically separate units. The control box 124, the pump 120, or both can be integrated into or otherwise contained within a bed frame, base, or bed support structure supporting the bed 112. The control box 124, the pump 120, or both can be located external to the bed frame, base, or bed support structure (e.g., Figure 1 ).
[0037] Figure 2 The air bed system 100 includes Figure 1100 and a single pump 120. However, other embodiments may include an air bed system having two or more air chambers and one or more pumps incorporated into the air bed system to control the air chambers. For example, a separate pump may be associated with each air chamber. As another example, a pump may be associated with multiple chambers. A first pump may be associated with an air chamber that extends longitudinally from the left side to the midpoint of the air bed system 100, and a second pump may be associated with an air chamber that extends longitudinally from the right side to the midpoint of the air bed system 100. A separate pump may allow each air chamber to be inflated or deflated independently and / or simultaneously. Additional pressure transducers may also be incorporated into the air bed system 100 so that a separate pressure transducer may be associated with each air chamber.
[0038] As an illustrative example, in use, the processor 136 may send a pressure reduction command to one of the air chambers 114A or 114B, and the switching mechanism 138 may convert the low pressure command signal sent by the processor 136 to a higher operating voltage sufficient to operate the safety valve 144 of the pump 120 and open the corresponding control valve 145A or 145B. Opening the safety valve 144 may allow air to escape from the air chamber 114A or 114B through the corresponding air tube 148A or 148B. During deflation, the pressure transducer 146 may 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 may convert the analog information into digital information that can be used by the processor 136. The processor 136 may send a digital signal to the remote control 122 to update the display 126 to convey the pressure information to the user. The processor 136 may also send the digital signal to other devices that are in wired or wireless communication with the air bed system, including but not limited to the mobile devices described herein. The user may then view pressure information associated with the air bed system on their device instead of, or in addition to, remote control 122.
[0039] As another example, the processor 136 may send an increase pressure command. The pump motor 142 may be energized in response to the increase pressure command and send air to a designated air chamber in the air chambers 114A or 114B through the air tube 148A or 148B via electronically operating the corresponding valve 145A or 145B. When air is delivered to the designated air chamber 114A or 114B to increase the air chamber stiffness, the pressure transducer 146 may sense the pressure within the pump manifold 143. The pressure transducer 146 may send a pressure reading to the processor 136 via the A / D converter 140. The processor 136 may use the information received from the A / D converter 140 to determine the difference between the actual pressure in the air chamber 114A or 114B and the desired pressure. The processor 136 may send a digital signal to the remote control 122 to update the display 126.
[0040] Generally speaking, during inflation or deflation, the pressure sensed within the pump manifold 143 can provide an approximation of the actual pressure within the corresponding air chamber in fluid communication with the pump manifold 143. An example method includes shutting down the pump 120, thereby allowing the pressure within the air chamber 114A or 114B and the pump manifold 143 to equalize, and then sensing the pressure within the pump manifold 143 with the pressure transducer 146. Providing a sufficient amount of time to allow the pressure within the 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 within the air chamber 114A or 114B. In some specific implementations, the pressure of the air chamber 114A and / or 114B can be continuously monitored using multiple pressure sensors (not shown). The pressure sensor can be positioned within the air chamber. The pressure sensor can also be fluidly connected to the air chamber, such as along air tubes 148A and 148B.
[0041] In some specific implementations, the information collected by the pressure transducer 146 can be analyzed to determine various states of the user lying on the bed 112. For example, the processor 136 can use the information collected by the pressure transducer 146 to determine the heart rate or breathing rate of the user. As an illustrative example, the user can lie on the side of the bed 112 including the chamber 114A. The pressure transducer 146 can monitor the pressure fluctuations of the chamber 114A, and this information can be used to determine the heart rate and / or breathing rate of the user. As another example, the collected data can be used to perform additional processing to determine the user's sleep state (e.g., wakefulness, light sleep, deep sleep). For example, the processor 136 can determine when the user falls asleep and the various sleep states of the user when asleep (e.g., sleep stages). Based on the user's determined heart rate, breathing rate and / or sleep state, the processor 136 can determine information about the user's sleep quality. The processor 136 can, for example, determine the user's sleep quality within a specific sleep cycle. The processor 136 can also determine the user's sleep cycle trend. Therefore, the processor 136 can generate suggestions to improve the user's sleep quality and overall sleep cycle. The information determined about the user's sleep cycle (e.g., heart rate, breathing rate, sleep state, sleep quality, suggestions for improving sleep quality, etc.) can be transmitted to the user's mobile device and presented in the mobile application, as described above.
[0042] Other information associated with the user of the air bed system 100 can be determined using the information collected by the pressure transducer 146, including user movement, presence on the surface of the bed 112, weight, arrhythmia, snoring, partner snoring, and apnea. One or more other health conditions of the user can also be determined based on the information collected by the pressure transducer 146. For example, taking the detection of the presence of the user as an example, the pressure transducer 146 can be used to detect the presence of the user on the bed 112, for example, via total pressure change determination and / or via one or more of a respiratory rate signal, a heart rate signal, and / or other biometric signals. Detecting the presence of the user can facilitate the determination by the processor 136 to adjust the settings of the bed 112 (e.g., adjusting the firmness to the user's preferred firmness setting when the user is present) and / or peripheral devices (e.g., turning off lights, activating a heating or cooling system, etc. when the user is present).
[0043] For example, a simple pressure detection process may identify an increase in pressure as an indication of the presence of a user. As another example, if the detected pressure increase is above a specified threshold (so as to indicate that a person or other object above a certain weight is located on the bed 112), the processor 136 may determine that the user is present. As yet another example, the processor 136 may identify an increase in pressure in conjunction with detected slight, regular pressure fluctuations as corresponding to the presence of a user. The presence of regular fluctuations may be identified as being caused by the user's breathing or heart rate (or both). By detecting breathing or heart rate, it may be possible to distinguish whether the user is in bed or has placed other objects (e.g., a suitcase, a pet, a pillow, etc.) on the bed.
[0044] In some implementations, pressure fluctuations can be measured at the pump 120. For example, one or more pressure sensors can be located within one or more cavities of the pump 120 to detect pressure fluctuations within the pump 120. Fluctuations detected at the pump 120 can indicate pressure fluctuations in chambers 114A and 114B. One or more sensors located at the pump 120 can be in fluid communication with chambers 114A and / or 114B, and the sensors can be operable to determine the pressure within chambers 114A and / or 114B. The control box 124 can be configured to determine at least one vital sign (e.g., heart rate, respiratory rate) based on the pressure within chamber 114A or chamber 114B.
[0045] The control box 124 can also analyze the pressure signals detected by one or more pressure sensors to determine the heart rate, breathing rate, and / or other vital signs of the user lying or sitting on the chambers 114A and / or 114B. More specifically, when the user lies on the bed 112 and is located above the chamber 114A, each of the user's heartbeat, breathing, and other movements (e.g., hand, arm, leg, foot, or other gross body movements) can generate a force on the bed 112 that is transmitted to the chamber 114A. Due to this force input, a wave can propagate through the chamber 114A and enter the pump 120. The pressure sensor located at the pump 120 can detect the wave, and thus the pressure signal output by the sensor can indicate the heart rate, breathing rate, or other information about the user.
[0046] Regarding the sleep state, the air bed system 100 can determine the sleep state of the user by using various biometric signals such as the user's heart rate, breathing, and / or movement. When the user is sleeping, the processor 136 can receive one or more of the user's biometric signals (e.g., heart rate, breathing, movement, etc.), and can determine the user's current sleep state based on the received biometric signals. In some specific implementations, the signal indicating the pressure fluctuations in one or both of chambers 114A and 114B can be amplified and / or filtered to allow more accurate detection of heart rate and breathing rate.
[0047] At times, processor 136 may receive additional biometric signals of the user from one or more other sensors or sensor arrays positioned on or otherwise integrated into air bed system 100. For example, one or more sensors may be attached or removably attached to the top surface of air bed system 100 and configured to detect signals such as heart rate, breathing rate, and / or motion. Processor 136 may combine biometric signals received from pressure sensors located at pump 120, pressure transducer 146, and / or sensors positioned throughout air bed system 100 to generate accurate and more precise information about the user and their sleep quality.
[0048] Sometimes, the control box 124 may perform a pattern recognition algorithm or other calculation based on the amplified and filtered pressure signal to determine the user's heart rate and / or breathing rate. For example, the algorithm or calculation may be based on the assumption that the heart rate portion of the signal has a frequency in the range of 0.5 Hz to 4.0 Hz, and the breathing rate portion of the signal has a frequency in the range of less than 1 Hz. Sometimes, the control box 124 may use one or more machine learning models to determine the user's health information. The model may be trained using training data including a training pressure signal and an expected heart rate and / or breathing rate. Sometimes, the control box 124 may use a lookup table corresponding to the sensed pressure signal to determine the user's health information.
[0049] The control box 124 may also be configured to determine other characteristics of the user based on the received pressure signals, such as blood pressure, twisting and turning motions, rolling motions, limb movements, weight, presence or absence of the user, and / or identity of the user.
[0050] For example, pressure transducer 146 can be used to monitor the air pressure in chambers 114A and 114B of bed 112. If the user on bed 112 does not move, the air pressure changes in air chambers 114A or 114B can be relatively minimal and can be attributed to breathing and / or heartbeat. However, when the user on bed 112 moves, the air pressure in the mattress can fluctuate by a much larger amount. The pressure signal generated by pressure transducer 146 and received by processor 136 can be filtered and indicated as corresponding to movement, heartbeat, or breathing. Processor 136 can attribute such air pressure fluctuations to the user's sleep quality. Such attributes can be determined based on applying one or more machine learning models and / or algorithms to the pressure signal. For example, if (e.g., compared to the historical trend of the user's sleep cycle) the user moves and turns over many times during the sleep cycle, the processor 136 can determine that the user did not sleep well during that particular sleep cycle.
[0051] In some implementations, a digital signal processor (DSP) can be provided to analyze the data collected by the pressure transducer 146, rather than performing the data analysis in the control box 124 using the processor 136. Alternatively, the collected data can be sent to a cloud-based computing system for remote analysis.
[0052] In some implementations, the example air bed system 100 also includes a temperature controller configured to increase, decrease or maintain the temperature of the bed 112, for example, for the comfort of the user. For example, a pad (e.g., a mat, a layer, etc.) may be placed on or as part of the bed 112, or may be placed on or as part of one or both of the chambers 114A and 114B. Air may be pushed through the pad and exhausted to make the user on the bed 112 feel cool. Additionally or alternatively, the pad may include a heating element for keeping the user warm. In some implementations, the temperature controller may receive a temperature reading from the pad. The temperature controller may determine whether the temperature reading is less than or greater than a certain threshold range and / or value. Based on this determination, the temperature controller may actuate a component to push air through the pad to cool the user or activate a heating element. In some implementations, separate pads are used for different sides of the bed 112 (e.g., corresponding to the positions of the chambers 114A and 114B) to provide different temperature controls for different sides of the bed 112. Each pad may be selectively controlled by the temperature controller to provide each user's preferred cooling or heating on a different side of the bed 112. For example, a first user on the left side of the bed 112 may prefer to have the bed 112 cooler on their side at night, while a second user on the right side of the bed 112 may prefer to have the bed 112 warmer on their side at night.
[0053] In some embodiments, a user of the air bed system 100 may use an input device such as a remote control 122 or a mobile device as described above to input a desired temperature for the surface of the bed 112 (or a portion of the surface of the bed 112, such as at the foot region, waist or lumbar region, shoulder region, and / or head region of the bed 112). The desired temperature may be encapsulated in a command data structure that includes the desired temperature and also identifies the temperature controller as the desired component to be controlled. The command data structure may then be transmitted to the processor 136 via Bluetooth or another suitable communication protocol (e.g., WIFI, local network, etc.). In various examples, the command data structure is encrypted prior to transmission. The temperature controller may then configure its elements to increase or decrease the temperature of the pad based on the temperature input provided by the user at the remote control 122.
[0054] In some implementations, data can be transmitted from the components back to the processor 136 or one or more display devices (such as the display 126 of the remote control 122). For example, the current temperature determined by the sensor element of the temperature controller, the pressure of the bed, the current position of the base, or other information can be transmitted to the control box 124. The control box 124 can transmit this information to the remote control 122 for display to the user (e.g., on the display 126). As described above, the control box 124 can also transmit the received information to the mobile device for display to the user in a mobile application or other graphical user interface (GUI).
[0055] In some implementations, the example air bed system 100 further includes an adjustable base and an articulation controller configured to adjust the position of the 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 of the bed's mattress is tilted upward (e.g., to facilitate a user sitting on the bed and / or watching television). The bed 112 can also include multiple individually engageable portions. As an illustrative example, the bed 112 can include one or more of a head portion, a waist / waist portion, a leg portion, and / or a foot portion, all of which can be individually articulated. As another example, portions of the bed 112 corresponding to the positions of chambers 114A and 114B can be articulated independently of one another to allow one user positioned on the surface of the bed 112 to rest in a first position (e.g., a flat position or other desired position) while a second user rests in a second position (e.g., a reclining position with the head raised at an angle to the waist or another desired position). Separate positions can also be set for two different beds (e.g., two single beds placed adjacent to each other). The base of the bed 112 may include more than one independently adjustable zone.
[0056] Sometimes, the bed 112 can be adjusted to one or more user-defined positions based on user input and / or user preferences. For example, the bed 112 can be automatically adjusted to one or more user-defined settings via an articulation controller. As another example, the user can control the articulation controller to adjust the bed 112 to one or more user-defined positions. Sometimes, the bed 112 can be adjusted to one or more positions, which can provide improved sleep and sleep quality for the user or otherwise improve sleep and sleep quality. For example, when one or more sensors of the air bed system 100 detect that a user sleeping on one side of the bed 112 is snoring, the head portion on that side of the bed 112 can be automatically articulated via an articulation controller. Therefore, the user's snoring can be alleviated so that the snoring does not wake up another user sleeping on the bed 112.
[0057] In some implementations, one or more devices in communication with or in place of the articulation controller may be used to adjust the bed 112. For example, a user may use the remote control 122 described above to change the position of one or more portions of the bed 112. The user may also adjust the bed 112 using a mobile application or other graphical user interface presented at the user's mobile computing device.
[0058] The articulation controller may also provide one or more users with different levels of massage for one or more portions of the bed 112. The user may adjust one or more massage settings for various portions of the bed 112 using the remote control 122 and / or a mobile device in communication with the air bed system 100.
[0059] Example of a bed in a bedroom environment
[0060] Figure 3 An example environment 300 is shown that includes a bed 302 that communicates with devices in and around the home. In the example shown, the bed 302 includes a pump 304 (described above) for controlling the air pressure within two air chambers 306a and 306b. The pump 304 also includes a circuit 334 for controlling the inflation and deflation functions performed by the pump 304. The circuit 334 is programmed to detect air pressure fluctuations of the air chambers 306a-b, and use the detected fluctuations to identify the bed presence of the user 308, the user's sleep state, movement, and biometric signals (e.g., heart rate, breathing rate). The detected fluctuations can also be used to detect when the user 308 is snoring and whether the user 308 suffers from sleep apnea or other health conditions. The detected fluctuations can also be used to determine the overall sleep quality of the user 308.
[0061] In the example shown, the pump 304 is located within the support structure of the bed 302, and the control circuit 334 for controlling the pump 304 is integrated with the pump 304. In some implementations, the control circuit 334 is physically separated from the pump 304 and communicates with the pump 304 wirelessly or by wire. In some implementations, the pump 304 and / or the control circuit 334 are located outside the bed 302. In some implementations, various control functions may be performed by systems located in different physical locations. For example, the circuit for controlling the action of the pump 304 may be located within the pump housing of the pump 304, while the control circuit 334 for performing other functions associated with the bed 302 may be located in another part of the bed 302 or outside the bed 302. The control circuit 334 located within the pump 304 may also communicate with the control circuit 334 at a remote location via a LAN or WAN (e.g., the Internet). The control circuit 334 may also include a Figure 1 and Figure 2 in the control box 124 .
[0062] In some implementations, one or more devices other than the pump 304 and the control circuit 334 may also be used to identify the user's bed presence, sleep state, movement, biosignals, and other information about the user 308 (e.g., sleep quality, health-related information). For example, the bed 302 may include a second pump, each connected to a corresponding one of the air chambers 306a-b. For example, the pump 304 may be in fluid communication with the air chamber 306b to control the inflation and deflation of the air chamber 306b, and to detect a user signal of a user located above the air chamber 306b. The second pump may be in fluid communication with the air chamber 306a and used to control the inflation and deflation of the air chamber 306a, and to detect a user signal of a user located above the air chamber 306a.
[0063] As another example, the bed 302 may include one or more pressure-sensitive pads or surface portions that are operable to detect movement, including user presence, motion, breathing, and heart rate. A first pressure-sensitive pad may be incorporated into the surface of the bed 302 above a left side portion of the bed 302, where the first user is typically located above the left side portion during sleep, and a second pressure-sensitive pad may be incorporated into the surface of the bed 302 above a right side portion of the bed 302, where the second user is typically located above the right side portion. The control circuit 334 may use the motion detected by the pressure-sensitive pads or surface portions to identify the user's sleep state, bed presence, or biometric signals for each user. The pressure-sensitive pads may also be removable, rather than incorporated into the surface of the bed 302.
[0064] The bed 302 may also include one or more temperature sensors and / or sensor arrays operable to detect temperatures in the microclimate of the bed 302. The temperatures detected in the different microclimates of the bed 302 may be used by the control circuit 334 to determine one or more modifications to the sleeping environment of the user 308. For example, a temperature sensor located near the core area of the bed 302 where the user 308 lies may detect a high temperature value. Such a high temperature value may indicate that the user 308 is warm. In order to reduce the user's body temperature in this microclimate, the control circuit 334 may determine that a cooling element of the bed 302 may be activated. As another example, the control circuit 334 may determine that a cooling unit in the home may be automatically activated to cool the ambient temperature in the environment 300.
[0065] The control circuit 334 may also process a combination of signals sensed by different sensors integrated into, positioned on, or otherwise in communication with the bed 112. For example, pressure and temperature signals may be processed by the control circuit 334 to more accurately determine one or more health conditions of the user 308 and / or the sleep quality of the user 308. Acoustic signals detected by one or more microphones or other audio sensors may also be used in combination with pressure or motion sensors to determine when the user 308 is snoring, whether the user 308 suffers from sleep apnea, and / or the overall sleep quality of the user 308. Combinations of one or more other sensed signals are also possible for the control circuit 334 to more accurately determine one or more health and / or sleep conditions of the user 308.
[0066] Thus, information detected by one or more sensors or other components of the bed 112 (e.g., motion information) can be processed by the control circuit 334 and provided to one or more user devices, such as a user device 310 for presentation to the user 308 or other user. The information can be presented in a mobile application or other graphical user interface at the user device 310. The user 308 can view different information processed and / or determined by the control circuit 334, and based on the signals detected by the components of the bed 302. For example, the user 308 can view their overall sleep quality for a particular sleep cycle (e.g., the previous night), historical trends in their sleep quality, and health information. The user 308 can also use the mobile application presented at the user device 310 to adjust one or more settings of the bed 302 (e.g., increase or decrease pressure in one or more areas of the bed 302, tilt or lower different areas of the bed 302, turn on or off massage features of the bed 302, etc.).
[0067] exist Figure 3In the depicted example, the user device 310 is a mobile phone; however, the user device 310 may also be any of a tablet, a personal computer, a laptop, a smart phone, a smart TV (e.g., TV 312), a home automation device, or other user devices capable of wired or wireless communication with the control circuit 334, one or more other components of the bed 302, and / or one or more devices in the environment 300. The user device 310 may communicate with the control circuit 334 of the bed 302 over a network or through direct point-to-point communication. For example, the control circuit 334 may be connected to a LAN (e.g., through a WIFI router) and communicate with the user device 310 through the LAN. As another example, both the control circuit 334 and the user device 310 may be connected to the Internet and communicate through the Internet. For example, the control circuit 334 may be connected to the Internet through a WIFI router, and the user device 310 may be connected to the Internet by communicating with a cellular communication system. As another example, the control circuit 334 may communicate directly with the user device 310 through a wireless communication protocol such as Bluetooth. As yet another example, control circuitry 334 may communicate with user device 310 via a wireless communication protocol, such as ZigBee, Z-wave, infrared, or another wireless communication protocol suitable for the application. As another example, control circuitry 334 may communicate with user device 310 via a wired connection, such as, for example, a USB connector, serial / RS232, or another wired connection suitable for the application.
[0068] As described above, the user device 310 can display various information and statistics related to sleep or the interaction of the user 308 with the bed 302. For example, the user interface displayed by the user device 310 can present information including the amount of sleep, the amount of deep sleep, the ratio of deep sleep to restless sleep, the time elapsed between the user 308 going to bed and falling asleep, the total amount of time spent on the bed 302 in a given time period, the heart rate over a period of time, the breathing rate over a period of time, or other information related to the user interaction of the user 308 or one or more other users with the bed 302. In some specific implementations, information for multiple users can be presented on the user device 310, for example, information for a first user located above the air chamber 306a can be presented together with information for a second user located above the air chamber 306b. In some specific implementations, the information presented on the user device 310 can vary according to the age of the user 308, so that the information presented varies with the age of the user 308.
[0069] The user device 310 may also serve as an interface to the control circuitry 334 of the bed 302 to allow the user 308 to input information and / or adjust one or more settings of the bed 302. The information input by the user 308 may be used by the control circuitry 334 to provide better information to the user 308 or to various control signals used to control the functions of the bed 302 or other devices. For example, the user 308 may input information such as the weight, height, and age of the user 308. The control circuitry 334 may use this information to provide the user 308 with a comparison of the tracked sleep information of the user 308 with the sleep information of other people having a similar weight, height, and / or age to the user 308. The control circuitry 308 may also use this information to accurately determine the overall sleep quality and / or health of the user 308 based on information detected by components (e.g., sensors) of the bed 302.
[0070] User 308 can also use user device 310 as an interface for controlling the air pressure in air chambers 306a and 306b, for controlling various reclining or tilting positions of bed 302, for controlling the temperature of one or more surface temperature control devices of bed 302, or for allowing control circuit 334 to generate control signals for other devices (as described below).
[0071] The control circuit 334 may also communicate with other devices or systems, including but not limited to a television 312, a lighting system 314, a thermostat 316, a security system 318, home automation devices, and / or other household devices (e.g., an oven 322, a coffee maker 324, a lamp 326, a night light 328). Other examples of devices and / or systems include a system for controlling blinds 330, a device for detecting or controlling the state of one or more doors 332 (such as detecting whether a door is open, detecting whether a door is locked, or automatically locking a door), and a system for controlling a garage door 320 (e.g., a control circuit 334 integrated with a garage door opener for identifying an open state or a closed state of a garage door 320 and for causing the garage door opener to open or close the garage door 320). Communication between the control circuit 334 and other devices may occur over a network (e.g., a LAN or the Internet) or as a point-to-point communication (e.g., Bluetooth, radio communication, or a wired connection). The control circuits 334 of different beds 302 may also communicate with different groups of devices. For example, a child's bed may not communicate with and / or control the same devices as an adult bed. In some embodiments, the bed 302 may vary with the age of the user, such that the control circuitry 334 of the bed 302 communicates with different devices depending on the age of the user of the bed 302.
[0072] The control circuit 334 may receive information and input from other devices / systems and use the received information and input to control the actions of the bed 302 and / or other devices. For example, the control circuit 334 may receive information from the thermostat 316 indicating the current ambient temperature of the house or room in which the bed 302 is located. The control circuit 334 may use the received information (and other information, such as signals detected from one or more sensors of the bed 302) to determine whether the temperature of all or a portion of the surface of the bed 302 should be increased or decreased. The control circuit 334 may then cause the heating or cooling mechanism of the bed 302 to increase or decrease the surface temperature of the bed 302. The control circuit 334 may also cause the heating or cooling unit of the house or room in which the bed 302 is located to increase or decrease the ambient temperature around the bed 302. Thus, by adjusting the temperature of the bed 302 and / or the room in which the bed 302 is located, the user 308 may experience improved sleep quality and comfort.
[0073] For example, user 308 may indicate a desired sleeping temperature of 74 degrees, while a second user of bed 302 indicates a desired sleeping temperature of 72 degrees. Thermostat 316 may transmit a signal indicating the room temperature to control circuit 334 at a predetermined time. Thermostat 316 may also transmit a continuous stream of detected room temperature values to control circuit 334. The transmitted signal may indicate to control circuit 334 that the current temperature of the bedroom is 72 degrees. Control circuit 334 may recognize that user 308 has indicated a desired sleeping temperature of 74 degrees, and may accordingly send a control signal to a heating pad located on the user 308 side of the bed to increase the temperature of the portion of the surface of bed 302 where user 308 is located until the temperature desired by user 308 is reached. In addition, control circuit 334 may send a control signal to thermostat 316 and / or a heating unit in the house to increase the temperature of the room where bed 302 is located.
[0074] The control circuitry 334 may generate control signals that control other devices and propagate these control signals to the other devices. The control signals may be generated based on information collected by the control circuitry 334, including information related to user interactions of the user 308 and / or one or more other users with the bed 302. Information collected from other devices other than the bed 302 may also be used when generating control signals. For example, information related to environmental events (e.g., ambient temperature, ambient noise level, and ambient light level), time of day, time of year, day of the week, or other information may be used when generating control signals for various devices that communicate with the control circuitry 334 of the bed 302.
[0075] For example, information about the time of day can be combined with information about the movement and presence of the user 308 to generate a control signal for the lighting system 314. The control circuit 334 can determine the time that the user 308 is currently on the bed 302 and when the user 308 falls asleep based on the detected pressure signal of the user 308 on the bed 302. Once the control circuit 334 determines that the user has fallen asleep, the control circuit 334 can transmit a control signal to the lighting system 314 to turn off the lights in the room where the bed 302 is located, lower the blinds 330 in the room, and / or activate the night light 328. In addition, the control circuit 334 can receive input from the user 308 (e.g., via the user device 310) indicating the time that the user 308 wishes to wake up. When the time is approaching, the control circuit 334 can transmit a control signal to one or more devices in the environment 300 to control the device that can wake up the user 308. For example, the control signal can be sent to a home automation device that controls multiple devices in the home. The home automation device may be instructed by control circuitry 334 to raise blinds 330, turn off night light 328, turn on lighting under bed 302, start coffee maker 324, change the temperature in the house via thermostat 316, or perform some other home automation. The home automation device may also be instructed to activate an alarm that may wake up user 308. At times, user 308 may enter information at user device 310 that indicates what action a home automation device or other device in environment 300 may take.
[0076] In some implementations, instead of providing control signals to other devices, or in addition to providing control signals to one or more other devices, control circuitry 334 can provide the collected information (e.g., information related to user movement, presence, sleep state, or biometric signals) to one or more other devices to allow the one or more other devices to utilize the collected information in generating control signals. For example, control circuitry 334 of bed 302 can provide information related to user interaction of user 308 with bed 302 to a central controller (not shown), which can use the provided information to generate control signals for various devices (including bed 302).
[0077] The central controller may be, for example, a hub device that provides various information about the user 308 and control information associated with the bed 302 and other devices in the house. The central controller may include sensors that detect signals that can be used by the control circuit 334 and / or the central controller to determine information about the user 308 (e.g., biometrics or other health data, sleep quality). The sensors may detect signals including, for example, ambient light, temperature, humidity, volatile organic compounds, pulse, motion, and audio. These signals may be combined with signals detected by the sensors of the bed 302 to determine accurate information about the health and sleep quality of the user 308. The central controller may provide control of the bed 302 (e.g., user-defined, preset, automatic, user-initiated), determine and view sleep quality and health information, smart alarm clocks, speakers or other home automation devices, smart photo frames, night lights, and one or more mobile applications that the user 308 can install and use at the central controller. The central controller may include a display screen that outputs information and receives user input. The display may output information such as the user's 308 health, sleep quality, weather, security integrated features, lighting integrated features, heating and cooling integrated features, and other controls to automate devices in the house. The central controller may operate to provide the user 308 with functionality and control of a variety of different types of devices in the house as well as the user's 308 bed 302.
[0078] As Figure 3 In an illustrative example of FIG. 3 , a control circuit 334 integrated with a pump 304 can detect a characteristic of a mattress of a bed 302, such as an increase in pressure in an air chamber 306 b, and use this detected increase to determine that a user 308 is present on the bed 302. The control circuit 334 can also identify the heart rate or breathing rate of the user 308 to identify that the pressure increase is due to a person sitting, lying, or resting on the bed 302, rather than due to an inanimate object (e.g., a suitcase) placed on the bed 302. In some implementations, information indicating the presence of a user can be combined with other information to identify the current or possible future state of the user 308. For example, detecting the presence of a user at 11:00 a.m. can indicate that the user is sitting in bed (e.g., tying shoes or reading a book) and is not intending to fall asleep, while detecting the presence of a user at 10:00 p.m. can indicate that the user 308 is in bed at night and intends to fall asleep soon. As another example, if control circuitry 334 detects that user 308 has left bed 302 at 6:30 a.m. (e.g., indicating that user 308 has woken up for the day), and later detects user 308's presence in bed 302 at 7:30 a.m., control circuitry 334 may use this information to indicate that the newly detected presence may be temporary (e.g., the case where user 308 is tying his shoes before leaving for work), rather than an indication that user 308 intends to stay in bed 302 for an extended period of time.
[0079] If the control circuit 334 determines that the user 308 is likely to stay in the bed 302 for an extended period of time, the control circuit 334 may determine one or more home automation controls that may help the user 308 fall asleep and experience improved sleep quality throughout the sleep cycle of the user 308. For example, the control circuit 334 may communicate with the security system 318 to ensure that the door is locked. The control circuit 334 may communicate with the oven 322 to ensure that the oven 322 is turned off. The control circuit 334 may also communicate with the lighting system 314 to dim or otherwise turn off the lights in the room where the bed 302 is located and / or throughout the house, and the control circuit 334 may communicate with the thermostat 316 to ensure that the house is at the temperature desired by the user 308. The control circuit 334 may also determine one or more adjustments that may be made to the bed 302 to facilitate the user 308 falling asleep and staying asleep (e.g., changing the position of one or more areas of the bed 302, foot warming, massage features, pressure / firmness in one or more areas of the bed 302, etc.).
[0080] In some implementations, the control circuitry 334 may use the collected information, including information about the user interactions of the user 308 with the bed 302, environmental information, time information, and user input, to identify a usage pattern of the user 308. For example, the control circuitry 334 may use information collected over a period of time indicating the presence and sleep state of the user 308 to identify the user's sleep pattern. The control circuitry 334 may identify that the user 308 typically goes to bed between 9:30 PM and 10:00 PM, typically falls asleep between 10:00 PM and 11:00 PM, and typically wakes up between 6:30 AM and 6:45 AM based on information collected over a week or other period of time indicating the user's presence and biometrics of the user 308. The control circuitry 334 may use the identified patterns of the user 308 to better process and identify the user's interactions with the bed 302.
[0081] Given the above exemplary user's bed presence, sleep, and wake patterns of user 308, if user 308 is detected to be in bed 302 at 3:00 p.m., control circuitry 334 may determine that user 308's presence in bed 302 is temporary, and use this determination to generate a different control signal than if control circuitry 334 determines that user 308 is in bed at night (e.g., at 3:00 p.m., the head area of bed 302 may be raised to facilitate reading or watching television in bed 302, while at night, bed 302 may be adjusted to a flat position to facilitate falling asleep). As another example, if control circuitry 334 detects that user 308 is out of bed at 3:00 a.m., control circuitry 334 may use the pattern identified for user 308 to determine that the user has temporarily gotten out of bed (e.g., to go to the bathroom, drink a glass of water). Control circuitry 334 may turn on under-bed lighting to help user 308 move carefully around bed 302 and within the room. In contrast, if the control circuit 334 identifies that the user 308 has gotten out of bed 302 at 6:40 AM, the control circuit 334 may determine that the user 308 has gotten out of bed for the day and generate a different set of control signals (e.g., the control circuit 334 may turn on the lights 326 near the bed 302 and / or raise the blinds 330). For other users, getting out of bed 302 at 3:00 AM may be a normal wake-up time, and the control circuit 334 may learn and respond accordingly to this normal wake-up time. Furthermore, if the bed 302 is occupied by two users, the control circuit 334 may learn and respond to each user's patterns.
[0082] The bed 302 may also generate control signals based on communications with one or more devices. As an illustrative example, the control circuit 334 may receive an indication from the television 312 that the television 312 is on. If the television 312 is located in a different room from the bed 302, the control circuit 334 may generate a control signal to turn off the television 312 when it is determined that the user 308 has gone to bed for the night or remains in the room with the bed 302. If the presence of the user 308 on the bed 302 is detected within a specific time range (e.g., between 8:00 p.m. and 7:00 a.m.) and the duration exceeds a threshold time period (e.g., 10 minutes), the control circuit 334 may determine that the user 308 is in bed at night. As described above, if the television 312 is on, the control circuit 334 may generate a control signal to turn off the television 312. The control signal may be transmitted to the television (e.g., via a directional communication link or via a network such as WIFI). As another example, control circuitry 334 may generate a control signal to reduce the volume of television 312 by a predetermined amount, rather than turning off television 312 in response to detecting the presence of a user.
[0083] As another example, upon detecting that the user 308 has left the bed 302 during a specified time range (e.g., between 6:00 a.m. and 8:00 a.m.), the control circuit 334 may generate a control signal to cause the television 312 to turn on and tune to a pre-specified channel (e.g., the user 308 indicated a preference to watch the morning news upon waking up). The control circuit 334 may generate and transmit a control signal to the television 312 accordingly (the control signal may be stored at the control circuit 334, the television 312, or another location). As another example, upon detecting that the user 308 has gotten out of bed for the day, the control circuit 334 may generate and transmit a control signal to cause the television 312 to turn on and begin playing a previously recorded program from a digital video recorder (DVR) in communication with the television 312.
[0084] As another example, if the television 312 is in the same room as the bed 302, the control circuit 334 may not turn off the television 312 in response to detecting the presence of the user. Instead, the control circuit 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 circuit 334 may monitor the biometric signals (e.g., motion, heart rate, breathing rate) of the user 308 to determine that the user 308 has fallen asleep. When it is detected that the user 308 is sleeping, the control circuit 334 generates and transmits a control signal to turn off the television 312. As another example, the control circuit 334 may generate a control signal to turn off the television 312 after a threshold time period (e.g., 10 minutes after the user has fallen asleep) after the user 308 falls asleep. As another example, the control circuit 334 generates a control signal to reduce the volume of the television 312 after determining that the user 308 is asleep. As yet another example, in response to determining that the user 308 is asleep, the control circuit 334 generates and transmits a control signal to gradually reduce the volume of the television over a period of time and then turn it off. Any of the control signals described above with reference to television 312 may also be determined by the central controller described above.
[0085] In some implementations, the control circuit 334 can similarly interact with other media devices, such as computers, tablet computers, mobile phones, smart phones, wearable devices, stereo systems, etc. For example, when it is detected that the user 308 falls asleep, the control circuit 334 can generate a control signal and transmit the control signal to the user device 310 to cause the user device 310 to turn off or lower the volume of the video or audio file being played by the user device 310.
[0086] The control circuit 334 may additionally communicate with the lighting system 314, receive information from the lighting system 314, and generate control signals for controlling the functions of the lighting system 314. For example, when the presence of a user on the bed 302 is detected during a specific time frame (e.g., between 8:00 p.m. and 7:00 a.m.) for more than a threshold time period (e.g., 10 minutes), the control circuit 334 of the bed 302 may determine that the user 308 is in bed at night and generate a control signal to turn off the lights in one or more rooms other than the room where the bed 302 is located. The control circuit 334 may generate and transmit a control signal to turn off the lights in all common rooms, but not the lights in other bedrooms. As another example, the control signal may indicate that the lights in all rooms except the room where the bed 302 is located are to be turned off, and one or more lights located outside the house containing the bed 302 are to be turned on. The control circuit 334 may generate and transmit a control signal to turn on the night light 328 in response to determining that the user 308 is present or that the user 308 has fallen asleep. The control circuit 334 can also generate a first control signal for turning off a first group of lights (e.g., lights in a common room) in response to detecting the presence of a user's bed, and generate a second control signal for turning off a second group of lights (e.g., lights in the room where the bed 302 is located) in response to detecting that the user 308 has fallen asleep.
[0087] In some implementations, in response to determining that the user 308 is in bed at night, the control circuit 334 of the bed 302 can generate a control signal to cause the lighting system 314 to implement a sunset lighting scheme in the room where the bed 302 is located. The sunset lighting scheme can include, for example, dimming the lights (either gradually over time or all at once) in conjunction with changing the color of the light in the bedroom environment (such as adding an amber hue to the lighting in the bedroom). When the control circuit 334 has determined that the user 308 is in bed at night, the sunset lighting scheme can help lull the user 308 to sleep. Sometimes, the control signal can cause the lighting system 314 to dim the lights or change the color of the lighting in the bedroom environment, but not both.
[0088] The control circuit 334 may also implement a sunrise lighting scheme when the user 308 wakes up in the morning. The control circuit 334 may determine that the user 308 has woken up, for example, by detecting that the user 308 has left the bed 302 (e.g., is no longer present on the bed 302) during a specified time frame (e.g., between 6:00 a.m. and 8:00 a.m.). The control circuit 334 may also monitor the user's 308 movement, heart rate, breathing rate, or other biometric signals to determine whether the user 308 is awake or waking up, even if the user 308 has not yet gotten out of bed. If the control circuit 334 detects that the user is awake or waking up during the specified time frame, the control circuit 334 may determine that the user 308 is awake for the day. The specified time frame may be based on previously recorded user presence information collected over a period of time (e.g., two weeks), for example, indicating that the user 308 typically wakes up between 6:30 a.m. and 7:30 a.m. during the day. In response to the control circuit 334 determining that the user 308 is awake, the control circuit 334 can generate a control signal to cause the lighting system 314 to implement a sunrise lighting scheme in the bedroom where the bed 302 is located. The sunrise lighting scheme can include, for example, turning on a light (e.g., the light 326 or other lights in the bedroom). The sunrise lighting scheme can also include gradually increasing the light level in the room where the bed 302 is located (or in one or more other rooms). The sunrise lighting scheme can also include turning on only lights of a specified color. The sunrise lighting scheme can include illuminating the bedroom with blue light to gently help the user 308 wake up and become energized.
[0089] The control circuitry 334 may also generate different control signals for controlling the actions of components based on the time of day when the user's interaction with the bed 302 is detected. For example, the control circuitry 334 may use historical user interaction information 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 on weekdays. If the user 308 is detected waking up at 3:00 AM, the control circuitry 334 may use this information to generate a first set of control signals for controlling the lighting system 314 (e.g., turning on the lights to direct the user 308 to the bathroom or kitchen), and if the user 308 is detected waking up after 6:30 AM, the control circuitry may use this information to generate a second set of control signals for controlling the lighting system 314.
[0090] In some implementations, if it is detected that the user 308 wakes up before the designated morning wake-up time for the user 308, the control circuit 334 may cause the lighting system 314 to turn on a dimmer light than the light that the lighting system 314 turns on when the user 308 wakes up after the designated morning wake-up time. Having the lighting system 314 turn on dimmed lights only when the user 308 wakes up at night (i.e., before the normal wake-up time for the user 308) may prevent other occupants of the house from being awakened by the lights while still allowing the user 308 to be visible to reach his destination within the house.
[0091] The historical user interaction information for the interaction between the user 308 and the bed 302 can be used to identify the sleeping time frame and the awake time frame of the user. For example, the time of the user's presence and the sleeping time can be determined for a set time period (e.g., two weeks, a month, etc.). The control circuit 334 can identify the typical time range or time frame for the user 308 to go to bed, the typical time frame for the user 308 to fall asleep, and the typical time frame for the user 308 to wake up (and in some cases, the different time frames for the user 308 to wake up and the user 308 to actually get up). Buffer time can be added to these time frames. For example, if the user is identified as usually going to bed between 10:00 p.m. and 10:30 p.m., a half-hour buffer in each direction can be added to the time frame so that the detection of the user going to bed between 9:30 p.m. and 11:00 p.m. is interpreted as the user 308 going to bed at night. As another example, detecting the presence of user 308 starting half an hour before the earliest typical time that user 308 goes to bed until the typical wake-up time of user 308 (e.g., 6:30 a.m.) can be interpreted as user 308 going to bed for the night. For example, if user 308 typically goes to bed between 10:00 p.m. and 10:30 p.m., if the presence of user 308 is sensed at 12:30 a.m. one night, this can be interpreted as user 308 going to bed for the night, even though this is outside the typical time frame for user 308 to go to bed because it occurs before the time that user 308 normally wakes up. In some implementations, different time frames are identified for different times of the year (e.g., earlier bedtimes in winter than in summer) or different times of the week (e.g., user 308 wakes up earlier on weekdays than on weekends).
[0092] The control circuit 334 can distinguish whether the user 308 is sleeping in the bed for a long time (e.g., all night) or staying in the bed 302 for a short time (e.g., a nap) by sensing the duration of the user 308's presence (e.g., by detecting the pressure and / or temperature signals of the user 308 on the bed 302 by the sensor integrated into the bed 302). In some examples, the control circuit 334 can distinguish whether the user 308 is sleeping in the bed for a long time (such as all night) or sleeping in the bed for a short time (such as a nap) by sensing the sleep duration of the user 308. The control circuit 334 can set a time threshold, whereby if the user 308 is sensed to be on the bed 302 for a time exceeding the threshold, it is considered that the user 308 has slept in the bed all night. In some examples, the threshold can be about 2 hours, whereby if the user 308 is sensed to be on the bed 302 for more than 2 hours, the control circuit 334 records it as an extended sleep event. In other examples, the threshold can be greater than or less than two hours. The threshold may be determined based on historical trends indicating how long the user 302 typically sleeps or otherwise stays in the bed 302 .
[0093] The control circuit 334 can detect repeated extended sleep events to automatically determine a typical bedtime range for the user 308, without requiring the user 308 to input a bedtime range. This can allow the control circuit 334 to accurately estimate when the user 308 is likely to go to bed for an extended sleep event, regardless of whether the user 308 typically goes to bed using a traditional sleep schedule or a non-traditional sleep schedule. The control circuit 334 can then use the knowledge of the bedtime range of the user 308 to control one or more components (including components of the bed 302 and / or non-bed peripherals) based on sensing a presence within the bedtime range or outside the bedtime range.
[0094] The control circuit 334 can automatically determine the bedtime range for the user 308 without user input. The control circuit 334 can also automatically and in combination with user input (e.g., using signals sensed by sensors of the bed 302 and / or a central controller) determine the bedtime range. The control circuit 334 can directly set the bedtime range based on user input. The control circuit 334 can associate different bedtimes with different days of the week. In each of these examples, the control circuit 334 can control components (e.g., the lighting system 314, the thermostat 316, the security system 318, the oven 322, the coffee maker 324, the lamp 326, and the night light 328) based on the sensed presence and bedtime range.
[0095] The control circuit 334 may also determine a control signal to be transmitted to the thermostat 316 based on the preferences input by the user and / or to maintain an improved or preferred sleep quality of the user 308. For example, the control circuit 334 may determine that the sleep quality of the user 308 is best when the bedroom temperature is 74 degrees based on the historical sleep pattern and quality of the user 308 and by applying a machine learning model. The control circuit 334 may receive a temperature signal indicating the bedroom temperature from a device and / or sensor in the bedroom. When the temperature is below 74 degrees, the control circuit 334 may determine a control signal that causes the thermostat 316 to activate a heating unit to increase the temperature in the bedroom to 74 degrees. When the temperature is above 74 degrees, the control circuit 334 may determine a control signal that causes the thermostat 316 to activate a cooling unit to reduce the temperature back to 74 degrees. Sometimes, the control circuit 334 may determine a control signal that causes the thermostat 316 to maintain the bedroom within a temperature range intended to maintain the user 308 in a particular sleep state and / or transition to the next preferred sleep state.
[0096] Similarly, the control circuit 334 can generate control signals to change the temperature of the heating or cooling elements on the surface of the bed 302 at different times in response to the user's interaction with the bed 302 based on the user's preferences at various preprogrammed times and / or in response to detecting the microclimate temperature of the user 308 on the bed 302. For example, when it is detected that the user 308 has fallen asleep, the control circuit 334 can activate the heating element to increase the temperature of one side of the surface of the bed 302 to 73 degrees. As another example, when it is determined that the user 308 has gotten out of bed, the control circuit 334 can turn off the heating or cooling element. The user 308 can preprogram various times when the temperature on the surface of the bed should be increased or decreased. As another example, a temperature sensor on the surface of the bed can detect the microclimate of the user 308. When the detected microclimate drops below a predetermined threshold temperature, the control circuit 334 can activate the heating element to increase the body temperature of the user 308, thereby improving the comfort of the user 308, maintaining their sleep cycle, transitioning the user 308 to the next preferred sleep state, and / or maintaining or improving the sleep quality of the user 308.
[0097] In response to detecting the presence of the user's bed and / or the user 308 having fallen asleep, the control circuit 334 can also cause the thermostat 316 to change the temperature in different rooms to different values. Other control signals are also possible and can be based on user preferences and user input. In addition, the control circuit 334 can receive temperature information from the thermostat 316 and use the information to control the function of the bed 302 or other devices (e.g., adjusting the temperature of the heating element of the bed 302, such as a warm foot pad). The control circuit 334 can also generate and transmit control signals for controlling other temperature control systems (such as floor heating elements in bedrooms or other rooms).
[0098] The control circuit 334 may communicate with the security system 318, receive information from the security system 318, and generate control signals for controlling functions of the security system 318. For example, in response to detecting that the user 308 is in bed at night, the control circuit 334 may generate a control signal to enable or disable a security function of the security system 318. As another example, the control circuit 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 (e.g., the user 308 is no longer present in the bed 302).
[0099] The control circuit 334 may also receive an alert from the security system 318 and indicate the alert to the user 308. For example, the security system may detect a security breach (e.g., someone opens the door 332 without entering a security code, someone opens a window when the security system 318 is enabled) and transmit the security breach to the control circuit 334. The control circuit 334 may then generate a control signal to alert the user 308, such as vibrating the bed 302, causing the various parts of the bed 302 to articulate (e.g., the head section is raised or lowered), flashing the lights 326 at regular intervals, and the like. The control circuit 334 may also warn the user 308 of a bed 302 about a security breach in another bedroom, such as a window in a child's bedroom being opened. The control circuit 334 may send a warning (e.g., to close and lock the door) to the garage door controller. The control circuit 334 may send a warning to disengage security protection. The control circuit 334 may also trigger a smart alarm or other alarm device / clock near the bed 302. The control circuitry 334 may transmit a push notification, text message, or other indication of the security breach to the user device 310. In addition, the control circuitry 334 may transmit a notification of the security breach to a central controller, which may then determine one or more responses to the security breach.
[0100] The control circuit 334 may additionally generate and transmit control signals for controlling the garage door 320, and receive information indicating the state of the garage door 320 (e.g., open or closed). The control circuit 334 may also request information about the current state of the garage door 320. If the control circuit 334 receives a response (e.g., from a garage door opener) that the garage door 320 is open, the control circuit 334 may notify the user 308 that the garage door is open (e.g., by displaying a notification or other message at the user device 310, outputting a notification at the central controller), and / or generate a control signal to cause the garage door opener to close the door. The control circuit 334 may also vibrate the bed 302, instruct the lighting system 314 to flash the lights in the bedroom, and so on. The control signal may also vary depending on the age of the user 308. Similarly, the control circuit 334 may similarly send and receive communications for controlling or receiving state information associated with the door 332 or the oven 322.
[0101] In some implementations, different alarms may be generated for different events. For example, if the security system 318 has detected a breach, the control circuit 334 may cause the light 326 (or other lights via the lighting system 314) to flash in a first pattern, if the garage door 320 is open, to flash in a second pattern, if the door 332 is open, to flash in a third pattern, if the oven 322 is on, to flash in a fourth pattern, and if another bed has detected that the user 308 of the bed has gotten up (e.g., a child has gotten up in the middle of the night, as sensed by a sensor in the child's bed). Other examples of alarms include a smoke detector detecting smoke (and transmitting the detection result to the control circuit 334), a carbon monoxide tester, a heater failure, or an alarm from another device that can communicate with the control circuit 334 and detect the occurrence of an event to attract the attention of the user 308.
[0102] The control circuit 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 has gotten out of bed or that the user 308 has set an alarm to get up at a particular time, the control circuit 334 may generate and transmit a control signal to cause the blinds 330 to open. In contrast, if the user 308 gets up before the normal time for the user 308 to get up, the control circuit 334 may determine that the user 308 is not awake, and may not generate a control signal to cause the blinds 330 to open. The control circuit 334 may also generate and transmit a control signal that causes the first set of blinds to close in response to detecting the presence of the user's bed, and causes the second set of blinds to close in response to detecting that the user 308 is asleep.
[0103] As another example, in response to determining that the user 308 has woken up, the control circuit 334 may generate and transmit a control signal to the coffee maker 324 to cause the coffee maker 324 to brew coffee. The control circuit 334 may generate and transmit a control signal to the oven 322 to cause the oven 322 to begin preheating. The control circuit 334 may use information indicating that the user 308 has woken up and information indicating that the time of year is currently winter and / or the outside temperature is below a threshold to generate and transmit a control signal to turn on the car engine block heater. The control circuit 334 may generate and transmit a control signal to cause the device to enter sleep mode in response to detecting the presence of the user's bed, or in response to detecting that the user 308 is sleeping (e.g., causing the user 308's mobile phone to switch to sleep or night mode, so that notifications are muted to not disturb the user 308's sleep). Later, upon determining that the user 308 has gotten up, the control circuit 334 may generate and transmit a control signal to cause the mobile phone to exit sleep / night mode.
[0104] The control circuit 334 may also 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 has fallen asleep (e.g., based on a pressure signal received from the bed 302, an audio / decibel signal received from an audio sensor positioned on or around the bed 302), the control circuit 334 may generate and transmit a control signal to activate a noise cancellation device. The noise cancellation device may be part of the bed 302 or located in a bedroom. Upon determining that the user 308 is in bed at night or that the user 308 has fallen asleep, the control circuit 334 may generate and transmit a control signal to turn on, off, increase, or decrease the volume of one or more sound generating devices (such as a stereo system radio, a television, a computer, a tablet computer, a microphone, etc.).
[0105] In addition, the function of the bed 302 can be controlled by the control circuit 334 in response to user interaction. For example, the articulation controller can adjust the bed 302 from a flat position to a position where the head of the mattress of the bed 302 is tilted upward (e.g., so that the user can sit in bed, read and / or watch TV). Sometimes, the bed 302 includes multiple sections that can be articulated separately. The portions of the bed corresponding to the positions of the air chambers 306a and 306b can be articulated independently of each other to allow one person to rest in a first position (e.g., a flat position) while the second person rests in a second position (e.g., a reclining position with the head raised from the waist at an angle). Separate positions can be set for two different beds (e.g., two single beds placed adjacent to each other). The base of the bed 302 may include more than one area that can be adjusted independently. The articulation controller can also provide different degrees of massage to one or more users on the bed 302, or vibrate the bed to transmit an alarm to the user 308, as described above.
[0106] The control circuit 334 may adjust the position (e.g., the tilted position and lowered position of the user 308 and / or additional users) in response to the user's interaction with the bed 302 (e.g., causing the articulation controller to adjust to a first reclined position in response to sensing the user's presence in the bed). The control circuit 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 circuit 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 circuit 334 may cause the articulation controller to adjust the position of the bed to a preferred user sleeping position (e.g., because the user turned off the television 312, and the user 308 is on the bed indicating that the user 308 wants to sleep).
[0107] In some implementations, the control circuit 334 may control the articulation controller to wake up one user without waking up another user of the bed 302. For example, the user 308 and the second user may each set different wake-up times (e.g., 6:30 a.m. and 7:15 a.m., respectively). When the wake-up time for the user 308 is reached, the control circuit 334 may cause the articulation controller to vibrate only or change the position of the user 308 on the side of the bed. When the wake-up time for the second user is reached, the control circuit 334 may cause the articulation controller to vibrate only or change the position of the second user on the side of the bed. Alternatively, when the second wake-up time occurs, the control circuit 334 may utilize other methods (such as an audio alarm or turning on a light) to wake up the second user because the user 308 is already awake and therefore will not be disturbed when the control circuit 334 attempts to wake up the second user.
[0108] Still reference Figure 3 , the control circuit 334 of the bed 302 can use the information for multiple users interacting with the bed 302 to generate control signals for controlling the functions of various other devices. For example, the control circuit 334 can wait to generate control signals for the devices until the user 308 and the second user are detected in the bed 302. The control circuit 334 can generate a first set of control signals to cause the lighting system 314 to turn off the first set of lights when the presence of the user 308 is detected, and generate a second set of control signals for turning off the second set of lights in response to detecting the presence of the second user. The control circuit 334 can also wait until it has been determined that both users have woken up before generating control signals to open the blinds 330. One or more other home automation control signals can be determined and generated by the control circuit 334, the user device 310, and / or the central controller.
[0109] Example of a data processing system associated with a bed
[0110] Example systems and components for data processing tasks associated with a bed are described. In some cases, multiple examples of a particular component or group of components are provided. Some examples are redundant and / or mutually exclusive alternatives. Connections between components are shown as examples to illustrate possible network configurations for allowing communication between components. Connections of different formats may be used depending on technical needs / desires. Connections generally indicate logical connections that can be created in any technically feasible format. For example, a network on a motherboard may be created using a printed circuit board, a wireless data connection, and / or other types of network connections. For clarity, some logical connections (e.g., connections to a power source and / or computer readable memory) are not shown.
[0111] Figure 4A is a block diagram of an example data processing system 400 that may be associated with a bed system, including the systems described above (e.g., see Figures 1 to 3 ). System 400 includes a pump motherboard 402 and a pump daughterboard 404. System 400 includes a sensor array 406 having one or more sensors configured to sense physical phenomena of the environment and / or the bed and report the sensing back to the pump motherboard 402 (e.g., for analysis). Sensor array 406 may include one or more different types of sensors, including but not limited to pressure, temperature, light, movement (e.g., motion), and audio. System 400 also includes a controller array 408, which may include one or more controllers configured to control logic control devices of the bed and / or the environment (e.g., home automation devices, security systems, light systems, and Figure 3 ). The pump motherboard 400 may communicate with the computing device 414 and the cloud service 410 via a local network (e.g., the Internet 412) or in other technically appropriate manner.
[0112] exist Figure 4A 4, the pump motherboard 402 and the daughterboard 404 are communicatively coupled. They can be conceptually described as the center or hub of the system 400, while the other components are conceptually described as spokes of the system 400. This can mean that each spoke component communicates primarily or exclusively with the pump motherboard 402. For example, the sensors of the sensor array 406 may not be configured or capable of directly communicating with the corresponding controller. Instead, the sensors can report sensor readings to the motherboard 402, and the motherboard 402 can determine in response that the controller of the controller array 408 should adjust some parameters of the logic control device or otherwise modify the state of one or more peripheral devices.
[0113] One advantage of a hub-and-spoke network configuration or star network is that network traffic is reduced compared to, for example, a mesh network with dynamic routing. If a particular sensor generates a large, continuous flow of traffic, that flow will be transmitted to the motherboard 402 via one spoke. The motherboard 402 can group and compress that data into a smaller data format for storage in the cloud service 410 for retransmission. Additionally or alternatively, in response to the large flow, the motherboard 402 can generate a single, small command message to be sent down along the different spokes. For example, if the large data stream is pressure readings transmitted from the sensor array 406 several times per second, the motherboard 402 can respond to the controller array 408 with a single command message to increase the pressure in the air chamber of the bed. In this case, the single command message can be several orders of magnitude smaller than the pressure reading stream.
[0114] As another advantage, the hub-and-spoke network configuration may allow for a scalable network that accommodates components being added, removed, failing, etc. This may allow for more, fewer, or different sensors in sensor array 406, controllers in controller array 408, computing devices 414, and / or cloud services 410. For example, if a particular sensor fails or is deprecated by a newer version, system 400 may be configured to only require updating the replacement sensor on motherboard 402. This may allow for product differentiation, where the same motherboard 402 may support entry-level products with fewer sensors and controllers, higher value products with more sensors and controllers, and customer personalization, where customers may add components of their choice to system 400.
[0115] Additionally, a family of airbed products may use system 400 with different components. In applications where each airbed in the product family includes both the central logic unit and the pump, motherboard 402 (and optionally daughterboard 404) may be designed to fit within a single common housing. With each upgrade of a product in the product family, additional sensors, controllers, cloud services, etc. may be added. By designing all products in the product family on this basis, design, manufacturing, and testing time may be reduced compared to a product family where each product has a customized logic control system.
[0116] Each component discussed above can be implemented in a variety of technologies and configurations. Below, some examples of each component will be discussed. Sometimes, two or more components of system 400 can be implemented in a single alternative component; some components can be implemented in multiple separate components; and / or some functions can be provided by different components.
[0117] Figure 4B 412 is a block diagram illustrating the communication paths of the system 400. As described above, the motherboard 402 and the daughterboard 404 can act as a hub for the system 400. When the pump daughterboard 404 communicates with the cloud service 410 or other components, the communication can be routed through the motherboard 402. This can allow the bed to have a single connection to the Internet 412. The computing device 414 can also connect to the Internet 412, either through the same gateway used by the bed or through a different gateway (e.g., a cell phone service provider).
[0118] exist Figure 4B , cloud service 410d and cloud service 410e may be configured so that motherboard 402 communicates directly with the cloud services (e.g., without using another cloud service 410 as an intermediary). Additionally or alternatively, some cloud services 410 (e.g., 410f) may only be accessible by motherboard 402 through an intermediate cloud service (e.g., 410e). Although not shown here, some cloud services 410 may be reached directly or indirectly by pump motherboard 402.
[0119] In addition, some or all of the cloud services 410 may communicate with other cloud services, including the transmission of data and / or remote function calls according to any technically appropriate format. For example, one cloud service 410 may request a copy of the data of another cloud service 410 (e.g., for the purposes of backup, coordination, migration, computation, data mining). Many cloud services 410 may also contain data indexed according to a specific user tracked by the user account cloud 410c and / or the bed data cloud 410a. These cloud services 410 may communicate with the user account cloud 410c and / or the bed data cloud 410a when accessing data specific to a particular user or bed.
[0120] Figure 5 is a block diagram of an example motherboard 402 in a data processing system associated with a bed system (e.g., see Figures 1 to 3 ). In this example, the motherboard 402 is composed of relatively few parts and may be limited to providing a relatively limited set of features compared to other examples described below.
[0121] The motherboard 402 includes a power supply 500, a processor 502, and a computer memory 512. In general, the power supply 500 includes hardware for receiving power from an external source and supplying it to the components of the motherboard 402. The power supply may include, for example, a battery pack and / or a wall outlet adapter, an AC-DC converter, a DC-AC converter, a power regulator, a capacitor bank, and / or one or more interfaces for providing power of the type of current, voltage, etc. required by the other components of the motherboard 402.
[0122] Processor 502 is generally a device for receiving input, performing logical determinations, and providing output. Processor 502 may be a central processing unit, a microprocessor, a general purpose logic circuit, an application specific integrated circuit, a combination of these, and / or other hardware.
[0123] Memory 512 is typically one or more devices for storing data, which may include long-term stable data storage (e.g., on a hard disk), short-term volatile data storage (e.g., in random access memory), or any other technically appropriate configuration.
[0124] The motherboard 402 includes a pump controller 504 and a pump motor 506. The pump controller 504 can receive commands from the processor 502 to control the operation of the pump motor 506. For example, the pump controller 504 can receive a command to increase the pressure of the air chamber by 0.3 pounds per square inch (PSI). In response, the pump controller 504 enables the valve so that the pump motor 506 pumps air into the selected air chamber, and the pump motor 506 can be enabled for a length of time corresponding to 0.3 PSI or until the sensor indicates that the pressure has increased by 0.3 PSI. Sometimes, the message can specify that the chamber should be inflated to a target PSI, and the pump controller 504 can enable the pump motor 506 until the target PSI is reached.
[0125] The valve solenoid 508 can control which air chamber the pump is connected to. In some cases, the solenoid 508 can be controlled directly by the processor 502. In some cases, the solenoid 508 can be controlled by the pump controller 504.
[0126] 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 communicate with one or more daughter boards, peripheral sensors, and / or peripheral controllers via the remote interface 510. The remote interface 510 may provide any technically appropriate communication interface, including but not limited to multiple communication interfaces such as WIFI, Bluetooth, and copper wired networks.
[0127] Figure 6 is a block diagram of another example motherboard 402. Figure 5 Compared with the motherboard 402, Figure 6 The motherboard 402 in FIG. 4 may contain more components and provide more functionality in some applications.
[0128] The motherboard 402 may also include a valve controller 600 , a pressure sensor 602 , a universal serial bus (USB) stack 604 , a WiFi radio 606 , a Bluetooth low energy (BLE) radio 608 , a ZigBee radio 610 , a Bluetooth radio 612 , and computer memory 512 .
[0129] The valve controller 600 can convert the command from the processor 502 into a control signal for the valve solenoid 508. For example, the processor 502 can issue a command to the valve controller 600 to connect the pump to a specific air chamber in the group of air chambers in the air bed. The valve controller 600 can control the position of the valve solenoid 508 so that the pump is connected to the indicated air chamber.
[0130] Pressure sensor 602 can read pressure readings from one or more air chambers of the air bed. Pressure sensor 602 can also perform digital sensor conditioning. As described herein, multiple pressure sensors 602 can be included as part of motherboard 402 or otherwise communicate with motherboard 402.
[0131] The motherboard 402 may include a set of network interfaces 604, 606, 608, 610, 612, etc., including but not limited to Figure 6 These network interfaces can allow the motherboard to communicate with any device via a wired or wireless network, including but not limited to peripheral sensors, peripheral controllers, computing devices, and devices and services connected to the Internet 412.
[0132] Figure 7 404. is a block diagram of an example daughter board 404 used in a data processing system associated with the bed system described herein. One or more daughter boards 404 can be connected to the motherboard 402. Some daughter boards 404 can be designed to offload specific and / or partitioned tasks from the motherboard 402. This can be advantageous if a specific task is computationally intensive, proprietary, or subject to future revisions. For example, a daughter board 404 can be used to calculate a specific sleep data metric. The metric can be computationally intensive, and calculating the metric on the daughter board 404 can free up resources of the motherboard 402 while calculating the metric. The sleep metric may be revised in the future. In order to update the system 400 with a new metric, it may be possible for only the daughter board 404 to calculate the metric to be replaced. In this case, the same motherboard 402 and other components can be used, thereby eliminating the need to unit test additional components instead of just the daughter board 404.
[0133] The daughter board 404 includes a power supply 700, a processor 702, a computer readable memory 704, a pressure sensor 706, and a WiFi radio component 708. The processor 702 can use the pressure sensor 706 to collect information about the pressure of the air bed chamber. The processor 702 can execute an algorithm to calculate sleep metrics (e.g., sleep quality, whether the bed exists, whether the user is asleep, heart rate, breathing rate, movement, etc.). Sometimes, the sleep metric can be calculated based on the air chamber pressure alone. The sleep metric can also be calculated using signals from various sensors (e.g., motion sensors, pressure sensors, temperature sensors, and / or audio sensors). The processor 702 can receive the data from a sensor that can be inside the daughter board 404, can be accessed via the WiFi radio component 708, or otherwise communicate with the processor 702. Once the sleep metric is calculated, the processor 702 can report the sleep metric to, for example, the motherboard 402. The motherboard 402 can generate instructions for outputting the sleep metric to the user or using the sleep metric to determine other user information or control to control the bed and / or peripherals.
[0134] Figure 8 is a block diagram of an example motherboard 800 without a daughterboard for use in a data processing system associated with a bed system. In this example, the motherboard 800 may execute reference Figure 6 The motherboard 402 and Figure 7 Most, all, or more of the features described for daughterboard 404 in .
[0135] Fig. 9A 4 is a block diagram of an example sensor array 406 used in a data processing system associated with the bed system described herein. The sensor array 406 is a conceptual grouping of some or all peripheral sensors that communicate with the motherboard 402 but are not native to the motherboard 402. The peripheral sensors 902, 904, 906, 908, 910, etc. of the sensor array 406 communicate with the motherboard 402 through one or more network interfaces 604, 606, 608, 610 and 612 of the motherboard, as appropriate for the configuration of the particular sensor. For example, a sensor that outputs readings through a USB cable can communicate through the USB stack 604.
[0136] Some of the peripheral sensors of the sensor array 406 may be sensors 900 mounted on the bed (e.g., temperature sensor 906, light sensor 908, sound sensor 910). The sensors 900 mounted on the bed may be embedded in the bed structure and sold with the bed, or attached to the structure later (e.g., part of a pressure sensing pad removably mounted on the top surface of the bed, part of a temperature sensing pad or heating pad removably mounted on the top surface of the bed, integrated into the top surface, attached along a connecting tube between the pump and the air chamber, within the air chamber, attached to the headboard, attached to one or more areas of an adjustable base). One or more of the sensors 902 may be, for example, Fig. 9C Other sensors 902 and 904 may not be mounted to the bed and may include pressure sensors 902 and / or peripheral sensors 904. For example, sensors 902 and 904 may be integrated or part of a user's mobile device (e.g., a mobile phone, a wearable device). Sensors 902 and sensors 904 may also be part of a central controller for controlling the bed and peripheral devices. Sometimes, sensors 902 and sensors 904 may be part of one or more home automation devices or other peripheral devices.
[0137] Sometimes, the bed mounted sensor 900 and / or some or all of the sensors 902 and 904 share networking hardware (e.g., a conduit containing wires from each sensor, a multi-wire cable or plug that connects all associated sensors to the motherboard 402 when attached to the motherboard 402). One, some, or all of the sensors 902, 904, 906, 908, and 910 may sense characteristics of the mattress (e.g., pressure, temperature, light, sound, and / or other characteristics) as well as characteristics external to the mattress. Sometimes, the pressure sensor 902 may sense the pressure of the mattress, while some or all of the sensors 902, 904, 906, 908, and 910 sense characteristics of the mattress and / or characteristics external to the mattress.
[0138] Fig. 9B 9 is a schematic top view of a bed 920 having a sensor bar 932 with sensors 934A-N for a data processing system associated with the bed 920. The bed 920 includes a mattress 922 (e.g., Figure 1 ). The mattress 922 can have a foam basin 930 below the top of the mattress 922. The foam basin 930 can have air chambers 923A and / or air chambers 923B, similar to those described herein.
[0139] The sensor bar 932 may be attached from one lateral side to the opposite lateral side (e.g., from left to right) across the mattress top 924. The sensor bar 932 may be attached near the head section of the mattress 922 to measure the temperature value and / or humidity value around the chest area of the user 936. The sensor bar 932 may also be placed at a center point (e.g., midpoint) of the mattress 922 so that the distance 938 and the distance 940 are equal to each other. The sensor bar 932 may be placed at other locations to capture the temperature value and / or humidity value at the top of the mattress 922.
[0140] Sensors 934A-N may be Fig. 9A923A. The sensor strip 932 may also include a carrier strip 933 having a first strip portion 933A and a second strip portion 933B. The carrier strip 933 may be releasably attached to the foam basin layer 920 and extend between opposite lateral ends of the foam basin 920. The sensor strip 932 may have first sensors 934A-N and second sensors 934A-N. Each of the first sensors and second sensors 934A-N may have five sensors. For example, a sensor strip 932 for a king or queen size mattress may have a total of ten sensors. When a user 936 is positioned on top of the mattress 922 above the air chamber 923A, the first sensors 934A-N may measure the temperature and / or humidity of the mattress top 924 above the air chamber 923A. These values may be used, for example, to determine the conditioned airflow supplied to the air chamber 923A. The temperature and / or humidity values measured by the second sensors 934A-N may be used, for example, to determine the conditioned airflow supplied to the air chamber 923B. The bed system 920 may provide customized airflow to different portions of the mattress 922 based on the user's body temperature and / or the temperature of different portions of the mattress top 924.
[0141] Sometimes, two separate sensor bars can be attached to mattress 922 (e.g., a first sensor bar over air chamber 923A and a second sensor bar separate from the first sensor bar over air chamber 923B). The first sensor bar and the second sensor bar can be attached to the center of mattress top 924 via a fastening element such as an adhesive. Sensor bar 932 can also be easily replaced with another sensor bar.
[0142] Fig. 9C 950 is a schematic diagram of an example bed having a force sensor 955 located at the bottom of legs 953 (e.g., four, six, eight, or other number of legs) of the bed. The force sensor 955 can also be located at other locations on the bed with similar effects (e.g., between the legs 953 and the platform 950). When a strain gauge is used as the force sensor 955, the force sensor 955 can be positioned closer to the center of the leg 953. The force sensor 955 can be a load cell.
[0143] Fig.104 is a block diagram of an example controller array 408 used in a data processing system associated with a bed system. The controller array 408 is a conceptual grouping of some or all peripheral controllers that communicate with the motherboard 402 but are not native to the motherboard 402. The peripheral controllers may communicate with the motherboard 402 through one or more of the motherboard's network interfaces 604, 606, 608, 610, and 612, as appropriate for the configuration of the particular controller. Some of the controllers may be bed mounted controllers 1000, such as a temperature controller 1006, a light controller 1008, and a speaker controller 1010, as described in reference Fig. 9A Peripheral controller 1002 and peripheral controller 1004 may communicate with motherboard 402, but are optionally not mounted to the bed.
[0144] Fig.11 is a block diagram of an example computing device 412 used in a data processing system associated with a bed system. The computing device 412 may include a computing device used by a user of the bed, including but not limited to a mobile computing device (e.g., a mobile phone, a tablet computer, a laptop computer, a smart phone, a wearable device), a desktop computer, a home automation device, and / or a central controller or other hub device.
[0145] The computing device 412 includes a power source 1100, a processor 1102, and a computer-readable memory 1104. User input and output may be transmitted by a speaker 1106, a touch screen 1108, or other components not shown (e.g., a pointing device or keyboard). The computing device 412 may run applications 1110, including, for example, applications that allow a user to interact with the system 400. These applications may allow the user to view information about the bed (e.g., sensor readings, sleep metrics), information about themselves (e.g., health conditions detected based on signals sensed in the bed), and / or configure the behavior of the system 400 (e.g., setting a desired firmness, setting desired behavior of peripheral devices). The computing device 412 may be used in addition to or in place of the remote control 122 described above.
[0146] Fig.12 is a block diagram of an example bed data cloud service 410a used in a data processing system associated with a bed system. Here, the bed data cloud service 410a is configured to collect sensor data and sleep data from a particular bed and match the data with one or more users who used the bed when the data was generated.
[0147] The bed data cloud service 410a includes a network interface 1200, a communication manager 1202, server hardware 1204, and server system software 1206. The bed data cloud service 410a is also shown to have a user identification module 1208, a device management module 1210, a sensor data module 1210, and an advanced sleep data module 1214. The network interface 1200 includes hardware and low-level software to allow hardware devices (e.g., components of the service 410a) to communicate over a network (e.g., to communicate with each other and other destinations over the Internet 412). The network interface 1200 may include a network card, a router, a modem, and other hardware.
[0148] The communication manager 1202 generally includes hardware and software running on the network interface 1200, such as software for initiating, maintaining and removing network communications (e.g., TCP / IP, SSL or TLS, Torrent, and other communication sessions on a local area network or a wide area network) used by the service 410a. The communication manager 1202 can also provide load balancing and other services to other elements of the service 410a. The server hardware 1204 generally includes a physical processing device for instantiating and maintaining the service 410a. The hardware includes but is not limited to a processor (e.g., a central processing unit, an ASIC, a graphics processor) and a computer readable memory (e.g., a random access memory, a stable hard disk, a tape backup). One or more servers can be configured as clusters, multiple computers, or data centers that can be geographically separated or connected. The server system software 1206 generally includes software running on the server hardware 1204 to provide an operating environment for applications and services (e.g., an operating system running on a real server, a virtual machine instantiated on a real server to create many virtual servers, server-level operations such as data migration, redundancy, and backup).
[0149] User identification 1208 may include or reference data related to a user of a bed having an associated data processing system. A user may include a customer, owner, or other user registered with service 410a or another service. Each user may have a unique identifier, user credentials, contact information, billing information, demographic information, or any other technically appropriate information.
[0150] Device manager 1210 may include or reference data related to beds or other products associated with the data processing system. Beds may include products sold or registered with a system associated with service 410a. Each bed may have a unique identifier, model and / or serial number, sales information, geographic information, delivery information, a list of associated sensors and control peripherals, etc. An index stored by service 410a may identify a user associated with a bed. The index may record beds sold to a user, users sleeping on the bed, and the like.
[0151] Sensor data 1212 may record raw or compressed sensor data recorded by a bed having an associated data processing system. For example, the bed's data processing system may have a temperature sensor, a pressure sensor, a motion sensor, an audio sensor, and / or a light sensor. Readings from these sensors (either in raw form or in a format generated from raw data (e.g., sleep metrics)) may be transmitted by the bed's data processing system to service 410a for storage in sensor data 1212. An index stored by service 410a may identify a user and / or bed associated with sensor data 1212.
[0152] The service 410a can use any of its available data (e.g., sensor data 1212) to generate high-level sleep data 1214. High-level sleep data 1214 includes sleep metrics and other data generated from sensor readings (e.g., health information). Some of these calculations can be performed in the service 410a rather than locally on the bed's data processing system, as these calculations may be computationally complex or require a large amount of memory space or processor power that may not be available on the bed's data processing system. This can help allow the bed system to operate using a relatively simple controller while being part of a system that performs relatively complex tasks and calculations.
[0153] For example, service 410a may retrieve one or more machine learning models from a remote data repository and use these models to determine high-level sleep data 1214. Service 410a may retrieve one or more models to determine the overall sleep quality of the user based on currently detected sensor data 1212 and / or historical sensor data. Service 410a may retrieve other models to determine whether the user is snoring based on detected sensor data 1212. Service 410a may retrieve other models to determine whether the user is experiencing a health condition based on data 1212.
[0154] Fig.13is a block diagram of an example sleep data cloud service 410b used in a data processing system associated with a bed system. Here, the sleep data cloud service 410b is configured to record data related to the user's sleep experience. The service 410b includes a network interface 1300, a communication manager 1302, server hardware 1304, and server system software 1306. The service 410b also includes a user identification module 1308, a pressure sensor manager 1310, a pressure-based sleep data module 1312, a raw pressure sensor data module 1314, and a non-pressure sleep data module 1316. Sometimes, the service 410b may include a sensor manager for each sensor. The service 410b may also include a sensor manager associated with multiple sensors on the bed (e.g., a single sensor manager may be associated with a pressure sensor, a temperature sensor, a light sensor, a motion sensor, and an audio sensor on the bed).
[0155] The pressure sensor manager 1310 may include or reference data related to the configuration and operation of the pressure sensors in the bed. The data may include identifiers of the sensor types in a particular bed, their settings and calibration data, etc. Pressure-based sleep data 1312 may use raw pressure sensor data 1314 to calculate sleep metrics related to the pressure sensor data. For example, user presence, movement, weight change, heart rate, and breathing rate may be determined based on the raw pressure sensor data 1314. The index stored by the service 410b may identify users associated with pressure sensors, raw pressure sensor data, and / or pressure-based sleep data. Non-pressure sleep data 1316 may use other data sources to calculate sleep metrics. User-entered preferences, light sensor readings, and sound sensor readings may be used to track sleep data. The presence of a user may also be determined based on a combination of raw pressure sensor data 1314 and non-pressure sleep data 1316 (e.g., raw temperature data). Sometimes, the presence of a bed may be determined using only temperature data. Changes in temperature data may be monitored to determine whether a bed exists within a time interval (e.g., a time window) of a given duration. The temperature data and / or pressure data can also be combined with other sensing modalities or motion sensors (e.g., load cells) that reflect different forms of movement to accurately detect the presence of a user. For example, the temperature data and / or pressure data can be provided as input to a bed presence classifier that can determine the presence of a user's bed based on real-time or near real-time data collected on the bed. The classifier can be trained to distinguish temperature data from pressure data, identify peaks in the temperature data and pressure data, and generate a bed presence indication based on the relevant peaks. The peaks can be within a threshold distance of each other, and then an indication that the user is in bed is generated. One or more indexes stored by the service 410b can identify the user associated with the sensor and / or data 1316.
[0156] Fig.14 14 is a block diagram of an example user account cloud service 410c used in a data processing system associated with a bed system. Here, the service 410c is configured to record a list of users and identify other data related to those users. The service 410c includes a network interface 1400, a communication manager 1402, server hardware 1404, and server system software 1406. The service 410c also includes a user identification module 1408, a purchase history module 1410, an engagement module 1412, and an application usage history module 1414.
[0157] As described above, the user identification module 1408 may include or reference data related to a user of a bed having an associated data processing system. The purchase history module 1410 may include or reference data related to a user's purchases. The purchase data may include contact information, billing information, and salesperson information associated with a sale of a bed system purchased by the user. One or more indexes stored by the service 410c may identify a user associated with a purchase of the bed.
[0158] The engagement module 1412 can track the user's interactions with the manufacturer, supplier, and / or manager of the bed / cloud service. The data may include communications (e.g., emails, service calls), data from sales (e.g., sales receipts, configuration logs), and social network interactions. The data may also include repairs, maintenance, or replacements of components of the user's bed system. The usage history module 1414 may contain data about the user's interactions with the bed's application and / or remote control. The monitoring and configuration application may be distributed to run on a computing device 412 such as described herein. The application may record and report user interactions for storage in the application usage history module 1414. One or more indexes stored by the service 410c may also identify the user associated with each log entry. The user interactions stored in the module 1414 may optionally be used to determine or predict user preferences and / or settings for the user's bed and / or peripherals that may improve the user's overall sleep quality.
[0159] Fig.15 15 is a block diagram of an example point of sale cloud service 1500 for use in a data processing system associated with a bed system. Here, the service 1500 can record data related to a user's purchases, particularly purchases of the bed system described herein. The service 1500 is shown as having a network interface 1502, a communication manager 1504, server hardware 1506, and server system software 1508. The service 1500 also includes a user identification module 1510, a purchase history module 1512, and a bed setup module 1514.
[0160] Purchase history module 1512 may include or reference data related to purchases made by the user identified in module 1510, such as data on the sale, price and location of sale, shipping 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 wish to set up the newly purchased bed, and may include an intended sleep schedule, a list of peripheral sensors and controls that they have or will install, and the like.
[0161] The bed setup module 1514 may include or reference data related to the installation of the bed purchased by the user. The bed setup data may include the date and address to which the bed was delivered, the person to whom the delivery was received, the configuration applied to the bed at the time of delivery (e.g., the firmness setting), the names of the users of the bed, which side of the bed each user will use, and the like. The data recorded in the service 1500 may be referenced by the user's bed system at a later time to control the functionality of the bed system and / or to send control signals to peripheral components. This may allow a salesperson to collect information from the user at the point of sale that subsequently facilitates the automation of the bed system. Sometimes, some or all aspects of the bed system may be automated after leaving the point of sale with little or no user-entered data required. Sometimes, the data recorded in the service 1500 may be used in conjunction with other user-entered data.
[0162] Fig.16 1 is a block diagram of an example environment cloud service 1600 used in a data processing system associated with a bed system. Here, the service 1600 is configured to record data related to the user's home environment. The service 1600 includes a network interface 1602, a communication manager 1604, server hardware 1606, and server system software 1608. The service 1600 also includes a user identification module 1610, an environmental sensor module 1612, and an environmental factor module 1614. The environmental sensor module 1612 may include a list and identification of sensors that the user identified in the module 1610 has installed in and / or around their bed (e.g., light, noise / audio, vibration, thermostat, movement / motion sensors). The module 1612 may also store historical readings or reports from the environmental sensors. The module 1612 may be accessed at a later time and used by one or more cloud services described herein to determine the user's sleep quality and / or health information. The environmental factor module 1614 may include a report generated based on the data in the module 1612. For example, module 1614 may generate and maintain a report based on light sensor data stored in environmental sensor module 1612 indicating the frequency and duration of instances of increased lighting while the user was asleep.
[0163] In the examples discussed here, each cloud service 410 is shown as having some of the same components. These same components may be shared in part or in whole between services, or they may be separate. Sometimes, each service may have a separate copy of some or all components that are the same or different in some respects. These components are provided only as illustrative examples. In other examples, each cloud service may have different numbers, types, and styles of components that are technically possible.
[0164] Fig.17 1 is a block diagram of an example of using an information processing system associated with a bed to automate peripheral devices around a bed. A behavior analysis module 1700 running on a motherboard 402 is shown here. The behavior analysis module 1700 can be one or more software components stored on a computer memory 512 and executed by a processor 502. In general, the module 1700 can collect data from various sources (e.g., sensors 902, 904, 906, 908 and / or 910, non-sensor local sources 1704, cloud data services 410a and / or 410c) and use a behavior algorithm 1702 (e.g., a machine learning model) to generate actions to be taken (e.g., commands sent to peripheral controllers, data sent to cloud services such as bed data cloud 410a and / or user account cloud 410c). For example, this is useful in tracking user behavior and automating devices that communicate with the user's bed.
[0165] Module 1700 can collect data from any technically appropriate source (e.g., sensors of sensor array 406) to collect data about the characteristics of the bed, the environment of the bed, and / or the user of the bed. The data can provide information about the current state of the environment of the bed to module 1700. For example, module 1700 can access readings from pressure sensor 902 to determine the air chamber pressure in the bed. Based on this reading and possible other data, the presence of the user can be determined. In another example, module 1700 can access light sensor 908 to detect the amount of light in the environment. Module 1700 can also access temperature sensor 906 to detect the temperature in the environment and / or the microclimate in the bed. Using this data, module 1700 can determine whether the environment and / or the components of the bed should be temperature-regulated to improve the user's sleep quality and overall comfort. Similarly, module 1700 can access data from cloud services to more accurately determine the user's sleep quality, health information, and / or control the bed and / or peripherals. For example, the behavior analysis module 1700 can access the bed cloud service 410a to access historical sensor data 1212 and / or advanced sleep data 1214. The module 1700 can also access weather reporting services, third-party data providers (e.g., traffic and news data, emergency broadcast data, user travel data), and / or clock and calendar services. Using the data retrieved from the cloud service 410, the module 1700 can accurately determine the user's sleep quality, health information, and / or control of the bed and / or peripherals. Similarly, the module 1700 can access data from non-sensor sources 1704, such as local clock and calendar services (e.g., components of the motherboard 402 or processor 502). The module 1700 can use this information to determine, for example, the time of day when the user is in bed, asleep, wakes up, and / or goes to bed.
[0166] The behavior analysis module 1700 can aggregate and prepare the data for use by one or more behavior algorithms 1702 (e.g., machine learning models). The behavior algorithm 1702 can be used to learn the user's behavior and / or perform some actions based on the state of the accessed data and / or the predicted user behavior. For example, the behavior algorithm 1702 can use available data (e.g., pressure sensors, non-sensor data, clock and calendar data) to create a model of when the user goes to bed each night. Later, the same or a different behavior algorithm 1702 can be used to determine whether an increase in air chamber pressure may indicate that the user is going to bed, and if so, send some data to the third-party cloud service 410 and / or enable the peripheral controller 1002 or 1004, the base actuator 1006, the temperature controller 1008 and / or the under-bed lighting controller 1010.
[0167] Here, the module 1700 and the behavioral algorithm 1702 are shown as components of the motherboard 402. Other configurations are also possible. For example, the same or similar behavioral analysis module 1700 and / or behavioral algorithm 1702 can be run in one or more cloud services, and the resulting output can be sent to the pump motherboard 402, the controller in the controller array 408, or any other technically appropriate recipient described in this document.
[0168] Fig.18 Examples of computing devices 1800 and examples of mobile computing devices that can be used to implement the techniques described herein are shown. Computing device 1800 is intended to represent various forms of digital computers, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframes, and other suitable computers. Mobile computing devices are intended to represent various forms of mobile devices, such as personal digital assistants, cellular phones, smart computers, and other similar computing devices. The components shown here, their connections and relationships, and their functions are meant to be exemplary only and are not meant to limit the specific implementations of the invention described and / or claimed herein.
[0169] The computing device 1800 includes a processor 1802, a memory 1804, a storage device 1806, a high-speed interface 1808 connected to the memory 1804 and a plurality of high-speed expansion ports 1810, and a low-speed interface 1812 connected to a low-speed expansion port 1814 and the storage device 1806. Each of the processor 1802, the memory 1804, the storage device 1806, the high-speed interface 1808, the high-speed expansion port 1810, and the low-speed interface 1812 is interconnected using various buses and may be mounted on a common motherboard or otherwise as appropriate. The processor 1802 may process instructions for execution within the computing device 1800, including instructions stored in the memory 1804 or on the storage device 1806 to display graphical information of a GUI on an external input / output device such as a display 1816 coupled to the high-speed interface 1808. In other specific implementations, multiple processors and / or multiple buses may be used with multiple memories and multiple types of memories as appropriate. In addition, multiple computing devices may be connected, each of which provides a portion of the necessary operations (e.g., as a server array, a group of blade servers, or a multi-processor system). Memory 1804 stores information within computing device 1800. In some implementations, memory 1804 is one or more volatile memory units. In some implementations, memory 1804 is one or more non-volatile memory units. Memory 1804 may also be another form of computer-readable medium, such as a disk or optical disk. Storage device 1806 is capable of providing mass storage for computing device 1800. In some implementations, storage device 1806 may be or include a computer-readable medium, such as a floppy disk device, a hard disk device, an optical disk device, or a tape device, a flash memory or other similar solid-state storage device, or an array of devices including devices in a storage area network or other configurations. A computer program product may be tangibly embodied in an information carrier. A computer program product may also include instructions for executing one or more methods (such as those described above) when executed. The computer program product may also be tangibly embodied in a computer-readable medium or machine-readable medium, such as the memory 1804 , storage device 1806 , or memory on the processor 1802 .
[0170] High-speed interface 1808 manages bandwidth-intensive operations of computing device 1800, while low-speed interface 1812 manages lower bandwidth-intensive operations. This functional allocation is exemplary only. In some specific implementations, high-speed interface 1808 is coupled to memory 1804, display 1816 (e.g., through a graphics processor or accelerator), and is coupled to a high-speed expansion port 1810 that can accept various expansion cards (not shown). In this specific implementation, low-speed interface 1812 is coupled to storage device 1806 and low-speed expansion port 1814. Low-speed expansion port 1814, which may include various communication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet), can be coupled to one or more input / output devices (such as keyboards, pointing devices, scanners) or networking devices (such as switches or routers) through a network adapter, for example. As shown, computing device 1800 can be implemented in a variety of different forms. For example, the computing device can be implemented as a standard server 1820, or it can be implemented multiple times in a group of such servers. In addition, the computing device can be implemented in a personal computer such as a laptop computer 1822. The computing device may also be implemented as part of a rack server system 1824. Alternatively, components from the computing device 1800 may be combined with other components in a mobile device (not shown), such as a mobile computing device 1850. Each of these devices may contain one or more of the computing device 1800 and the mobile computing device 1850, and the entire system may consist of multiple computing devices that communicate with each other. The mobile computing device 1850 includes a processor 1852, a memory 1864, an input / output device (such as a display 1854), a communication interface 1866, and a transceiver 1868, among others. The mobile computing device 1850 may also be provided with a storage device, such as a micro drive or other device, to provide additional storage. Each of the processor 1852, the memory 1864, the display 1854, the communication interface 1866, and the transceiver 1868 is interconnected using various buses, and several of these components may be mounted on a common motherboard or otherwise as appropriate.
[0171] The processor 1852 can execute instructions within the mobile computing device 1850, including instructions stored in the memory 1864. The processor 1852 can be implemented as a chipset including separate and multiple analog and digital processor chips. The processor 1852 can, for example, provide coordination of other components of the mobile computing device 1850, such as control of a user interface, applications run by the mobile computing device 1850, and wireless communications performed by the mobile computing device 1850. The processor 1852 can communicate with the user through a control interface 1858 and a display interface 1856 coupled to the display 1854. The display 1854 can be, for example, a TFT (thin film transistor liquid crystal display) display or an OLED (organic light emitting diode) display, or other appropriate display technology. The display interface 1856 may include appropriate circuits for driving the display 1854 to present graphics and other information to the user. The control interface 1858 can receive commands from the user and convert them to submit to the processor 1852. In addition, the external interface 1862 can provide communication with the processor 1852 to enable near-area communication of the mobile computing device 1850 with other devices. External interface 1862 may provide, for example, for wired communication in some implementations, or for wireless communication in other implementations, and multiple interfaces may also be used.
[0172] Memory 1864 stores information within the mobile computing device 1850. Memory 1864 may be implemented as one or more of a computer-readable medium, a volatile memory unit, or a non-volatile memory unit. Expansion memory 1874 may also be provided and connected to the mobile computing device 1850 via an expansion interface 1872, which may include, for example, a SIMM (Single In-line Memory Module) card interface. Expansion memory 1874 may provide additional storage space for the mobile computing device 1850, or may also store applications or other information for the mobile computing device 1850. Specifically, expansion memory 1874 may include instructions for executing or supplementing the above-mentioned processes, and may also include security information. Thus, for example, expansion memory 1874 may be provided as a security module of the mobile computing device 1850, and may be programmed with instructions that allow secure use of the mobile computing device 1850. In addition, security applications and additional information may be provided via a SIMM card, such as placing identification information on the SIMM card in an unbreakable manner.
[0173] The memory may include, for example, flash memory and / or NVRAM memory (non-volatile random access memory), as described below. In some implementations, a computer program product is tangibly embodied in an information carrier. The computer program product contains instructions that, when executed, perform one or more methods (such as those described above). The computer program product may be a computer-readable medium or a machine-readable medium, such as memory 1864, expansion memory 1874, or memory on processor 1852. In some implementations, the computer program product may be received, for example, in a propagated signal by transceiver 1868 or external interface 1862.
[0174] The mobile computing device 1850 can communicate wirelessly through a communication interface 1866, which can include digital signal processing circuitry as necessary. The communication interface 1866 can provide communications under various modes or protocols, such as GSM voice calls (Global System for Mobile Communications), SMS (Short Message Service), EMS (Enhanced Messaging Service) or MMS messaging (Multimedia Messaging Service), CDMA (Code Division Multiple Access), TDMA (Time Division Multiple Access), PDC (Personal Digital Cellular), WCDMA (Wideband Code Division Multiple Access), CDMA2000 or GPRS (General Packet Radio Service), etc. Such communications can occur, for example, using radio frequencies through a transceiver 1868. In addition, short-range communications can be performed, such as using Bluetooth, WiFi or other such transceivers (not shown). In addition, a GPS (Global Positioning System) receiver module 1870 can provide additional navigation and location-related wireless data to the mobile computing device 1850, which can be used as appropriate by applications running on the mobile computing device 1850. The mobile computing device 1850 may also communicate audibly using an audio codec 1860, which may receive verbal information from a user and convert it into usable digital information. The audio codec 1860 may also generate audible sounds for the user, for example, through a speaker in a handset of the mobile computing device 1850. Such sounds may include sounds from voice phone calls, may include recorded sounds (e.g., voice messages, music files, etc.), and may also include sounds generated by applications operating on the mobile computing device 1850. As shown, the mobile computing device 1850 may be implemented in a variety of different forms. For example, the mobile computing device may be implemented as a cellular phone 1880. The mobile computing device may also be implemented as part of a smart phone 1882, a personal digital assistant, or other similar mobile device.
[0175] Various implementations of the systems and techniques described herein can be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and / or combinations thereof. These various implementations can include implementations in one or more computer programs executable and / or interpretable on a programmable system that includes at least one programmable processor that can be special or general purpose, coupled to receive data and instructions from and send data and instructions to a storage system, at least one input device, and at least one output device.
[0176] These computer programs (also referred to as programs, software, software applications, or code) include machine instructions for a programmable processor and may be implemented in high-level procedural and / or object-oriented programming languages and / or assembly / machine languages. As used herein, the terms machine-readable medium and computer-readable medium refer to any computer program product, apparatus, and / or device (e.g., disks, optical disks, memories, and programmable logic devices (PLDs)) for providing machine instructions and / or data to a programmable processor, including machine-readable media that receive machine instructions as machine-readable signals. The term machine-readable signal refers to any signal for providing machine instructions and / or data to a programmable processor.
[0177] To provide interaction with a user, the systems and techniques described herein may be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user and a keyboard and pointing device (e.g., a mouse or trackball) that the user can use to provide input to the computer. Other types of devices may also be used to provide interaction with the user; for example, the feedback provided to the user may be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user may be received in any form, including sound, voice, or tactile input. The systems and techniques described herein may be implemented in a computing system that includes a back-end component (e.g., as a data server), or includes a middleware component (e.g., an application server), or includes a front-end component (e.g., a client computer with a graphical user interface or a web browser through which a user can interact with a specific implementation of the systems and techniques described herein), or any combination of such back-end, middleware, or front-end components. The components of the system may be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include local area networks (LANs), wide area networks (WANs), and the Internet. The computing system may include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship between client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
[0178] Fig.19 1900 is a block diagram of an example system for determining the risk of insomnia. To understand the temporal changes in the severity of insomnia, especially the transition period, fine-grained temporal data of users based on sensor data can be used, rather than just questionnaire administration. Sleep / wake metrics (e.g., sleep efficiency, wake-up after sleep onset, sleep latency, number of wake-ups), sleep structure (i.e., transitions in sleep stages over time), and physiological signals are believed to show differences between insomnia patients and healthy controls. In one example, lying in bed for a long time (about 2 hours) before starting sleep is followed by a long wake-up period (about 500 minutes), followed by a sleep period of about one hour, and finally a long wake-up period that may indicate that the subject is trying to recover some sleep. During the entire sleep period, especially before sleep onset, the heart rate of insomniac subjects is considered to be statistically significantly elevated. In addition, it is believed that insomniacs have lower heart rate variability (HRV) after falling asleep. An example of an HRV metric is SDNN.
[0179] The system 1900 is capable of automatically sensing the physiological conditions of a subject while sleeping in his or her own bed, advantageously allowing automatic sensing of the subject's sleep at night without requiring the subject to remember to turn on the device, wear the wearable device (although the system can be configured to incorporate data from the wearable device), or otherwise require the subject to comply with a nightly system usage schedule. However, such nighttime sensing can be used to monitor current signs of insomnia and also identify early indications of risk of insomnia (even before symptoms of insomnia (e.g., sleep disruption) occur).
[0180] The bed 1902 is equipped with a sensor (e.g., a pneumatic sensor or a load cell) or multiple sensors (including pneumatic sensors, load cells, temperature sensors, audio sensors) to derive a ballistocardiography signal 1904 (or other data streams) from which sleep structure metrics and cardiopulmonary system metrics 1906 can be extracted. Feature vectors 1908 (containing aggregate structures of sleep / wake and cardiopulmonary metrics) are extracted daily (i.e., on a sleep period basis), and a machine learning model 1910 (e.g., a hidden Markov model or a recurrent neural network or a random forest analysis) of the historical records is used in the decision-making process to provide a prediction of the risk of insomnia. Based on the risk of insomnia from the model 1910, one or more therapeutic interventions 1912 can be initiated.
[0181] Detection of insomnia risk with greater temporal resolution (as may be advantageously provided by the technology) may be used to guide possible intervention strategies. In one scenario, upon detection of an acute episode of insomnia, several sessions of cognitive behavioral therapy for insomnia (CBTI; a highly effective behavioral intervention for the treatment of insomnia based on behavioral components such as stimulus control and temporal sleep restriction, as well as cognitive components determining how sleep and sleep difficulties are interpreted) may be recommended to prevent the transition from acute insomnia to chronic insomnia.
[0182] In another embodiment, the technique can be used to estimate the quantification of predisposing factors. This can be achieved by focusing the risk quantification on a large portion of the users of the system 1900 and using a clustering algorithm (such as hierarchical clustering) to identify groups of users with low / high / medium levels of predisposing factors.
[0183] In another embodiment, information about the presence of pre-conditions such as depression or anxiety is initially collected from the user or healthcare provider to provide personalized treatment. In fact, anxiety and depression are considered risk / aggravating factors for insomnia.
[0184] Fig. 20is a block diagram of an example system 2000 with computing elements and data. For example, the system 2000 can be used to create a classifier with the machine learning model 1910 and other models for recognizing future, yet-to-be-seen sleeper data based on training data from past sleeper data.
[0185] In the example shown, the system 2000 is used to create one or more Insomnia Severity Index (ISI) models that generate ISI values based on sensor data from the bed. However, it should be understood that other units of measure for insomnia can be used, and other conditions or disease states can be used, including the risk of having insomnia or other conditions / diseases.
[0186] Sleep data of the subject can be collected and marked with appropriate ISI values for use as training data. For example, a human expert can be hired to mark the data, or other automated analysis can be performed. In some embodiments, for users with constant ISI classification (i.e., those users whose absolute value of the ISI change rate does not exceed a threshold within a specific time window), the data is divided into training data 2002 and validation data 2004. In some embodiments, data from users with varying ISI can be used to train the model. The training data 2002 is used to create one or more ISI classification models. The model is then tested using validation data, and if there is a high degree of consistency between the marked ISI classification and the model results, this can be regarded as an indication that the model training produces a useful model, and a low level of consistency can be regarded as an indication of a model that, for example, overfits the training data.
[0187] The feature extraction engine 2006 examines the training data and generates one or more feature vectors 2008. For example, sleep data for a particular user may be recorded in a single feature vector 2008. These features may be aggregated across multiple sleep periods for the same user, or may be collected from only a single sleep period. In some cases, data from several sleep periods (e.g., 7, 10, or 14 days) is aggregated, which may result in higher accuracy. The time window may be set based on the expected change in the severity of insomnia caused by a treatment (e.g., behavioral or drug treatment).
[0188] Trainer 2010 can generate one or more ISI risk models for the provided sleep data (e.g., vector 2008). The one or more models are created by performing machine learning analysis on the training sleep data and the training set of training insomnia risk. In some cases, trainer 2010 is a random forest classifier or regressor.
[0189] Evaluation 2014 is performed using validation data 2004 and test data 2012, which contains training data for subjects whose ISI has been shown to improve or worsen within the study window. For example, the validation data 2004 can be used initially to test whether the model is overfitting. If the model passes the overfitting test, a generalization test can be performed in a second round of testing using test data 2012.
[0190] Fig.21 Data 2100 of a system for determining risk of insomnia is shown. Data 2100 shows evaluation of various configurations of systems 1900 and 2000 using different feature vectors, all of which have been shown to provide high enough accuracy to be implemented in real world applications.
[0191] In one example, the feature vector includes features for: i) breathing rate, ii) heart rate, iii) movement, iv) sleep quality, v) sleep duration, vi) restful sleep duration, and vii) time to sleep. In one example, the feature vector includes features for: i) average heart rate, ii) movement percentage, iii) rest time, iv) breathing rate, v) lack of sleep, vi) sleep duration, and vii) sleep quality. In one example, the feature vector includes features for: i) sleep quality and ii) sleep quality deviation.
[0192] Fig. 22 22 is a swim lane diagram of an example process 2200 for determining insomnia risk, reporting insomnia risk, and / or operating a computer-controlled automation based on insomnia risk. For example, process 2200 can be performed by system 1900 and system 2200, but other systems can also perform process 2200 or other similar processes.
[0193] Sensors 2202 and 2204 sense physiological phenomena of a user on bed 2212. For example, sensors such as pressure sensors, thermal sensors, or other types of sensors may sense the user while the user is sleeping (or attempting to sleep) in bed during a sleep period (typically overnight, but may also be other periods, such as when a person has shift work duties). The sensors may sense physical phenomena such as heart activity, breathing movements, body temperature, gross motor movements (e.g., turning over, moving limbs), and other types of phenomena.
[0194] Sensors 2202 and 2204 generate one or more data streams based on sensing of physiological phenomena of user 2214, and computer system 2206 receives data stream 2216. For example, the sensors may create digital data that is sent to computing system 2206 via a wired or wireless data network.
[0195] The computer system 2206 generates an insomnia risk metric 2218. For example, the computing system 2206 can use the data stream to generate an insomnia risk metric for the user for the sleep period or across multiple sleep periods. In some cases, the system is configured to generate an insomnia risk metric for a single night of sleep, which can advantageously provide a risk metric faster than some other systems that aggregate risk across multiple sleep periods. In some cases, the system is configured to generate an insomnia risk metric for multiple sleep periods (e.g., 3 calendar days, a week, all recorded sleep periods), which can advantageously reduce the impact of a single night of sleep disruption due to one-time problems that are unlikely to repeat (e.g., an emergency alarm that wakes the user in the middle of the night, a viral infection that clears up on its own after a few days, an early alarm to catch a holiday train).
[0196] The insomnia risk metric may take various technically appropriate forms. For example, the metric may be a metric that classifies a user into one of a limited number of categories (no risk, mild risk, high risk; no insomnia, mild insomnia, severe insomnia; no insomnia, insomnia). The metric may measure current insomnia symptoms, symptoms that have not yet appeared (or are currently only mild but may become severe, or are currently severe but may become mild), and the risk of development (or worsening or improvement).
[0197] To generate an insomnia risk metric, the computer system 2206 can provide the user's sleep data as input to an insomnia risk classifier. The computer system 2206 can then receive the insomnia risk metric as output. In some cases, the insomnia risk classifier includes a model that defines a relationship between sleep data and insomnia risk (see, e.g., Figure 2000).
[0198] The computer system instructs the GUI 2208 of the computer system to report the insomnia metric 2220. For example, the GUI 2208 may be the screen of a user's phone, a monitor used by the user's healthcare provider, etc. The report may indicate the insomnia risk metric as well as other data (e.g., values of features in the feature vector 2008, sleep data unrelated to the insomnia risk metric, health data unrelated to sleep).
[0199] The computer system instructs the automation controller 2210 of the computing system 2206 to enable one or more automated peripherals based on the insomnia risk metric. For example, the computer system 2206 can automatically change the HVAC temperature of the bed or the foot heating setting. This can be performed without specific user input to enable the peripherals. In some cases, this allows the computing system 2206 to provide environmental stimulation to the user at the user's consistent bedtime (e.g., changes in temperature, the hardness of the bed, the introduction of olfactory stimulation, and / or a soundscape including noise reduction and noise addition to the environment). It should be understood that this can encourage the user to fall asleep through classical conditioning, in which specific stimulation at fixed times of the day becomes associated with the user's behavior of falling asleep. For example, a user who tries to go to bed at 10:15 p.m. may be exposed to a specific type of white noise in their bedroom at 10:17 every night (due to the computing system 2206 automatically enabling a white noise generator). After this exposure continues for several weeks, the user's body and mind becomes accustomed to the stimulation and associates it with falling asleep, and thus using white noise can help the user fall asleep at night when the user has trouble falling asleep for any reason (e.g., a particularly stressful day or just normal variations in sleep physiology). One unit of measure of consistency is by considering a window around a target bedtime (e.g., 60 minutes) and considering the person's success in going to bed or falling asleep within that time window when exposed to the stimulation.
[0200] As a supplement or alternative to conventional environmental stimulation for falling asleep, computing system 22036 can provide another (or the same) environmental stimulation to the user at the consistent wake-up time of the user. For example, if the user has set an alarm in computing system 2206 to get up at 6:15 in the morning, the computing system can provide an auditory alarm stimulation at 6:15 in the morning (that is, a normal alarm wakes up the user). However, environmental stimulation may include other types of stimulation that are not intended to wake up the user immediately, and normal auditory alarms may be excluded. For example, at 5:45 in the morning, computing system 2206 may instruct HVAC to increase the temperature in a room or home. This can similarly adjust the user to associate environmental stimulation with wake-up, thereby reducing the pressure or impact from auditory alarms in the middle of the deep sleep stage. In some cases, people may complain about waking up too early, but there are no other serious symptoms. In this case, a wake-up routine can be performed, and a bedtime routine may not be performed.
Claims
1. A system, comprising: a bed having a mattress; One or more sensors configured to: sensing at least one physiological phenomenon of a user of the bed; generating one or more data streams based on the sensing of the physiological phenomenon of the user; A computing system comprising at least one processor and a computer memory, the computing system being configured to: receiving the one or more data streams; as well as An insomnia risk metric is generated for the user using the one or more data streams, reflecting a risk that the user will experience or is experiencing symptoms consistent with insomnia.
2. The system of claim 1, wherein the computing system is further configured to report the insomnia risk metric in a graphical user interface (GUI). 3 . The system of claim 1 , wherein the computing system is further configured to enable one or more automation peripherals based on the insomnia risk metric.
4. The system of claim 3, wherein the system is further configured to enable the automation peripheral device according to a regular daily schedule, the enabling of the automation peripheral device comprising providing a first environmental stimulus to the user at a consistent bedtime for the user. 5 . The system of claim 4 , wherein the regular daily schedule includes providing a second environmental stimulus to the user at a consistent wake-up time for the user.
6. The system of claim 1 , wherein to generate the insomnia risk metric, the computing system is configured to provide the user's sleep data as input to an insomnia risk classifier and receive the insomnia risk metric as output, wherein the insomnia risk classifier includes a model defining a relationship between sleep data and insomnia risk. 7 . The system of claim 6 , wherein the sleep data is a feature vector created from the sleep data of the user across a plurality of sleep sessions.
8. The system of claim 7, wherein the feature vector comprises features for i) breathing rate, ii) heart rate, iii) movement, iv) sleep quality, v) sleep duration, vi) restful sleep duration, and vii) sleep onset time.
9. The system of claim 7, wherein the feature vector comprises features for i) average heart rate, ii) exercise percentage, iii) rest time, iv) breathing rate, v) sleep loss, vi) sleep duration, and vii) sleep quality.
10. The system of claim 7, wherein the feature vector comprises features for: i) sleep quality and ii) sleep quality deviation.
11. The system of claim 6, wherein the model is created by performing machine learning analysis on training sleep data and a training set of training insomnia risk.
12. The system of claim 11, wherein the insomnia risk classifier is implemented as a random forest.
13. A controller for an air bed, the controller comprising a memory and one or more processors, the controller being configured to: receiving one or more data streams based on sensing of at least one physiological phenomenon of a user; and An insomnia risk metric is generated for the user using the one or more data streams, reflecting a risk that the user will experience or is experiencing symptoms consistent with insomnia.
14. The controller of claim 13, wherein the controller is further configured to report the insomnia risk metric in a graphical user interface (GUI).
15. The controller of claim 13, wherein the controller is further configured to enable one or more automated peripherals based on the insomnia risk metric according to a regular daily schedule, the enabling of the automated peripherals comprising providing a first environmental stimulus to the user at a consistent bedtime for the user.
16. The controller of claim 13, wherein to generate the insomnia risk metric, the controller is configured to provide the user's sleep data as input to an insomnia risk classifier and receive the insomnia risk metric as output, wherein the insomnia risk classifier includes a model defining a relationship between sleep data and insomnia risk.
17. A bed, the bed being configured as: receiving one or more data streams based on sensing of at least one physiological phenomenon of a user; and An insomnia risk metric is generated for the user using the one or more data streams, reflecting a risk that the user will experience or is experiencing symptoms consistent with insomnia.
18. The bed of claim 17, wherein the bed is further configured to report the insomnia risk metric in a graphical user interface (GUI).
19. The bed of claim 17, wherein the bed is further configured to enable one or more automated peripherals based on the insomnia risk metric according to a regular daily schedule, the enabling of the automated peripherals comprising providing a first environmental stimulus to the user at a consistent bedtime for the user.
20. The bed of claim 17, wherein to generate the insomnia risk metric, the bed is configured to provide the user's sleep data as input to an insomnia risk classifier and receive the insomnia risk metric as output, wherein the insomnia risk classifier includes a model defining a relationship between sleep data and insomnia risk.