Head with passive blood pressure monitoring function

By installing a heart sound sensor and machine learning model on the bed, using the pulse propagation time difference to calculate blood pressure, the problem of contactless blood pressure monitoring is solved, and accurate and continuous monitoring of user blood pressure is achieved, which is especially suitable for user groups that are difficult to use in traditional methods.

JP2025503487APending Publication Date: 2025-02-04SLEEP NUMBER CORP
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
JP2024537977
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-06-15
Filing Date
2022-12-20
Publication Date
2025-02-04

AI Technical Summary

Technical Problem

The prior art is difficult to accurately monitor user blood pressure changes without interfering with user sleep, especially for people who cannot use traditional cuff sphygmomanometers, such as obese patients and white coat syndrome patients.

Method used

Using a bed system containing the first and second heart sound sensors, blood pressure values ​​are calculated by measuring the time difference of the propagation of user's heart pulses in different parts of the body, and blood pressure monitoring is carried out in combination with machine learning models and computing devices to achieve contactless blood pressure monitoring.

Benefits of technology

It realizes monitoring of blood pressure changes without interference during the user's sleep, improving the accuracy and continuity of blood pressure monitoring, and is especially suitable for users who cannot use traditional methods, and can identify abnormal blood pressure changes and blood pressure patterns during sleep.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025503487000001_ABST
    Figure 2025503487000001_ABST
Patent Text Reader

Abstract

The bed has a mattress for supporting a user lying on the bed. A first BCG sensor is configured to collect first BCG data from a first position of the user lying on the bed due to pressure applied to the bed by the user. A second BCG sensor is configured to collect second BCG data from a second position of the user. A computer system has a processor and a memory and is configured to receive the first BCG data and the second BCG data to determine one or more blood pressure (BP) values ​​of the user.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present disclosure relates to consumer devices, such as airbeds, that are equipped with sensors and computing hardware.

[0002] [CROSS REFERENCE TO RELATED APPLICATIONS] This application claims the benefit of U.S. Provisional Patent Application No. 63 / 352,394, filed June 15, 2022, and U.S. Provisional Patent Application No. 63 / 292,928, filed December 22, 2021. The disclosures of these prior applications are hereby incorporated by reference into the disclosure of this application.

[0003] [Background technology] Generally, a bed is a piece of furniture used as a place to sleep or relax. Many modern beds include a soft mattress on top of a bed frame. The mattress may contain springs, foam materials, and / or air chambers to support the weight of one or more occupants. Summary of the Invention

[0004] A bed may be used to passively monitor the blood pressure (BP) of an individual in bed. By using differential measurements of cardiac activity, such as the time difference when a blood pulse reaches various regions of the body, the individual's BP value may be determined. This may involve calculating the pulse transit time (PTT) using signals from two or more ballistocardiogram data sources of the individual, and then using the PTT as input to a model that uses the PTT for BP estimation.

[0005] A system of one or more computers may be configured to perform a particular operation or behavior by installing software, firmware, hardware, or a combination thereof on the system, which, in operation, causes the system to perform the operation or behavior. One or more computer programs may be configured to perform a particular operation or behavior by including instructions that, when executed by a data processing device, cause the device to perform the operation or behavior. One general aspect includes a bed having a mattress for supporting a user lying on the bed. The system also includes a first ballistocardiogram (BCG) sensor, the first BCG sensor configured to collect first BCG data from a first position of the user lying on the bed due to pressure applied to the bed by the user. The system also includes a second ballistocardiogram (BCG) sensor, the second BCG sensor configured to collect second BCG data from a second position of the user. The system also includes a computer system, which may have a processor and a memory, configured to receive the first BCG data and the second BCG data and determine one or more blood pressure (BP) values ​​of the user. Other embodiments of this aspect include corresponding computer systems, devices, and computer programs stored on one or more computer storage devices, each configured to perform the operations of the method.

[0006] Some implementations may include one or more of the following features: The first BCG sensor may be a pressure sensor configured to sense a pressure reading applied by the user to the bed due to the user's weight and movement. The first BCG sensor may be one of a group that may include a pressure transducer and a load cell. The second BCG sensor may be a system that may have one or more load cells configured to sense a load applied by the user to a support member of the bed due to the user's weight and movement. The second BCG sensor may be a device worn by the user at a specific location on the user's body. The second BCG sensor may be a camera configured to sense energy emissions of the user's skin, the energy emissions may be one of a group that may include visible light and non-visible energy. To determine one or more BP values ​​of the user, the computer system may be configured to determine a pulse wave transit time (PTT) of the user to identify a time length between a pulse event in the first BCG data and a pulse event in the second BCG data representing a time length between when the user's pulse arrives at the first location and when the user's pulse arrives at the second location, provide the PTT as an input to a BP classifier, and receive the one or more BP values ​​of the user as an output. The BP classifier is trained using at least one model from a group that may include: i) a linear model that finds a match between training PTT values ​​and training BP values, ii) a polynomial model that finds coefficients that describe a function that relates training PTT values ​​to training BP values, iii) a machine learning model that creates a data structure created by a machine learning process, and iv) a boosted decision tree regression model that uses training PTT values ​​as a feature vector. The data structure may be a convolutional neural network. The computer system may further be configured to identify a time window for a particular sleep stage of a sleep session of the user asleep on the bed, and identify a representative blood pressure (BP) for the sleep stage based on one or more BP values ​​of the user that fall within the time window.The representative BP may be the Nth lowest BP value in the time window representing a low BP value for the sleep stage. The representative BP may be the Nth lowest percentile BP value. The computer system may be further configured to receive a time-point blood pressure value of the user obtained after the sleep session, and compare the low BP value for the sleep stage with the time-point blood pressure value to determine a BP decline value for the user representing an amount of BP decline exhibited by the user during the sleep session. The computer system may be further configured to perform at least one of a group of steps that may include using the BP decline value in response to the determination of the BP decline value, the group of steps including storing the BP decline value in the memory, generating an alert for output to a user output device, and activating an automation device. The time window may be between 0 hours and 4 hours after sleep onset. The computer system may be further configured to perform at least one of a group of steps that may include using the BP value in response to the determination of the BP value, the group of steps including storing the BP value in the memory, generating an alert for output to a user output device, and activating an automation device. Implementations of the described techniques may include hardware, a method or process, or computer software on a computer-accessible medium.

[0007] The devices, systems and techniques described herein may provide one or more of the following advantages: For example, an individual (user) can monitor their own blood pressure using passive sensing that does not require the user to be involved or switched on. In some forms, the system can automatically monitor BP whenever the user is in bed. This means that the user does not need to memorize or follow a routine that may entail compliance issues. Furthermore, the technology can be used for people who are unable to use other types of home BP monitoring in situations where they need to monitor their blood pressure at home. For example, an obese patient who has difficulty finding an inflatable cuff that fits them at home may use the bed. And as the obese patient's condition improves and their arms become thinner, there is no need to find smaller and smaller cuffs. In another example, a healthy adult may develop high blood pressure, low blood pressure, or other conditions such as drug interactions that do not manifest as visible symptoms. Thus, the user may know that they should check their blood pressure. Here, the bed can be used to passively monitor BP, so that when blood pressure values ​​indicate an out-of-normal range, a time value (BP at a given moment) and trend values ​​(BP over a single sleep session, or over weeks or months of sleep sessions) can be provided to the user.

[0008] This technology can also work with beds and computing hardware purchased and used for other purposes. For example, a user may select a pressure adjustable air bed that includes air bladders, pressure sensors, load cells, and a controller, which may provide added comfort over other beds. This hardware may perform dual roles, i.e., provide health monitoring without requiring more hardware than is already in use. This may reduce costs and extend this functionality to people who cannot or do not want to use single-purpose hardware. In some cases, a user may simply modify their bed once to place a pressure-sensitive pad or strip under the mattress, without having to think about or store separately additional hardware added to the bed.

[0009] The technology can be configured to use a minimum number of sensors and can be expanded to add additional sensors if available. For example, in addition to load cells and pressure sensors, users can wear wearable devices such as watches and chest straps, and these data sources can be incorporated into the BP sensing technology to increase accuracy and redundancy in case one sensing method fails.

[0010] This technique may capture BP while the user is asleep, which is difficult to do with other methods, and the user's BP may change during monitoring. For example, the user may suffer from white coat syndrome, in which anxiety about illness or interaction with a doctor may itself cause a sudden rise in BP, masking hypotension, causing healthy BP to be classified as hypertension, or falsely increasing the intensity of hypertension measured. For such users, spending a night in a sleep lab or hospital may not provide an accurate BP reading. Similarly, other systems for measuring BP during sleep may include contact-type sensors that may disturb sleep. For example, a cuff may be worn that is inflated every hour to measure BP. However, especially for hypertensive patients, the pressure required by the cuff to collect this information may be painful or strong enough to disturb sleep, which may itself increase BP. On the other hand, this technique may be generated without any contact with the user's body other than normal bed use, i.e., sleeping on a mattress with a sheet and a blanket. Alternatively, the technology may be used with contact that is not intrusive, such as a watch that measures pulse. In doing so, the technology may avoid the aforementioned limitations and may be advantageously used by users who do not have access to other methods for monitoring BP during sleep. Continuous BP measurement may be particularly advantageous for users with blood pressure disorders, including patients under the care of a healthcare provider. Measuring these users once may not provide the complete picture needed for a physician to recommend treatment. There is a phenomenon known as a BP dip during sleep, i.e., a BP dip occurs during sleep. A BP pattern that does not dip or reverse is believed to be strongly associated with risk of heart failure. This technology advantageously allows detection of abnormal BP changes (e.g., absence of dip) during sleep, enabling users and their caregivers to identify and treat the causes of BP dips and other patterns detectable with continuous BP measurement during sleep.

[0011] The details of one or more implementations are set forth in the accompanying drawings and the description below. Other features, aspects, and potential advantages will become apparent from the accompanying description and drawings. [Brief description of the drawings]

[0012] [Figure 1] FIG. 1 illustrates an exemplary airbed system.

[0013] [Diagram 2] FIG. 2 is a block diagram of an example of various components of an airbed system.

[0014] [Diagram 3] FIG. 3 illustrates an exemplary environment including a bed in communication with multiple devices in and around the home.

[0015] [Figure 4A] 4A and 4B are block diagrams of an exemplary data processing system that may be associated with a bed. [Figure 4B] 4A and 4B are block diagrams of an exemplary data processing system that may be associated with a bed.

[0016] [Diagram 5] 5 and 6 are block diagrams of example motherboards that may be used in a data processing system associated with a bed. [Figure 6] 5 and 6 are block diagrams of example motherboards that may be used in a data processing system associated with a bed.

[0017] [Figure 7] FIG. 7 is a block diagram of an example of a daughter board that may be used in a data processing system associated with the bed.

[0018] [Figure 8]FIG. 8 is a block diagram of an example of a motherboard without daughterboards that may be used in a data processing system associated with a bed.

[0019] [Figure 9] FIG. 9 is a block diagram of an example of a sensor array that may be used in a data processing system associated with a bed.

[0020] [Figure 10] FIG. 10 is a block diagram of an example of a controller array that may be used in a data processing system associated with a bed.

[0021] [Figure 11] 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.

[0022] [Figure 12] 12-16 are block diagrams of example cloud services that may be used with a data processing system associated with a bed. [Figure 13] 12-16 are block diagrams of example cloud services that may be used with a data processing system associated with a bed. [Figure 14] 12-16 are block diagrams of example cloud services that may be used with a data processing system associated with a bed. [Figure 15] 12-16 are block diagrams of example cloud services that may be used with a data processing system associated with a bed. [Figure 16] 12-16 are block diagrams of example cloud services that may be used with a data processing system associated with a bed.

[0023] [Figure 17]FIG. 17 is a block diagram of an example of automating peripherals around a bed using a data processing system that may be associated with the bed.

[0024] [Figure 18] FIG. 18 is a schematic diagram illustrating an example of a computing device and a mobile computing device.

[0025] [Figure 19] FIG. 19 is a schematic diagram of a system including a bed used to passively monitor blood pressure.

[0026] [Figure 20] FIG. 20 shows the components of the pressure signal used to determine the pulse transit time.

[0027] [Figure 21] FIG. 21 is a swim lane diagram of an exemplary process for determining blood pressure values.

[0028] [Figure 22] FIG. 22 is a flow chart of an exemplary process for determining blood pressure values.

[0029] [Diagram 23] FIG. 23 is a flow chart of an exemplary process for determining an indicator of risk based on blood pressure values.

[0030] [Figure 24] FIG. 24 shows an example of two BCGs captured and plotted against a directly measured ECG. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0031] Like reference symbols indicate like elements in the various drawings.

[0032] A bed, for example, may sense cardiac activity at two different locations on the body, from which blood pressure (BP) may be determined, and thus the bed may be used as a passive BP sensor.

[0033] As blood circulates through the body, each contraction of the heart can transmit a pressure wave (i.e., pulse) through the circulatory system. The speed of this transmission is thought to be a function of blood pressure. Thus, BP can be calculated by comparing when the pulse wave (pulse) arrives at one area of ​​the body (e.g., the torso) to when it arrives at another part of the body (e.g., the legs). This time difference can then be used with a function to convert the time difference into BP or other similar measurements.

[0034] [Example Air Bed Hardware]

[0035] FIG. 1 illustrates an exemplary airbed system 100 including a bed 112. The bed 112 may include a mattress that includes at least one air chamber 114 surrounded by an elastic boundary 116 and encapsulated by a heavy-duty cotton bedding fabric 118. The elastic boundary 116 may include any suitable material, such as foam. In some embodiments, the elastic boundary 116 may be combined with one or more foam layers (not shown in FIG. 1) on top to form an inverted foam tab. In other embodiments, the mattress structure may be modified as appropriate for the application.

[0036] As shown in FIG. 1, the bed 112 may be a two-chamber design having first and second fluid chambers, such as a first air chamber 114A and a second air chamber 114B. In some cases, the bed 112 may include a chamber for use with a fluid other than air, as appropriate for the application. The fluid may include, for example, a liquid. In some embodiments, such as a single bed or a kids bed, the bed 112 may include a single air chamber 114A or 114B, or multiple air chambers 114A and 114B. Although not shown, in some cases, the bed 112 may include additional air chambers.

[0037] The first and second air chambers 114A and 114B may be in fluid communication with the pump 120. The pump 120 may be in electrical communication with a remote control 122 via a control box 124. The control box 124 may include a wired or wireless communication interface for communicating with one or more devices including the remote control 122. The control box 124 may be configured to operate the pump 120 to increase or decrease the fluid pressure in the first and second air chambers 114A and 114B based on commands input by a user using the remote control 122. In some implementations, the control box 124 is integrated into the housing of the pump 120. Additionally, in some cases, the pump 120 may be capable of wireless communication with a 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, a user's smartphone, cell phone, laptop, tablet, computer, wearable device, home automation device, or other computing device. A mobile application may be presented on the mobile device to provide the user with functionality to control the bed 112 and view information about the bed 112. The user may input commands into the mobile application presented on the mobile device. The input commands may be transmitted to the control box 124, which may operate the pump 120 based on the commands.

[0038] The remote control 122 may include a display 126, an output selection mechanism 128, a pressure increase button 129, and a pressure decrease button 130. The remote control 122 may include one or more additional output selection mechanisms and / or buttons. The display 126 may present (display) information regarding the settings of the bed 112 to the user. For example, the display 126 may present the pressure settings of both the first and second air chambers 114A and 114B, or the pressure settings of one of the first and second air chambers 114A and 114B. In some cases, the display 126 may be a touch screen and may accept input from the user indicating one or more commands for controlling the pressure in the first and second air chambers 114A and 114B and / or other settings of the bed 112.

[0039] The output selection mechanism 128 may allow a user to switch the airflow generated by the pump 120 between the first and second air chambers 114A, 114B, thereby allowing control of multiple air chambers with a single remote control 122 and a single pump 120. For example, the output selection mechanism 128 may be a physical control (e.g., a switch or button) or an input control presented on the display 126. Alternatively, a separate remote control unit may be provided for each air chamber 114A, 114B, each including the capability of controlling multiple air chambers. The pressure increase button 129 and the pressure decrease button 130 may allow a user to increase or decrease, respectively, the pressure in the air chamber selected with the output selection mechanism 128. Adjusting the pressure in the selected air chamber may result in a corresponding adjustment to the hardness of the respective air chamber. In some embodiments, the remote control 122 may be omitted or modified as appropriate depending on the application. For example, as previously mentioned, the bed 112 may be controlled by a mobile device in wired or wireless communication with the bed 112 .

[0040] FIG 2 is a block diagram of an example of various components of an airbed system that may be used in the example airbed system 100. As shown in FIG 2, the control box 124 may include a power supply 134, a processor 136, a memory 137, a switching mechanism 138, and an analog-to-digital (A / D) converter 140. The switching mechanism 138 may be, for example, a relay or a solid-state switch. In some implementations, the switching mechanism 138 may be located in the pump 120 rather than in the control box 124.

[0041] The pump 120 and remote control 122 may be in bidirectional communication with a control box 124. The pump 120 includes a motor 142, a pump manifold 143, a relief valve 144, a first control valve 145A, a second control valve 145B, and a pressure transducer 146. The pump 120 is fluidly connected to the first air chamber 114A and the second air chamber 114B via a first conduit 148A and a second conduit 148B, respectively. The first and second control valves 145A, 145B may be controlled by a switching mechanism 138 and are operable to regulate the flow of fluid between the pump 120 and the first and second air chambers 114A, 114B, respectively.

[0042] In some implementations, the pump 120 and the control box 124 may be provided and packaged as a single unit. In some implementations, the pump 120 and the control box 124 may be provided as physically separate units. Additionally, in some implementations, the control box 124, the pump 120, or both may be integrated into or contained within a bed frame, foundation, or bed support structure that supports the bed 112. In some cases, the control box 124, the pump 120, or both may be located outside of the bed frame, foundation, or bed support structure (as shown in the example of FIG. 1).

[0043] The exemplary airbed system 100 shown in FIG. 2 includes two air chambers 114A, 114B of the bed 112 shown in FIG. 1 and a single pump 120. However, other implementations may include an airbed system having more than one air chamber and one or more pumps incorporated within the airbed system to control the air chambers. For example, a separate pump may be associated with each air chamber of the airbed system. As another example, one pump may be associated with multiple chambers of the airbed system. For example, a first pump may be associated with an air chamber that extends longitudinally from the left side of the airbed system 100 to a midpoint, and a second pump may be associated with an air chamber that extends longitudinally from the right side of the airbed system 100 to a midpoint. Separate pumps may allow each air chamber to be independently and / or simultaneously inflated or deflated. Additionally, additional pressure transducers may be incorporated into the airbed system 100, such as, for example, a separate pressure transducer may be associated with each air chamber.

[0044] As an example, in use, the processor 136 may send a decompression command to one of the air chambers 114A, 114B, and the switching mechanism 138 may convert the low voltage command signal sent by the processor 136 to a higher operating voltage sufficient to actuate the relief valve 144 of the pump 120 to open the respective control valve 145A, 145B. Opening the relief valve 144 may allow air to escape from the air chamber 114A or 114B through the respective air line 148A or 148B. During deflation, the pressure transducer 146 may send a pressure reading to the processor 136 via the A / D converter 140. The A / D converter 140 may receive analog information from the pressure transducer 146 and convert the analog information to digital information usable by the processor 136. The processor 136 may send the digital signal to the remote control 122 to update the display 126 in order to communicate the pressure information to the user. The processor 136 may also transmit the digital signal to one or more other devices in wired or wireless communication with the airbed system, including, but not limited to, mobile devices such as smart phones, mobile phones, tablets, computers, wearable devices, and home automation devices. As a result, a user may view pressure information associated with the airbed system on a mobile device instead of or in addition to the remote control 122.

[0045] As another example, the processor 136 may send a pressure increase command. The pump motor 142 may be energized in response to the pressure increase command to electronically actuate the corresponding valve 145A, 145B to pump air into the designated one of the air chambers 114A, 114B via the air line 148A, 148B. While air is being pumped into the designated air chamber 114A or 114B to increase the chamber's firmness, the pressure transducer 146 may sense the pressure in the pump manifold 143. Again, the pressure transducer 146 may send a pressure reading to the processor 136 via the A / D converter 140. The processor 136 may use the information received from the A / D converter 140 to determine the difference between the actual pressure in the air chamber 114A or 114B and the desired pressure. The processor 136 may send the digital signal to the remote control 122 to update the display 126 to communicate the pressure information to the user.

[0046] Generally speaking, during the inflation or deflation process, the pressure sensed in the pump manifold 143 may provide an approximation of the pressure in the respective air chamber in fluid communication with the pump manifold 143. An exemplary method of obtaining a pump manifold pressure reading that is substantially equal to the actual pressure in the air chamber includes turning off the pump 120, allowing the pressure in the air chamber 114A or 114B and the pump manifold 143 to equalize, and then sensing the pressure in the pump manifold 143 with the pressure transducer 146. Thus, providing sufficient time to allow the pressure in the pump manifold 143 and the chamber 114A or 114B to equalize may result in a pressure reading that is an accurate approximation of the actual pressure in the air chamber 114A or 114B. In some implementations, the pressure in the air chamber 114A and / or 114B may be continuously monitored using multiple pressure sensors (not shown). Pressure sensors may be positioned within air chambers 114A and / or 114B. Pressure sensors may also be fluidly connected to air chambers 114A and 114B, for example along air tubes 148A and 148B.

[0047] In some implementations, the information collected by the pressure transducer 146 may be analyzed to determine various states of a user lying in bed 112. For example, the processor 136 may use the information collected by the pressure transducer 146 to determine a heart rate or a respiration rate of a user lying in bed 112. As an example, a user may be lying on one side of the bed 112 that includes the chamber 114A. The pressure transducer 146 may monitor fluctuations in pressure in the chamber 114A, and this information may be used to determine the user's heart rate and / or respiration rate. As another example, additional processing may be performed to determine the user's sleep state (e.g., awake, light sleep, deep sleep) using the collected data. For example, the processor 136 may determine when the user falls asleep, is asleep, and the user's various sleep states (e.g., sleep stages). The processor 136 may determine information regarding the user's sleep quality based on the user's determined heart rate, respiration rate, and / or sleep state. The processor 136 may, for example, determine how well the user slept during a particular sleep cycle. The processor 136 may also determine the user's sleep cycle trends. Thus, the processor 136 may generate recommendations to improve the user's sleep quality and overall sleep cycle. The determined information about the user's sleep cycle (e.g., heart rate, respiration rate, sleep state, sleep quality, recommendations to improve sleep quality, etc.) may be transmitted to the user's mobile device and presented in a mobile application, as described above.

[0048] Additional information related to a user of the airbed system 100 that may be determined using information collected by the pressure transducer 146 includes the user's movement, the user's presence on the surface of the bed 112, the user's weight, the user's cardiac arrhythmia, the user's or other users' snoring on the airbed system, and the user's temporary apnea. One or more other health conditions of the user may also be determined based on the information collected by the pressure transducer 146. Taking the detection of a user's presence as an example, the pressure transducer 146 may be used to detect the presence of a user on the bed 112, for example, via determining changes in total pressure and / or via one or more of a respiration rate signal, a heart rate signal, and / or other biometric signal. Detecting the presence of a user on the bed 112 may be beneficial in determining one or more adjustments to make by the processor 136 to the settings of the bed 112 (e.g., adjusting the firmness of the bed 112 to the user's preferred firmness setting when the user is present) and / or to the settings of peripheral devices (e.g., turning off lights, activating a heating or cooling system, etc. when the user is present).

[0049] For example, a simple pressure detection process may identify an increase in pressure as an indication of a user being present on the bed 112. As another example, the processor 136 may determine that a user is present on the bed 112 if the detected pressure increases beyond a certain threshold (a threshold for indicating that a person or other object over a certain weight is placed on the bed 112). As yet another example, the processor 136 may identify an increase in pressure in combination with a detected slight rhythmic variation in pressure as corresponding to a user being present on the bed 112. The presence of the rhythmic variation may be identified as being due to the user's breathing or cardiac (heartbeat) rhythm (or both). Detection of the breathing or heartbeat may distinguish between a user being present on the bed and other objects (such as a suitcase, pet, pillow, etc.) that are placed on the bed.

[0050] In some implementations, pressure variations may be measured at the pump 120. For example, one or more pressure sensors may be disposed within one or more internal cavities of the pump 120 to detect pressure variations within the pump 120. Pressure variations detected at the pump 120 may indicate pressure variations in one or both of the chambers 114A and 114B. One or more sensors disposed at the pump 120 may be in fluid communication with one or both of the chambers 114A and 114B, and may be operative to determine the pressure within the chambers 114A and 114B. The control box 124 may be configured to determine at least one vital sign (e.g., heart rate, respiratory rate) based on the pressure within the chamber 114A or chamber 114B.

[0051] In some implementations, the control box 124 may analyze pressure signals sensed by one or more pressure sensors to determine the heart rate, respiration rate, and / or other vital signs of a user lying or sitting on the chamber 114A and / or the chamber 114B. More specifically, when a user lies on the bed 112 and is positioned above the chamber 114A, the user's heart rate, respiration, and other movements (e.g., hand, arm, leg, foot, or other body movements) may each cause a force on the bed 112 that is transmitted to the chamber 114A. As a result of the force input applied to the chamber 114A from the user's movements, waves may propagate through the chamber 114A and into the pump 120. A pressure sensor located in the pump 120 may detect the waves, such that a pressure signal output by the sensor may indicate the heart rate, respiration rate, or other information about the user.

[0052] With respect to sleep state, the airbed system 100 may determine the sleep state of the user by using various biometric signals, such as heart rate, breathing, and / or user movement. While the user is sleeping, the processor 136 may receive one or more of the user's biometric signals (e.g., heart rate, breathing, movement, etc.) and determine the user's current sleep state based on the received biometric signals. In some implementations, signals indicative of pressure fluctuations in one or both of the chambers 114A and 114B may be amplified and / or filtered to allow for more accurate detection of the heart rate and breathing rate.

[0053] In some cases, the 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 the airbed system 100. For example, one or more sensors may be attached to or removably attached to the top surface of the airbed system 100 and configured to detect signals such as the user's heart rate, breathing rate, and / or movement. The processor 136 may combine biometric signals received from pressure sensors located on the pump 120, the pressure transducer 146, and / or sensors positioned throughout the airbed system 100 to generate accurate and more precise heart rate, breathing rate, and other information regarding the user and the user's sleep quality.

[0054] In some cases, 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 respiration rate. For example, the algorithm or calculation may be based on an assumption that the heart rate portion of the signal has a frequency in the range of 0.5-4.0 Hz and the respiration rate portion of the signal has a frequency in the range of less than 1 Hz. In some cases, the control box 124 may use one or more machine learning models to determine the user's heart rate, respiration rate, or other health information. The models may be trained using training data including training pressure signals and expected heart rate and / or respiration rates. In some cases, the control box 124 may use a lookup table corresponding to the sensed pressure signal to determine the user's heart rate, respiration rate, or other health information.

[0055] 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, swaying and rotational motion, rolling motion, limb motion, weight, presence or absence of the user, and / or the identity of the user.

[0056] For example, pressure transducer 146 may be used to monitor air pressure in chambers 114A and 114B of bed 112. When a user on bed 112 is not moving, changes in air pressure in air chambers 114A or 114B may be relatively minimal and may be due to breathing and / or heartbeat. However, when a user on bed 112 is moving, air pressure in the mattress may fluctuate by a much larger amount. Thus, pressure signals generated by pressure transducer 146 and received by processor 136 may be filtered and indicated as corresponding to movement, heartbeat, or breathing. Processor 136 may also attribute such air pressure fluctuations to the user's quality of sleep. Such an attribute may be determined based on applying one or more machine learning models and / or algorithms to the pressure signals generated by pressure transducer 146. For example, if a user moves or turns a lot during a sleep cycle (e.g., in comparison to the user's historical sleep cycle trends), the processor 136 may determine that the user experienced poor sleep (lack of sleep) during that particular sleep cycle.

[0057] In some implementations, rather than having the processor 136 perform the data analysis within the control box 124, a digital signal processor (DSP) may be provided to analyze the data collected by the pressure transducer 146. Alternatively, the data collected by the pressure transducer 146 may be transmitted to a cloud-based computing system for remote analysis.

[0058] In some implementations, the exemplary airbed system 100 further comprises a temperature controller configured to raise, lower, or maintain the temperature of the bed 112, for example, for the comfort of the user. For example, a pad (mat, layer, etc.) may be placed on top of or part of the bed 112, or may be placed on top of or part of one or both of the chambers 114A and 114B. Air may be pushed through the pad and ventilated to cool the user of the bed 112. Additionally or alternatively, the pad may include a heating element that may be used to keep 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 lower or higher than some threshold range and / or value. Based on this determination, the temperature controller may activate a component that pumps air into the pad to cool the user, or may activate a heating element. In some implementations, separate pads are used on different sides of the bed 112 (e.g., corresponding to the locations of chambers 114A and 114B) to provide different temperature control on different sides of the bed. Thus, each pad may be selectively controlled by a temperature controller to provide cooling or heating preferred by each user on the different sides of the bed 112. For example, a first user on the left side of the bed 112 may prefer that his side of the bed 112 be cooled at night, and a second user on the right side of the bed 112 may prefer that his side of the bed 112 be heated at night.

[0059] In some implementations, a user of the airbed system 100 may use an input device, such as the 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, e.g., the foot region, the lumbar region, the shoulder region, and / or the head region of the bed 112). The desired temperature may be encapsulated in a command data structure that includes the desired temperature and identifies the temperature controller as the desired controlled component. The command data structure may then be transmitted to the processor 136 via Bluetooth or other suitable communication protocol (e.g., WIFI, local network, etc.). In various examples, the command data structure may be encrypted before being transmitted. The temperature controller may then configure its elements to increase or decrease the temperature of the pad in response to the temperature input provided by the user on the remote control 122.

[0060] In some implementations, data may be sent from a component back to the processor 136 or to one or more display devices, such as the display 126 of the remote control 122. For example, the current temperature determined by a sensor element of the temperature controller, the pressure of the bed, the current position of the base, or other information may be sent to the control box 124. The control box 124 may then send the received information to the remote control 122, where it may be displayed to the user (e.g., on the display 126). As previously mentioned, the control box 124 may also send the received information to a mobile device (e.g., a smartphone, a cell phone, a laptop, a tablet, a computer, a wearable device, or a home automation device), where it may be displayed to the user in a mobile application or other graphical user interface (GUI).

[0061] In some implementations, the exemplary airbed system 100 further comprises an adjustable base and an articulation controller configured to adjust the position of the bed (e.g., bed 112) by adjusting the adjustable base supporting the bed. For example, the articulation controller may adjust the bed 112 from a flat position to a position in which the head portion of the mattress of the bed is tilted upward (e.g., to facilitate a user sitting on the bed and / or watching television). The bed 112 may also include multiple separately articulatable sections. As an example, the bed 112 may include one or more of a head, hip, leg, and / or foot section, all of which are separately articulatable. As another example, the portions of the bed 112 corresponding to the positions of the chambers 114A and 114B may be articulated independently of each other to allow one user positioned on the surface of the bed 112 to rest in a first position (e.g., flat or other desired position) while a second user rests in a second position (e.g., reclined position with head tilted up from the hips or other desired position). The separate positions can also be set for two different beds (e.g., two twin beds placed next to each other). The base of the bed 112 can include two or more zones that can be independently adjusted.

[0062] In some cases, the bed 112 may be adjusted to one or more user-defined positions based on user input and / or user preferences. For example, the bed 112 may be automatically adjusted to one or more user-defined settings by the articulation controller. As another example, a user may control the articulation controller to adjust the bed 112 to one or more user-defined positions. In some cases, the bed 112 may be adjusted to one or more positions that may provide the user with improved 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 of the bed 112 on that side may be automatically articulated by the articulation controller. As a result, the user's snoring may be reduced and the snoring may not wake another user sleeping in the bed 112.

[0063] In some implementations, the bed 112 may be adjusted using one or more devices in communication with the articulation controller or using one or more devices in place of the articulation controller. For example, a user may change the position of one or more portions of the bed 112 using the remote control 122 described above. A user may also adjust the bed 112 using a mobile application or other graphical user interface presented on the user's mobile computing device.

[0064] The articulation controller may also be configured to provide different levels of massage to one or more portions of the bed 112 for one or more users on the bed 112. A user may also adjust one or more massage settings for different portions of the bed 112 using a remote control 122 and / or a mobile device in communication with the air bed system 100, as described above.

[0065] [Example of a bed in a bedroom environment]

[0066] 3 illustrates an exemplary environment 300 including a bed 302 that communicates with multiple devices in and around the home. In the illustrated example, the bed 302 includes a pump 304 for controlling air pressure in two air chambers 306a and 306b (as described above with respect to air chambers 114A and 114B). The pump 304 further includes circuitry 334 for controlling the inflation and deflation functions performed by the pump 304. The circuitry 334 is further programmed to detect variations in air pressure in the air chambers 306a-b and use the detected variations in air pressure to identify the presence of a user 308 in bed, the sleep state of the user 308, the movement of the user 308, and biometric signals of the user 308, such as heart rate and breathing rate. The detected variations in air pressure may also be used to detect when the user 308 is snoring and to detect whether the user 308 has sleep apnea or other health conditions. Additionally, the detected variations in air pressure may be utilized to determine the overall sleep quality of the user 308.

[0067] In the illustrated example, the pump 304 is disposed within the support structure of the bed 302, and the control circuitry 334 for controlling the pump 304 is integrated with the pump 304. In some implementations, the control circuitry 334 is physically separate from the pump 304 and communicates with the pump 304 wirelessly or via wires. In some implementations, the pump 304 and / or the control circuitry 334 are disposed outside the bed 302. In some implementations, various control functions may be performed by systems in various physical locations. For example, circuitry for controlling the operation of the pump 304 may be disposed within a pump casing of the pump 304, and control circuitry 334 for performing other functions related to the bed 302 may be disposed within another portion of the bed 302 or outside the bed 302. As another example, the control circuitry 334 disposed within the pump 304 may communicate with the control circuitry 334 at a remote location via a LAN or WAN (e.g., the Internet). As yet another example, the control circuitry 334 may be included in the control box 124 of FIGS. 1 and 2.

[0068] In some implementations, one or more devices other than or in addition to the pump 304 and the control circuitry 334 may be used to identify the user's presence in bed, sleep state, movement, biometric signals, and other information about the user 308 (e.g., sleep quality and / or related health conditions). For example, the bed 302 may include a second pump in addition to the pump 304, each of the two pumps may be connected to a respective one of the air chambers 306a-b. For example, the pump 304 may be in fluid communication with the air chamber 306b, may control the inflation and deflation of the air chamber 306b, and may detect user signals of the user located on the air chamber 306b, such as the presence in bed, sleep state, movement, biometric signals, etc. The second pump may then be in fluid communication with the air chamber 306a, may control the inflation and deflation of the air chamber 306a, and may detect user signals of the user located on the air chamber 306a.

[0069] As another example, the bed 302 may include one or more pressure-sensitive pads or pressure-sensitive surface portions operable to detect motion, including the presence of a user, the user's movement, breathing, and heart rate. A first pressure-sensitive pad may be integrated into the surface of the bed 302 on the left side of the bed 302 where a first user typically sleeps, and a second pressure-sensitive pad may be integrated into the surface of the bed 302 on the right side of the bed 302 where a second user typically sleeps. The motion detected by the pressure-sensitive pad or pads or surface portions may be used by the control circuitry 334 to identify the sleep state, bed presence, or biometric signature of each user. The pressure-sensitive pads may also be removable instead of being integrated into the surface of the bed 302.

[0070] The bed 302 may also include one or more temperature sensors and / or sensor arrays operable to detect temperatures in the microclimates of the bed 302. Temperatures detected in different microclimates of the bed 302 may be used by the control circuitry 334 to determine one or more changes to the sleep environment of the user 308. For example, a temperature sensor located near a central area of ​​the bed 302 where the user 308 rests may detect a high temperature value. Such a high temperature value may indicate that the user 308 is warm. To reduce the user's body temperature in such a microclimate, the control circuitry 334 may determine that a cooling element of the bed 302 may be activated. As another example, the control circuitry 334 may determine that a cooling unit in the home may be automatically activated to cool the ambient temperature in the environment 300.

[0071] The control circuitry 334 may also process a combination of signals sensed by various sensors integrated into, positioned on, or in communication with the bed 112. For example, pressure and temperature signals may be processed by the control circuitry 334 to more accurately determine one or more health conditions of the user 308 and / or the quality of the user's 308 sleep. Acoustic signals detected by one or more microphones or other acoustic sensors may be used in combination with pressure or motion sensors to determine when the user 308 is snoring, whether the user 308 has sleep apnea, and / or the overall quality of the user's 308 sleep. A combination of one or more other sensed signals is also possible for the control circuitry 334 to more accurately determine one or more health conditions and / or sleep conditions of the user 308.

[0072] Thus, information (e.g., motion information) detected by one or more sensors or other components of the bed 112 may be processed by the control circuitry 334 and provided to one or more user devices, such as the user device 310 for presentation to the user 308 or other users. The information may be presented (displayed) in a mobile application or other graphical user interface of the user device 310. The user 308 may view a variety of information that is processed and / or determined by the control circuitry 334 and based on signals detected by the components of the bed 302. For example, the user 308 may view overall sleep quality for a particular sleep cycle (e.g., the previous night), historical trends in sleep quality, and health information. The user 308 may also adjust one or more settings of the bed 302 (e.g., increase / decrease pressure in one or more areas of the bed 302, tilt / untilt different areas of the bed 302, turn on / off a massage function of the bed 302, etc.) using the mobile application presented on the user device 310.

[0073] In the example shown in FIG. 3, the user device 310 is a mobile phone. However, the user device 310 may also be any one of a tablet, a personal computer, a laptop, a smartphone, a smart television (e.g., the television 312), a home automation device, or other user device capable of wired or wireless communication with the control circuitry 334 and one or more other components of the bed 302 or one or more devices in the environment 300. The user device 310 may communicate with the control circuitry 334 of the bed 302 via a network or via direct point-to-point communication. For example, the control circuitry 334 may be connected to a LAN (e.g., via a WIFI router) and communicate with the user device 310 via the LAN. As another example, the control circuitry 334 and the user device 310 may both be connected to the Internet and communicate via the Internet. For example, the control circuitry 334 may be connected to the Internet via a WIFI router and the user device 310 may be connected to the Internet via communication with a cellular communication system. As another example, the control circuitry 334 may communicate directly with the user device 310 via a wireless communication protocol, such as Bluetooth. As yet another example, the control circuitry 334 may communicate with the user device 310 via a wireless communication protocol, such as ZigBee, Z-Wave, infrared, or other wireless communication protocol suitable for the application. As another example, the control circuitry 334 may communicate with the user device 310 via a wired connection, such as, for example, a USB connector, serial / RS232, or other wired connection suitable for the application.

[0074] As previously discussed, the user device 310 may display various information and statistics related to sleep or the user's 308 interactions with the bed 302. For example, a user interface displayed by the user device 310 may present information including the amount of sleep of the user 308 over a period of time (e.g., overnight, week, month, etc.), the amount of deep sleep, the ratio of deep sleep to restless sleep, the time lapse between the user 308 entering bed and the user 308 falling asleep, the total time spent in the bed 302 over a given period of time, the user's 308 heart rate over a period of time, the user's 308 breathing rate over a period of time, or other information related to user interactions with the bed 302 by the user 308 or one or more other users of the bed 302. In some implementations, information for multiple users may be presented on the user device 310, for example, information for a first user located on the air chamber 306a may be presented along with information for a second user located on the air chamber 306b. In some implementations, the information presented on the user device 310 may change depending on the age of the user 308. For example, the information presented on the user device 310 may evolve with the age of the user 308, and different information may be presented on the user device 310 as the user 308 ages as a child or as an adult.

[0075] The user device 310 may also be used as an interface for the control circuitry 334 of the bed 302 to allow the user 302 to input information and / or adjust one or more settings of the bed 302. 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 for controlling the functions of the bed 302 or other devices. For example, the user 308 may input information such as his / her weight, height, age, etc. The control circuitry 334 may use this information to provide the user with a comparison of the tracked sleep information of the user 308 to the sleep information of other people who have a similar weight, height, and / or age as the user. The control circuitry 334 may also use this information to more accurately determine the overall sleep quality and / or health of the user 308 based on information detected by one or more components (e.g., sensors) of the bed 302.

[0076] As another example, as mentioned above, user 308 may use user device 310 as an interface to control the air pressure in air chambers 306a and 306b, to control various reclining or tilting positions of bed 302, to control the temperature of one or more surface temperature control devices of bed 302, or to allow control circuitry 334 to generate control signals for other devices (as described in more detail below).

[0077] In some implementations, the control circuitry 334 of the bed 302 may communicate with other devices or systems in addition to or instead of the user device 310. For example, the control circuitry 334 may communicate with a television 312, a lighting system 314, a thermostat 316, a security system 318, home automation devices, and / or other home appliances, including, but not limited to, an oven 322, a coffee maker 324, a lamp 326, and / or a night light 328. Other examples of devices and / or systems with which the control circuitry 334 may communicate include a system for controlling blinds 330, one or more devices for detecting or controlling the state of one or more doors 332 (e.g., detecting whether a door is open or closed, detecting whether a door is locked or closed, or automatically locking a door), and a system for controlling a garage door 320 (e.g., a control circuitry 334 integrated with a garage door opener to identify the open or closed state of the garage door 320 and cause the garage door opener to open and close the garage door 320). Communication between the control circuitry 334 of the bed 302 and other devices may occur over a network (e.g., a LAN or the Internet) or as a point-to-point communication (e.g., Bluetooth, wireless communication, or wired connection). In some implementations, the control circuitry 334 of different beds 302 may communicate with different sets of devices. For example, a kid's bed may not communicate with and / or control the same devices as an adult bed. In some embodiments, the bed 302 may evolve with the age of the user such that the control circuitry 334 of the bed 302 communicates with different devices as a function of the age of the user of the bed 302.

[0078] The control circuitry 334 may receive information and inputs from other devices / systems and may use the received information and inputs to control the operation of the bed 302 and / or other devices. For example, the control circuitry 334 may receive information from the thermostat 316 indicating the current ambient temperature of the house or room in which the bed 302 is located. The control circuitry 334 may use the received information (along with other information, such as signals detected from one or more sensors in the bed 302) to determine whether to increase or decrease the temperature of all or a portion of the surface of the bed 302. The control circuitry 334 may then cause a heating or cooling mechanism in the bed 302 to increase or decrease the temperature of the surface of the bed 302. The control circuitry 334 may also cause a heating or cooling unit in the house or room in which the bed 302 is located to increase or decrease the ambient temperature surrounding 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.

[0079] As an example, the user 308 may indicate a desired sleep temperature of 74 degrees Fahrenheit, while a second user of the bed 302 may indicate a desired sleep temperature of 72 degrees Fahrenheit. The thermostat 316 may send a signal to the control circuitry 334 at a predetermined time indicative of the room temperature. The thermostat 316 may also send a continuous stream of sensed room temperature values ​​to the control circuitry 334. The transmitted signal may indicate to the control circuitry 334 that the current temperature in the bedroom is 72 degrees Fahrenheit. The control circuitry 334 may identify that the user 308 has indicated a desired sleep temperature of 74 degrees Fahrenheit, and in response, may send a control signal to a heating pad on the user's 308 side of the bed to increase the temperature of a portion of the surface of the bed 302 on which the user 308 is located until the user's 308 desired temperature is achieved. Additionally, the control circuitry 334 may send a control signal to the thermostat 316 and / or a heating unit in the home to increase the temperature in the room in which the bed 302 is located.

[0080] The control circuitry 334 may also generate and propagate control signals to control other devices. In some implementations, the control signals are generated based on information collected by the control circuitry 334, including information about user interactions with the bed 302 by the user 308 and / or one or more other users. Information collected from one or more other devices other than the bed 302 may also be used in generating the control signals. For example, information about environmental occurrences (e.g., environmental temperature, environmental noise level, environmental light level, etc.), time of day, year, day of the week, or other information may be used in generating control signals for various devices in communication with the control circuitry 334 of the bed 302.

[0081] For example, information regarding the time of day may be combined with information regarding the user's 308 movement and presence in bed to generate a control signal for the lighting system 314. Based on the detected pressure signal of the user 308 on the bed 302, the control circuitry 334 may determine when the user 308 is in the bed 302 and when the user 308 falls asleep. Once the control circuitry 334 determines that the user has fallen asleep, it may send a control signal to the lighting system 314 to turn off the lights in the room in which the bed 302 is located, lower the window blinds 330 of the room, and / or activate the night light 328. Additionally, the control circuitry 334 may receive an input from the user 308 (e.g., via the user device 310) indicating the time at which the user 308 would like to be awakened. As the time approaches, the control circuitry 334 may send a control signal to one or more devices in the environment 300 to control the devices that may awaken the user 308. For example, the control signal may 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 window blinds 330, turn off the night light 328, turn on the underbed light 302, start the coffee machine 324, change the temperature in the house via the thermostat 316, or perform some other home automation. The home automation device may also be instructed to activate an alarm that may wake the user 308. In some cases, the user 308 may input information into the user device 310 indicating what actions are to be performed by the home automation device or other devices in the environment 300.

[0082] In some implementations, rather than or in addition to providing control signals to one or more other devices, the control circuitry 334 may transmit collected information (e.g., information related to the user's movements, presence in bed, sleep state, or biometric signal of the user 308) to one or more other devices, allowing the one or more other devices to utilize the collected information when generating control signals. For example, the control circuitry 334 of the bed 302 may provide a central controller (not shown) with information regarding user interactions with the bed 302 by the user 308. The central controller may utilize the provided information to generate control signals for various devices, including the bed 302.

[0083] The central controller may be, for example, a hub device that provides various information about the user 308, as well as control information associated with the bed 302 and one or more other devices in the home. The central controller may include one or more sensors that detect signals that may be used by the control circuitry 334 and / or the central controller to determine information about the user 308 (e.g., biometric or other health data, sleep quality, etc.). The sensors may detect signals including, but not limited to, ambient light (illumination), temperature, humidity, volatile organic compounds, pulse, movement, and sound. These signals may be combined with signals detected by sensors in the bed 302 to determine more accurate information about the health and sleep quality of the user 308. The central controller may provide controls (e.g., user-defined controls, pre-set controls, automated controls, user-initiated controls, etc.) for the bed 302, may determine and view sleep quality and health information, and may determine (configure) and view smart alarm clocks, speakers or other home automation devices, smart photo frames, night lights, and one or more mobile applications that the user 308 may install and use on the central controller. The central controller may include a display screen that may output information and receive input from the user 308. The display may output information such as the user's 308 health status, sleep quality, weather information, security integration features, lighting integration features, heating and cooling integration features, and other controls to automate devices in the home. Thus, the central controller is operable to provide the user 308 with functionality and control of multiple different types of devices in the home, as well as the user's 308 bed 302.

[0084] 3, the control circuitry 334 of the bed 302 may generate and transmit control signals to control the operation of other devices in response to information collected by the control circuitry 334, including the presence of the user 308 in bed, the user's sleep state 308, and other factors. For example, the control circuitry 334 integrated with the pump 304 may detect a characteristic of the mattress of the bed 302, such as an increase in pressure in the air chamber 306b, and use the detected increase in air pressure to determine that the user 308 is on the bed 302. In some implementations, the control circuitry 334 may identify the heart rate or respiratory rate of the user 308 to identify that the increase in pressure is due to a person sitting, lying, or resting on the bed 302, as opposed to an inanimate object (such as a suitcase) being placed on the bed. In some implementations, information indicative of the user's presence in bed may be combined with other information to identify the current or possible future state of the user 308. For example, a user's presence in bed detected at 11:00 a.m. may indicate that the user is sitting in bed (e.g., to tie shoelaces or to read a book) and is not intending to fall asleep, whereas a user's presence in bed detected at 10:00 p.m. may indicate that the user 308 is in bed and intends to fall asleep shortly. As another example, if the control circuitry 334 detects that the user 308 has left the bed 302 at 6:30 a.m. (e.g., indicating that the user 308 has woken up for the day) and then detects the user 308's presence in bed 302 at 7:30 a.m., the control circuitry 334 may use this information to understand that the newly detected presence is likely to be temporary (e.g., while the user 308 is tying shoelaces before heading to work) rather than an indication that the user 308 intends to remain in bed for an extended period of time.

[0085] If the control circuitry 334 determines that the user 308 is likely to remain in bed 302 for an extended period of time, it 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. For example, the control circuitry 334 may communicate with the security system 318 to ensure that the door is locked. The control circuitry 334 may communicate with the oven 322 to ensure that the oven 322 is turned off. The control circuitry 334 may communicate with the lighting system 314 to dim or turn off the lights in the room in which the bed 302 is located and / or the entire house. The control circuitry 334 may communicate with the thermostat 316 to ensure that the house is at the user's 308 desired temperature. The control circuitry 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 warmers, massage functions, pressure / firmness of one or more areas of the bed 302, etc.).

[0086] In some implementations, the control circuitry 334 may use the collected information (including information related to the user's 308 interactions with the bed 302, environmental information, time information, and inputs received from the user 308) to identify a usage pattern of the user 308. For example, the control circuitry 334 may use information collected over a period of time indicative of the user's 308 presence in bed and sleep status to identify the user's sleep pattern. Based on the information indicative of the user's presence collected over a week (or a different period of time) and the biometric characteristic signal of the user 308, the control circuitry 334 may identify that the user 308 generally goes to bed between 9:30 PM and 10:00 PM, generally falls asleep between 10:00 PM and 11:00 PM, and generally wakes up between 6:30 AM and 6:45 AM. The control circuitry 334 may use the identification pattern of the user 308 to better process and identify the user's interactions with the bed 302.

[0087] For example, given the bed presence, sleeping, and waking patterns of the user 308 in the example above, if the user 308 is detected in bed 302 at 3:00 PM, the control circuitry 334 may determine that the user 308's presence in bed 302 is only momentary and may use that determination to generate a different control signal than would be generated if the control circuitry 334 determined that the user 308 was in bed in the evening (e.g., at 3:00 PM, the head region of the head 302 may be elevated to facilitate reading or watching television while in bed 302, while in the evening, the bed 302 may be adjusted to a flat position to facilitate falling asleep). As another example, if the control circuitry 334 detects that the user 308 got out of bed at 3:00 AM, the control circuitry 334 may use the user's 308 identification pattern to determine that the user only woke up momentarily (e.g., to use the bathroom or to get a glass of water) and did not wake up for the day. For example, the control circuitry 334 may turn on the under-bed lights to help the user 308 carefully move around the bed 302 and the room. In contrast, if the control circuitry 334 identifies that the user 308 left the bed 302 at 6:40 a.m., the control circuitry 334 may determine that the user has woken up for the day and generate a different set of control signals than would be generated if it was determined that the user 308 only temporarily left the bed (such as if the user 308 left the bed 302 at 3:00 a.m.) (e.g., the control circuitry 334 may turn on the lights 326 near the bed 302 and / or raise the window blinds 330 when it is determined that the user 308 has woken up for the day). For other users, getting out of bed 302 at 3:00 a.m. may be a normal wake-up time, and the control circuitry 334 may learn and respond accordingly. Furthermore, if the bed 302 is occupied by two users, the control circuitry 334 may learn and respond to the patterns of each of the users.

[0088] As previously mentioned, the control circuitry 334 of the bed 302 may generate control signals for controlling functions of various other devices. The control signals may be generated based, at least in part, on detected interactions with the bed 302 by the user 308 and other information including time, date, temperature, etc. The control circuitry 334 may communicate with the television 312, receive information from the television 312, and generate control signals to control functions of the television 312. For example, the control circuitry 334 may receive an indication from the television 312 that the television 312 is currently on. If the television 312 is located in a different room than the bed 302, the control circuitry 334 may generate a control signal to turn off the television 312 when it determines that the user 308 has gone to sleep or remains in the room with the bed 302 for the night. For example, if the presence of the user 308 on the bed 302 is detected during a particular time range (e.g., between 8:00 PM and 7:00 AM) and lasts for longer than a threshold time (e.g., 10 minutes), the control circuitry 334 may determine that the user 308 is in bed to sleep. If the television 312 is on (indicated by communication received by the control circuitry 334 of the bed 302 from the television 312), the control circuitry 334 may generate a control signal to turn off the television 312. The control signal may be transmitted to the television (e.g., via a directed communication link between the television 312 and the control circuitry 334 or via a network such as WIFI). As another example, rather than turning off the television 312 in response to detecting the user's presence in bed, the control circuitry 334 may generate a control signal to lower the volume of the television 312 by a pre-specified amount.

[0089] As another example, when the control circuitry 334 detects that the user 308 has left the bed 302 during a specified time range (e.g., between 6:00 and 8:00 a.m.), the control circuitry 334 may generate a control signal to turn on the television 312 and tune it to a pre-specified channel (e.g., the user 308 indicates a preference to watch the morning news when getting out of bed). The control circuitry 334 may generate and send a control signal to the television 312 to turn on the television 312 and tune it to a desired station (which may be stored in the control circuitry 334, the television 312, or elsewhere). As another example, when the control circuitry 334 detects that the user 308 has woken up for the day, the control circuitry 334 may generate and send a control signal to turn on the television 312 and begin playing a previously recorded program from a digital video recorder (DVR) in communication with the television 312.

[0090] As another example, if the television 312 is in the same room as the bed 302, the control circuitry 334 may not turn off the television 312 in response to detecting the user's presence in bed. Rather, the control circuitry 334 may generate and transmit a control signal to turn off the television 312 in response to determining that the user 308 is asleep. For example, the control circuitry 334 may monitor biometric signals (e.g., movement, heart rate, breathing rate) of the user 308 to determine that the user 308 has fallen asleep. Upon detecting that the user 308 is asleep, the control circuitry 334 generates and transmits a control signal to turn off the television 312. As another example, the control circuitry 334 may generate a control signal to turn off the television 312 after a threshold time has elapsed after the user 308 has fallen asleep (e.g., 10 minutes after the user has fallen asleep). As another example, the control circuitry 334 generates a control signal to lower the volume of the television 312 after determining that the user 308 is asleep. As yet another example, the control circuitry 334, in response to determining that the user 308 is asleep, may generate and transmit a control signal to gradually reduce the volume of the television over a period of time and then turn the television off. Any of the control signals previously described in connection with the television 312 may be determined by the central controller previously described.

[0091] In some implementations, the control circuitry 334 may similarly interact with other media devices, such as computers, tablets, mobile phones, smartphones, wearable devices, stereo systems, etc. For example, when detecting that the user 308 is asleep, the control circuitry 334 may generate and send a control signal to the user device 310 to turn off the user device 310 or to reduce the volume of a video or audio file being played on the user device 310.

[0092] The control circuitry 334 may further communicate with and receive information from the lighting system 314 and generate control signals to control the functions of the lighting system 314. For example, upon detecting a user's presence on the bed 302 lasting longer than a threshold time (e.g., 10 minutes) during a particular time frame (e.g., between 8:00 PM and 7:00 AM), the control circuitry 334 of the bed 302 may determine that the user 308 is in the bed to sleep. In response to this determination, the control circuitry 334 may generate a control signal to turn off the lights in one or more rooms other than the room in which the bed 302 is located. The control signal may then be transmitted to and executed by the lighting system 314 to turn off the lights in the indicated rooms. For example, the control circuitry 334 may generate and transmit a control signal to turn off all the lights in the general room but not in other bedrooms. As another example, the control signal generated by the control circuitry 334 in response to determining that the user 308 is in bed to sleep may indicate that the lights in all rooms other than the room in which the bed 302 is located should be turned off and that one or more lights located outside the premises containing the bed 302 should also be turned off. Additionally, the control circuitry 334 may generate and transmit a control signal to turn on the night light 328 in response to determining that the user 308 is in bed or that the user 308 is asleep. As another example, the control circuitry 334 may generate a first control signal to turn off a first set of lights (e.g., the lights in the general room) in response to detecting the user's presence in bed and a second control signal to turn off a second set of lights (e.g., the lights in the room in which the bed 302 is located) in response to detecting that the user 308 is asleep.

[0093] In some implementations, in response to determining that the user 308 is in bed to sleep, the control circuitry 334 of the bed 302 may generate a control signal that causes the lighting system 314 to implement a sunset lighting regime in the room in which the bed 302 is located. The sunset lighting regime may include dimming the lights (either over time or all at once) in combination with changing the color of the lighting in the bedroom environment, such as adding an amber hue to the bedroom lights. The sunset lighting regime may help the user 308 fall asleep when the control circuitry 334 determines that the user 308 is in bed to sleep. In some cases, the control signal may cause the lighting system 314 to dim the lights in the bedroom environment or change the color of the lights (but not both).

[0094] The control circuitry 334 may also be configured to implement a sunrise lighting regime when the user 308 wakes up in the morning. The control circuitry 334 may determine that the user 308 has woken up for the day, for example, by detecting that the user 308 has left the bed 302 (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.). As another example, the control circuitry 334 may monitor the user 308's movement, heart rate, breathing rate, or other biometric signal to determine that the user 308 has woken up or is waking up even if the user 308 has not left the bed. If the control circuitry 334 detects that the user has woken up or is waking up during the specified time frame, the control circuitry 334 may determine that the user 308 has woken up for the day. The specified time frame may be based on previously recorded user bed presence information collected over a period of time (e.g., two weeks), for example. It may indicate that the user 308 typically wakes up between 6:30 and 7:30 a.m. In response to the control circuitry 334 determining that the user 308 is awake, the control circuitry 334 may generate a control signal to cause the lighting system 314 to implement a sunrise lighting regime in the bedroom in which the bed 302 is located. The sunrise lighting regime may include, for example, turning on lights (e.g., lamps 326, or other lights in the bedroom). The sunrise lighting regime may further include gradually increasing the level of lighting in the room in which the bed 302 is located (or one or more other rooms). The sunrise lighting regime may also include turning on only lights of a specified color. For example, the sunrise lighting regime may include illuminating the bedroom with blue light to gently assist the user 308 in waking up and becoming active.

[0095] In some implementations, the control circuitry 334 may generate different control signals for controlling the operation of one or more components, such as the lighting system 314, depending on the time a user interaction with the bed 302 is detected. For example, the control circuitry 334 may use historical user interaction information about interactions between the user 308 and the bed 302 to determine that the user 308 typically falls asleep between 10:00 PM and 11:00 PM and typically wakes up between 6:30 AM and 7:30 AM. The control circuitry 334 may use this information to generate a first set of control signals for controlling the lighting system 314 if the user 308 is detected to have left the bed at 3:00 AM and a second set of control signals for controlling the lighting system 314 if the user 308 is detected to have left the bed after 6:30 AM. For example, if the user 308 leaves the bed before 6:30 AM, the control circuitry 334 may turn on lights that guide the user 308 to the bathroom. As another example, if the user 308 gets out of bed before 6:30 a.m., the control circuitry 334 may turn on lights that guide the user 308 to the kitchen (which may include, for example, turning on the night light 328, turning on the under-bed light, turning on the lamp 326, or turning on lights along the path the user 308 will take to get to the kitchen).

[0096] As another example, if the user 308 gets out of bed after 6:30 a.m., the control circuitry 334 may generate a control signal to cause the lighting system 314 to initiate a sunrise lighting style or turn on one or more lights in the bedroom or other room. In some implementations, if the user 308 is detected as getting out of bed before a specified morning wake-up time for the user 308, the control circuitry 334 may cause the lighting system 314 to turn on a weaker (dimmer) light than would be turned on by the lighting system 314 if the user 308 was detected as getting out of bed after the specified morning wake-up time. Turning on only weak (dim) lights when the user 308 gets out of bed at night (e.g., before the user 308's normal wake-up time) may prevent other occupants of the house from being woken by the lights while still allowing the user 308 to see (provide visibility) to reach a bathroom, kitchen, or another destination within the house.

[0097] Historical user interaction information regarding interactions between the user 308 and the bed 302 may be used to identify the user's sleep and wake time windows. For example, the user's time in bed and sleep may be determined for a set period of time (e.g., two weeks, one month, etc.). The control circuitry 334 may then identify a typical time range or window during which the user 308 goes to bed, a typical window during which the user 308 falls asleep, and a typical window during which the user 308 wakes up (possibly different from the window during which the user 308 wakes up and the window during which the user 308 actually gets out of bed). In some implementations, buffer times may be added to these windows. For example, if the user is identified as typically going to bed between 10:00 PM and 10:30 PM, a 30 minute buffer in each direction may be added to the window, and a detection of the user getting into bed between 9:30 PM and 11:00 PM may be interpreted as the user 308 going to bed for the night. As another example, detection of a user 308's presence in bed within a time period beginning 30 minutes before the earliest typical time the user 308 goes to bed and extending to the user's typical wake-up time (e.g., 6:30 a.m.) may be interpreted as the user 308 going to bed for the night. For example, if the user 308 typically goes to bed between 10:00 p.m. and 10:30 p.m., detection of the user 308's presence in bed at 12:30 a.m. (12:30 a.m.) one night may be interpreted as the user 308 going to bed for the night, since it occurs outside the user's typical time frame for going to bed, but before the user's normal wake-up time. In some implementations, different time periods are identified for different times of the year (e.g., earlier bedtimes in the winter than in the summer) or different days of the week (e.g., the user 308 wakes up earlier on weekdays than on weekends).

[0098] The control circuitry 334 may distinguish between a long period of time (such as a night) of the user 308 sleeping on the bed 302 versus a short period of time (such as a nap) by sensing the duration of the user 308's presence (e.g., by detecting pressure and / or temperature signals of the user 308 on the bed 302 by one or more sensors integrated within the bed 302). In some examples, the control circuitry 334 may distinguish between a long period of time (such as a night) of the user 308 sleeping on the bed 302 versus a short period of time (such as a nap) by sensing the duration of the user 308's sleep. For example, the control circuitry 334 may set a time threshold such that if the user 308 is sensed on the bed 302 for longer than the threshold, the user 308 is deemed to have fallen asleep at night. In some examples, the threshold may be about two hours such that if the user 308 is sensed on the bed 302 for more than two hours, the control circuitry 334 registers it as a long sleep event. In other examples, the threshold may be longer or shorter than two hours. The threshold value may also be determined based on historical trends indicating how long the user 308 typically sleeps or remains in bed 302 .

[0099] The control circuitry 334 may detect repeated long sleep events to automatically determine a typical bedtime range for the user 308 without the user 308 having to input a bedtime range. This allows the control circuitry 334 to accurately estimate the time at which the user 308 is likely to fall asleep due to a long sleep event, regardless of whether the user 308 typically falls asleep using a traditional or non-traditional sleep schedule. The control circuitry 334 may then use its knowledge of the user 308's bedtime range to control one or more components (including the bed 302 and / or non-bed peripherals) based on sensing the user 308 being in bed during or outside the bedtime range.

[0100] In some examples, the control circuitry 334 may automatically determine the bedtime range of the user 308 without requiring user input. In some examples, the control circuitry 334 may determine the bedtime range of the user 308 automatically and in combination with user input (e.g., using one or more signals sensed by sensors in the bed 302 and / or the central controller described above). In some examples, the control circuitry 334 may directly set the bedtime range according to user input. In some examples, the control circuitry 334 may associate different bedtimes with different days of the week. In each of these examples, the control circuitry 334 may control one or more components (such as the lighting system 314, thermostat 316, security system 318, oven 322, coffee maker 324, lamps 326, and nightlight 328) as a function of the detected bed presence and bedtime range.

[0101] The control circuitry 334 may further communicate with and receive information from the thermostat 316 and generate control signals to control the functions of the thermostat 316. For example, the user 308 may indicate a user preference for different temperatures at different times depending on the user's sleep state or presence in bed. For example, the user 308 may prefer an environmental temperature of 72° F. when out of bed, 70° F. when in bed but awake, and 68° F. when asleep. The control circuitry 334 of the bed 302 may detect the user's 308 presence in bed at night and determine that the user 308 is asleep. In response to this determination, the control circuitry 334 may generate a control signal that causes the thermostat 316 to change the temperature to 70° F. The control circuitry 334 may then transmit the control signal to the thermostat 316. Upon detecting that the user 308 is asleep or asleep during the bedtime range, the control circuitry 334 may generate and send a control signal to cause the thermostat 316 to change the temperature to 68 degrees F. Upon determining that the user 308 has woken up for the day (e.g., the user 308 got out of bed after 6:30 a.m.), the control circuitry 334 may generate and send a control signal to cause the thermostat 316 to change the temperature to 72 degrees F.

[0102] The control circuitry 334 may also determine a control signal to be sent to the thermostat 316 based on (for the purpose of) maintaining an improved or preferred quality of sleep for the user 308. In other words, the control circuitry 334 may determine adjustments to the thermostat 316 that are not simply based on user-entered preferences. For example, the control circuitry 334 may determine that the user 308 experiences the best sleep when the bedroom is at 74 degrees by applying one or more machine learning models based on the user's 308's historical sleep patterns and quality. The control circuitry 334 may receive a temperature signal from one or more devices and / or sensors in the bedroom indicating the temperature of the bedroom. When the temperature is below 74 degrees, the control circuitry 334 may determine a control signal to cause the thermostat 316 to activate a heating device in the home to increase the temperature in the bedroom to 74 degrees. When the temperature is above 74 degrees, the control circuitry 334 may determine a control signal to cause the thermostat 316 to activate a cooling device in the home to decrease the temperature to 74 degrees. In some cases, control circuitry 334 may determine control signals that cause thermostat 316 to maintain the bedroom within a temperature range intended to maintain user 308 in a particular sleep state and / or transition to the next preferred sleep state.

[0103] In some implementations, the control circuitry 334 may generate control signals to cause one or more heating or cooling elements on the surface of the bed 302 to change temperature at various times in response to user interaction with the bed 302, at various preprogrammed times, based on user preferences, and / or in response to detection of the microclimate temperature of the user 308 on the bed 302. For example, the control circuitry 334 may activate a heating element to increase the temperature of one side of the surface of the bed 302 to 73 degrees Fahrenheit when it is detected that the user 308 has fallen asleep. As another example, the control circuitry 334 may power off the heating or cooling element when it determines that the user 308 has woken up for the day. As yet another example, the user 308 may preprogram various times at which the temperature of the bed surface should be increased or decreased. For example, the user may program the bed 302 to increase the surface temperature to 76 degrees Fahrenheit at 10:00 PM and decrease the surface temperature to 68 degrees Fahrenheit at 11:30 PM. As another example, one or more temperature sensors on the surface of the bed 302 may detect the microclimate of the user 308 on the bed 302. If the detected microclimate of the user 308 falls below a predetermined threshold temperature, the control circuitry 334 may activate a heating element to increase the body temperature of the user 308, thereby improving the comfort of the user 308, maintaining the user 308 in the sleep cycle, transitioning the user 308 to the next preferred sleep state, and / or otherwise maintaining or improving the quality of the user 308's sleep.

[0104] In some implementations, in response to detecting the presence of the user 308 in bed and / or detecting that the user 308 is asleep, the control circuitry 334 may cause the thermostat 316 to change the temperature in different rooms to different values. For example, in response to determining that the user 308 is in bed at night, the control circuitry 334 may generate and transmit a control signal to cause the thermostat 316 to set the temperature in one or more bedrooms in the house to 72 degrees Fahrenheit and to set the temperature in other rooms to 67 degrees Fahrenheit. Other control signals are possible and may be based on user preferences and user input.

[0105] Control circuitry 334 may also receive temperature information from thermostat 316 and may use this temperature information to control functions of bed 302 or other devices. For example, as described above, control circuitry 334 may adjust the temperature of a heating element (e.g., a foot warming pad) included in or attached to bed 302 in response to temperature information received from thermostat 316.

[0106] In some implementations, the control circuitry 334 may generate and transmit control signals to control other temperature control systems. For example, in response to determining that the user 308 has woken up for the day, the control circuitry 334 may generate and transmit control signals to activate floor heating elements in the bedroom and / or other rooms in the home. For example, the control circuitry 334 may turn on a floor heating system in the master bedroom in response to determining that the user 308 has woken up for the day. One or more control signals described herein determined by the control circuitry 334 may also be determined by the central controller, as discussed above.

[0107] The control circuitry 334 may further communicate with and receive information from the security system 318 and generate control signals to control functions of the security system 318. For example, in response to detecting that the user 308 has gone to bed for the night, the control circuitry 334 may generate a control signal that causes the security system to activate or deactivate a security function. The control circuitry 334 may then transmit the control signal to the security system 318 to activate the security system 318 (e.g., turn on security cameras along the perimeter of the home, automatically lock the doors of the home, etc.). As another example, the control circuitry 334 may generate and transmit a control signal to disable the security system 318 in response to determining that the user 308 has woken up for the day (e.g., the user 308 is no longer in bed 302 after 6:00 a.m.). In some implementations, the control circuitry 334 may generate and transmit a first set of control signals to the security system 318 to activate a first set of security features in response to detecting the presence of the user 308 in bed, and may generate and transmit a second set of control signals to the security system 318 to activate a second set of security features in response to detecting that the user 308 has fallen asleep.

[0108] In some implementations, the control circuitry 334 may receive an alert from the security system 318 and may indicate the alert to the user 308. For example, the control circuitry 334 may detect that the user 308 is in bed at night and, in response, may generate and transmit a control signal to arm or disarm the security system 318. The security system may then detect a security breach (e.g., someone opens the door 332 without entering a security code, or someone opens a window while the security system 318 is armed). The security system 318 may communicate the security breach to the control circuitry 334 of the bed 302. In response to receiving a communication from the security system 318, the control circuitry 334 may generate a control signal to alert the user 308 of the security breach. For example, the control circuitry 334 may cause the bed 302 to vibrate. As another example, the control circuitry 334 may articulate a portion of the bed 302 (e.g., raise or lower the head section) to wake the user 308 and alert the user of a security breach. As another example, the control circuitry 334 may generate and send a control signal to cause the lamp 326 to flash at regular intervals to alert the user 308 of a security breach. As another example, the control circuitry 334 may alert the user 308 of one bed 302 of a security breach in another bed's bedroom, such as an open window in a child's bedroom. As another example, the control circuitry 334 may send an alert to a garage door controller (e.g., to close and lock the door). As another example, the control circuitry 334 may send an alert so that security is deactivated. The control circuitry 334 may also sound a smart alarm or other alarm device / clock near the bed 302. The control circuitry 334 may send a push notification, text message, or other indicator of a security breach to the user device 310. The control circuitry 334 may also send a notification of the security breach to the central controller, which may then determine one or more responses to the security breach.

[0109] The control circuitry 334 may further generate and transmit control signals to control the garage door 320 and may receive information indicating the status of the garage door 320 (i.e., open or closed). For example, in response to determining that the user 308 is in bed at night, the control circuitry 334 may generate and transmit a request to a garage door opener or other device capable of sensing whether the garage door 320 is open. The control circuitry 334 may request information regarding the current status of the garage door 320. If the control circuitry 334 receives a response (e.g., from the garage door opener) indicating that the garage door 320 is open, the control circuitry 334 may notify the user 308 that the garage door is open (e.g., by displaying a notice or other message on the user device 310, by outputting a notice at the central controller, etc.) and / or generate a control signal to cause the garage door opener to close the garage door 320. For example, the control circuitry 334 may transmit a message to the user device 310 indicating that the garage door is open. As another example, the control circuitry 334 may vibrate the bed 302. As yet another example, the control circuitry 334 may generate and transmit a control signal to cause the lighting system 314 to flash one or more lights in the bedroom and to alert the user 308 to check the user device 310 for an alert (in this example, an alert regarding the garage door 320 being open). Alternatively, or additionally, the control circuitry 334 may generate and transmit a control signal to cause a garage door opener to close the garage door 320 in response to identifying that the user 308 is in bed at night and that the garage door 320 is open. The control signal may also vary depending on the age of the user 308.

[0110] The control circuitry 334 may similarly send and receive communications to control or receive status information related to the door 332 or the oven 322. For example, upon detecting that the user 308 is in bed at night, the control circuitry 334 may generate and send a request to a device or system to detect the status of the door 332. Information returned in response to the request may indicate various states of the door 332, such as open, closed but unlocked, or closed and locked. If the door 332 is open or closed but unlocked, the control circuitry 334 may alert the user 308 of the door's status, such as in the manner described above for the garage door 320. Alternatively or additionally to alerting the user 308, the control circuitry 334 may generate and send a control signal to lock the door 332 or to lock it closed. If the door 332 is closed and locked, the control circuitry 334 may determine that no further action is required.

[0111] Similarly, upon detecting that the user 308 is in bed at night, the control circuitry 334 may generate and send a request to the oven 322 to request the state of the oven 322 (e.g., on or off). If the oven 322 is on, the control circuitry 334 may alert the user 308 and / or generate and send a control signal to turn the oven 322 off. If the oven is already off, the control circuitry 334 may determine that no further action is required. In some implementations, different alerts may be generated for different events. For example, control circuitry 334 may cause lamp 326 (or one or more other lights via lighting system 314) to flash in a first pattern if security system 318 detects a breach, in a second pattern if garage door 320 is open, in a third pattern if door 332 is open, in a fourth pattern if oven 322 is on, and in a fifth pattern if another bed detects that a user 308 of that bed has woken up (e.g., when a sensor in the child's bed detects that the child of user 308 has gotten out of bed during the night). Other examples of alerts that may be processed by the control circuitry 334 of the bed 302 and communicated to a user (e.g., an alert at the user device 310 and / or an alert at the central controller described herein) include an alert from a smoke detector that detects smoke (and communicates the detection of the smoke to the control circuitry 334), a carbon monoxide tester that detects carbon monoxide, a heater malfunction, or any other device capable of communicating with the control circuitry 334 and capable of detecting the occurrence of an event that should be brought to the attention of the user 308.

[0112] The control circuitry 334 may also communicate with a system or device for controlling the state of the blinds 330. For example, in response to determining that the user 308 is in bed at night, the control circuitry 334 may generate and transmit a control signal to cause the blinds 330 to close. As another example, in response to determining that the user 308 has woken up for the day (e.g., the user got out of bed after 6:30 a.m.), or in response to determining that the user 308 has set an alarm to wake up at a particular time, the control circuitry 334 may generate and transmit a control signal to cause the blinds 330 to open. In contrast, if the user 308 gets out of bed before the user's normal wake-up time, the control circuitry 334 may determine that the user 308 has not yet woken up for the day, and may not generate a control signal to cause the blinds 330 to open. As yet another example, the control circuitry 334 may generate and transmit control signals to cause a first set of blinds to be closed in response to detecting the presence of a user 308 in bed, and to cause a second set of blinds to be closed in response to detecting that the user is asleep.

[0113] The control circuitry 334 may generate and transmit control signals to control functions of other home devices in response to detecting user interaction with the bed 302. For example, in response to determining that the user 308 has woken up for the day, the control circuitry 334 may generate and transmit a control signal to the coffee maker 324 to cause the coffee maker 324 to begin brewing coffee. As another example, the control circuitry 334 may generate and transmit a control signal to the oven 322 to cause the oven 322 to begin pre-heating (for users who prefer fresh bread in the morning or who bake or prepare food in the morning). As another example, the control circuitry 334 may use information indicating that the user 308 has woken up for the day, along with information indicating that the time of year is currently winter and / or that the outside temperature is below a threshold, to generate and transmit a control signal to turn on the engine block heater in a car.

[0114] As another example, the control circuitry 334 may generate and transmit a control signal to cause one or more devices to enter a sleep mode in response to detecting the user 308's presence in bed or in response to detecting that the user 308 is asleep. For example, the control circuitry 334 may generate a control signal to cause the user's 308 mobile phone to switch into a sleep or night mode, and notifications from the mobile phone may be muted so as not to disturb the user 308's sleep. The control circuitry 334 may then transmit the control signal to the mobile phone. Further later, upon determining that the user 308 has woken up for the day, the control circuitry 334 may generate and transmit a control signal to cause the mobile phone to switch out of the sleep mode (to a normal mode).

[0115] In some implementations, the control circuitry 334 may communicate with one or more noise control devices. For example, upon determining that the user 308 is in bed at night or asleep (e.g., based on a pressure signal received from the bed 302, an acoustic / decibel signal received from an acoustic sensor positioned on or around the bed 302, etc.), the control circuitry 334 may generate and transmit a control signal to activate one or more noise cancellation devices. The noise cancellation devices may be included as part of the bed 302, for example, or may be located within a bedroom in which the bed 302 is located. As another example, upon determining that the user 308 is in bed at night or asleep, the control circuitry 334 may generate and transmit a control signal to turn on, off, up, or down the volume of one or more sound generating devices, such as a stereo system radio, a television, a computer, a tablet, a mobile phone, etc.

[0116] Additionally, functions of the bed 302 may be controlled by the control circuitry 334 in response to user interactions with the bed 302. As previously mentioned, functions of the bed 302 described herein may also be controlled by the user device 310 and / or a central controller (e.g., a hub device or other home automation device that controls multiple different devices in a home). As previously mentioned, the bed 302 may include an adjustable base and an articulation controller configured to adjust the position of one or more portions of the bed 302 by adjusting the adjustable base that supports the bed 302. For example, the articulation controller may adjust the bed 302 from a flat position to a position in which a head portion of a mattress of the bed 302 is tilted upward (e.g., to facilitate a user sitting in bed, reading, and / or watching television). In some implementations, the bed 302 includes multiple separately articulatable sections. For example, the portions of the bed corresponding to the positions of the air chambers 306a and 306b may be articulated independently of one another to allow one person positioned on the surface of the bed 302 to rest in a first position (e.g., flat position) while a second person rests in a second position (e.g., reclined position with head elevated at an angle from the waist). In some implementations, separate positions may be set for two different beds (e.g., two twin beds positioned next to each other). The base of the bed 302 may include two or more zones that may be independently adjusted. The articulation controller may also be configured to provide different levels of massage to one or more users on the bed 302, or to vibrate the bed to communicate alerts to the user 308 as described above.

[0117] The control circuitry 334 may adjust the position (e.g., tilt and lower positions for the user 308 and / or additional users of the bed 302) in response to user interaction with the bed 302. For example, the control circuitry 334 may cause the articulation controller to adjust the bed 302 to a first reclined position for the user 308 in response to sensing the presence of the user 308 in bed. The control circuitry 334 may cause the articulation controller to adjust the bed 302 to a second reclined position (e.g., a less reclined or flat position) in response to determining that the user 308 is asleep. As another example, the control circuitry 334 may receive a communication from the television 312 indicating that the user 308 has turned off the television 312, in response to which the control circuitry 334 may adjust the position of the bed 302 to a preferred user sleep position (e.g., the user turning off the television 312 while the user 308 is in bed, indicating that the user 308 wishes to fall asleep).

[0118] In some implementations, the control circuitry 334 may control the articulation controller to wake one user of the bed 302 without waking another user of the bed 302. For example, the user 308 and a second user of the bed 302 may each set a different wake-up time (e.g., 6:30 a.m. and 7:15 a.m., respectively). When it is time for the user 308 to wake up, the control circuitry 334 may cause the articulation controller to vibrate or change the position of only the side of the bed on which the user 308 is located to wake up the user 308 without disturbing the second user. When it is time for the second user to wake up, the control circuitry 334 may cause the articulation controller to vibrate or change the position of only the side of the bed on which the second user is located. Alternatively, when it is time for the second user to wake up, the control circuitry 334 may use other methods (e.g., an audio alarm, turning on a light, etc.) to wake up the second user. Because, when the control circuitry 334 attempts to wake up the second user, the user 308 is already awake and will not be disturbed.

[0119] Continuing to refer to FIG. 3, the control circuitry 334 of the bed 302 may utilize information about interactions with the bed 302 by multiple users to generate control signals to control the functions of various other devices. For example, the control circuitry 334 may wait to generate control signals, such as to activate the security system 318 or to command the lighting system 314 to turn off various room lights, until it detects that both the user 308 and a second user are present on the bed 302. As another example, the control circuitry 334 may generate a first set of control signals to cause the lighting system 314 to turn off a first set of lights upon detecting the presence of the user 308 at the bed, and may generate a second set of control signals to turn off a second set of lights in response to detecting the presence of the second user at the bed. As another example, the control circuitry 334 may wait to generate control signals to open the blinds 330 until it is determined that both the user 308 and the second user have woken up for the day. As yet another example, in response to determining that user 308 has left bed 302 for the day and is awake, but the second user is still asleep, control circuitry 334 may generate and transmit a first set of control signals to cause coffee maker 324 to begin brewing coffee, to cause security system 318 to deactivate, to turn on lamp 326, to turn off night light 328, to cause thermostat 316 to increase the temperature in one or more rooms to 72 degrees Fahrenheit, and / or to open window blinds 330 in a room other than the bedroom in which bed 302 is located. Thereafter, in response to detecting that the second user is no longer in bed (or that the second user has awake or is awake), control circuitry 334 may generate and transmit a second set of control signals, such as to cause lighting system 314 to turn on one or more lights in the bedroom, to open the bedroom blinds, and to turn on television 312 on a pre-designated channel. One or more other home automation control signals may be determined and generated by the control circuitry 334, the user device 310, and / or a central controller described herein.

[0120] [Example of a data processing system associated with a bed]

[0121] Here, examples of systems and components that may be used for data processing tasks associated with, for example, a bed are described. In some cases, multiple examples of a particular component or group of components are presented. Some of these examples are redundant and / or mutually exclusive alternatives. The connections between the components are shown as examples illustrating possible network configurations to allow communication between the components. Various types of connections may be used as technically necessary or desired. The connections generally refer to logical connections that may be made in any technically feasible manner. For example, a network on a motherboard may be created with a printed circuit board, a wireless data connection, and / or other types of network connections. Some logical connections are not shown for clarity. For example, many or all elements of a particular component may need to be connected to a power source and / or computer readable memory, but for clarity, the connections to the power source and / or computer readable memory may not be shown.

[0122] Fig. 4A is a block diagram of an example of a data processing system 400 that may be associated with a bed system, including those described above with respect to Figs. 1 to 3. The system 400 includes a pump motherboard 402 and a pump daughterboard 404. The system 400 includes a sensor array 406, which may include one or more sensors configured to sense environmental and / or bed physical phenomena and report such sensing to the pump motherboard 402, for example for analysis. The sensor array 406 may include one or more different types of sensors, including, but not limited to, pressure sensors, temperature sensors, light sensors, motion (e.g., movement) sensors, and acoustic sensors. The system 400 also includes a controller array 408, which may include one or more controllers configured to control logic control devices of the bed and / or the environment, such as home automation devices, security systems, lighting systems, and other devices described with reference to Fig. 3. Pump motherboard 400 may be in communication with one or more computing devices 414 and one or more cloud services 410 via a local network, via the Internet 412, or via any other manner suitable in the art. Each of these components is described in more detail below, along with several example embodiments.

[0123] In this example, pump motherboard 402 and pump daughterboard 404 are communicatively coupled. They may be conceptually described as the center or hub of system 400, and other components may be conceptually described as spokes of system 400. In some forms, this may mean that each of the spoke components communicates primarily or exclusively with pump motherboard 402. For example, sensors in sensor array 406 may not be configured or capable of communicating directly with a corresponding controller. Instead, each spoke component may communicate with motherboard 402. Sensors in sensor array 406 may report sensor readings to motherboard 402, which in response may determine whether a controller in controller array 408 should adjust some parameter of a logical control device or modify the state of one or more peripheral devices. In one case, if the temperature of the bed is determined to be too high based on the temperature signals received from the sensor array 406, the pump motherboard 402 may determine that the temperature controller should cool the bed.

[0124] One advantage of a hub-and-spoke network topology (sometimes called a star network) is reduced network traffic, for example, compared to a mesh network using dynamic routing. Even if a particular sensor generates a large continuous stream of traffic, that traffic may only be sent to the motherboard 402 via one spoke of the network. The motherboard 402 may, for example, marshal the data, condense it into a smaller data format, and resend it for storage in the cloud service 410. Additionally or alternatively, the motherboard 402 may generate a single small command message in response to the large stream that is sent via a different spoke of the network. For example, if the large data stream is a pressure reading sent from the sensor array 406 several times per second, the motherboard 402 may respond with a single command message to the controller array to increase the pressure in the air chamber of the bed. In this case, the single command message may be orders of magnitude smaller than the stream of pressure readings.

[0125] As another advantage, the hub-and-spoke network topology may allow for a scalable network that can accommodate component additions, removals, failures, etc. This may allow, for example, more, fewer, or different sensors in the sensor array 406, more, fewer, or different controllers in the controller array 408, more, fewer, or different computing devices 414, and / or more, fewer, or different cloud services 410. For example, if a particular sensor fails or is obsolete by a newer version of that sensor, the system 400 may be configured such that only the motherboard 402 needs to be updated with a replacement sensor. This may allow product differentiation, for example, where the same motherboard 402 can support an entry-level product with fewer sensors and controllers, a higher value product with more sensors and controllers, and customer personalization, where customers may add their own selection of components to the system 400.

[0126] Additionally, a line of airbed products may use system 400 with various components. In applications where all airbeds in a product line include both a central logic unit and pump, motherboard 402 (and optionally daughterboard 404) may be designed to fit into a single universal housing. Additional sensors, controllers, cloud services, etc. may then be added with each upgrade of a product in the product line. Designing all products in a product line from such a base may reduce design, manufacturing, and testing time, as compared to a product line where each product has a custom logic control system.

[0127] Each of the aforementioned components may be implemented in a variety of technologies and forms. Several examples of each component are further described below. In some alternatives, two or more components of system 400 may be implemented in a single alternative component, some components may be implemented in multiple separate components, and / or some functionality may be provided by different components.

[0128] 4B is a block diagram illustrating some communication paths of the data processing system 400. As previously mentioned, the motherboard 402 and pump daughterboard 404 may act as a hub for peripherals and cloud services of the system 400. If the pump daughterboard 404 communicates with a cloud service or other component, the communication from the pump daughterboard 404 may be routed through the pump motherboard 402. This may allow, for example, the bed to have only a single connection to the Internet 412. The computing device 414 may also have a connection to the Internet 412, possibly through the same gateway used by the bed and / or possibly through a different gateway (e.g., a cell service provider).

[0129] Previously, several cloud services 410 have been described. As shown in FIG. 4B, some cloud services, such as cloud services 410d and 410e, may be configured such that the pump motherboard 402 can communicate directly with the cloud services--i.e., the motherboard 402 may communicate with the cloud services 410 without having to use another cloud service 410 as an intermediary. Additionally or alternatively, some cloud services 410, such as cloud service 410f, may be reachable by the pump motherboard 402 only through an intermediary cloud service, such as cloud service 410e. Although not shown here, some cloud services 410 may be reachable directly or indirectly by the pump motherboard 402.

[0130] Additionally, some or all of the cloud services 410 may be configured to communicate with other cloud services. This communication may include the transfer of data and / or remote function calls according to any technically appropriate manner. For example, one cloud service 410 may request a copy of another cloud service's 410 data, such as for backup, coordination, migration purposes, or to perform computations or data mining. In another example, many cloud services 410 may contain data that is indexed according to specific users tracked by the user count cloud 410c and / or bed data cloud 410a. These cloud services 410 may communicate with the user count cloud 410c and / or bed data cloud 410a when accessing data specific to a particular user or bed.

[0131] Figure 5 is a block diagram of one example of a motherboard 402 that may be used in a data processing system that may be associated with a bed system, including those described above with respect to Figures 1-3. In this example, the motherboard 402 may be comprised of relatively few components and may be limited to provide a relatively limited feature set, as compared to other examples described below.

[0132] Motherboard 402 includes a power supply 500, a processor 502, and computer memory 512. In general, power supply 500 includes hardware used to receive power from an external power source and provide it to the components of motherboard 402. The power supply may include, for example, a battery pack and / or wall outlet adapter (plug), an AC-DC converter, a DC-AC converter, a power conditioner, a capacitor bank, and / or one or more interfaces for providing power at the current type, voltage, etc. required by the other components of motherboard 402.

[0133] Processor 502 is generally a device for receiving input, making logical decisions, and providing output. Processor 502 may be a central processing unit, a microprocessor, a general-purpose logic circuit, an application specific integrated circuit (ASIC), a combination thereof, and / or other hardware to perform the necessary functions.

[0134] Memory 512 is generally one or more devices for storing data. Memory 512 may include long-term stable data storage (e.g., on a hard disk), short-term volatile data storage (e.g., on a random access memory), or any other technically suitable configuration.

[0135] The motherboard 402 includes a pump controller 504 and a pump motor 506. The pump controller 504 may receive commands from the processor 502 and, in response, control the function of the pump motor 506. For example, the pump controller 504 may receive a command from the processor 502 to increase the pressure of an air chamber by 0.3 pounds per square inch (PSI). In response, the pump controller 504 may actuate a valve such that the pump motor 506 is configured to pump air into a selected air chamber and operate the pump motor 506 for a time corresponding to 0.3 PSI or until a sensor indicates that the pressure has been increased by 0.3 PSI. In an alternative embodiment, a message may specify that the chamber should be inflated to a target PSI and the pump controller 504 may operate the pump motor 506 until the target PSI is reached.

[0136] The valve solenoid 508 may control which air chamber the pump is connected to. In some cases, the solenoid 508 may be controlled directly by the processor 502. In some cases, the solenoid 508 may be controlled by the pump controller 504.

[0137] The remote interface 510 of the motherboard 402 may allow the motherboard 402 to communicate with other components of a data processing system. For example, the motherboard 402 may be able to communicate with one or more daughterboards, peripheral sensors, and / or peripheral controllers via the remote interface 510. The remote interface 510 may provide any technologically appropriate communication interface, including, but not limited to, multiple communication interfaces such as WIFI, Bluetooth, and copper wired networks.

[0138] Figure 6 is a block diagram of an example of a motherboard 402 that may be used in a data processing system associated with a bed system, including those described above with respect to Figures 1 to 3. Compared to the motherboard 402 described with reference to Figure 5, the motherboard 402 of Figure 6 may include more components and may provide more functionality in some applications.

[0139] In addition to the power supply 500, processor 502, pump controller 504, pump motor 506 and valve solenoid 508, the motherboard 402 is shown with a valve controller 600, a pressure sensor 602, a Universal Serial Bus (USB) stack 604, a WiFi radio 606, a Bluetooth Low Energy (BLE) radio 608, a ZigBee radio 610, a Bluetooth radio 612, and computer memory 512.

[0140] Similar to how pump controller 504 converts commands from processor 502 into control signals for pump motor 506, valve controller 600 may convert commands from processor 502 into control signals for valve solenoid 508. In one example, processor 502 may issue a command to valve controller 600 to connect a pump to one particular air chamber of a group of air chambers in an airbed. Valve controller 600 may control the position of valve solenoid 508 such that the pump is connected to the indicated air chamber.

[0141] The pressure sensor 602 can take pressure readings from one or more air chambers of the airbed. The pressure sensor 602 can also provide digital sensor calibration. As described herein, multiple pressure sensors 602 can be included as part of or in communication with the motherboard 402.

[0142] The motherboard 402 may include a set of network interfaces 604, 606, 608, 610, 612, etc., including but not limited to those illustrated in Figure 6. These network interfaces may allow the motherboard to communicate over wired or wireless networks with any number of devices, including but not limited to peripheral sensors, peripheral controllers, computing devices, and devices and services connected to the Internet 412.

[0143] FIG. 7 is a block diagram of an example of a daughterboard 404 that may be used in a data processing system associated with a bed system, including those described above with respect to FIGS. 1-3. In some configurations, one or more daughterboards 404 may be connected to the motherboard 402. Some daughterboards 404 may be designed to offload certain tasks and / or compartmentalized tasks from the motherboard 402. This may be advantageous, for example, if a certain task is computationally intensive, proprietary, or subject to future revisions. For example, a daughterboard 404 may be used to calculate a certain sleep data metric. This metric may be computationally intensive, and calculating the sleep metric on the daughterboard 404 may free up resources on the motherboard 402 while the metric is being calculated. Additionally and / or alternatively, the sleep metric may be subject to future revisions. It is possible that to update the system 400 with a new sleep metric, only the daughterboard 404 that calculates the metric needs to be replaced. In this case, there is no need to perform unit testing of the additional components in addition to the daughterboard 404 since the same motherboard 402 and other components may be used.

[0144] The daughter board 404 is shown with a power supply 700, a processor 702, a computer readable memory 704, a pressure sensor 706, and a WiFi radio 708. The processor 702 may use the pressure sensor 706 to gather information regarding the pressure of one or more air chambers of the air bed. From this data, the processor 702 may execute algorithms to calculate sleep metrics (e.g., sleep quality, whether the user is currently in bed, whether the user has fallen asleep, the user's heart rate, the user's breathing rate, the user's movement, etc.). In some examples, the sleep metrics may be calculated solely from the pressure of the air chambers. In other examples, the sleep metrics may be calculated using signals from various sensors (e.g., motion sensors, pressure sensors, temperature sensors, and / or acoustic sensors). In examples where various data is needed, the processor 702 may receive such data from an appropriate sensor or sensors. These sensors may be internal to the daughter board 404, accessible via the WiFi radio 708, or in communication with the processor 702. Once the sleep metrics are calculated, the processor 702 may report the sleep metrics, for example to the motherboard 402. The motherboard 402 may then generate instructions to output the sleep metrics to a user or to use the sleep metrics to determine one or more other information about the user or controls for controlling the bed system and / or peripheral devices.

[0145] Figure 8 is a block diagram of an example of a motherboard 800 without daughterboards that may be used in a data processing system associated with a bed system, including those described above with respect to Figures 1-3. In this example, the motherboard 800 may perform most, all, or more of the functions described with reference to the motherboard 402 of Figure 6 and the daughterboard 404 of Figure 7.

[0146] Figure 9 is a block diagram of an example of a sensor array 406 that may be used in a data processing system associated with a bed system, including those described above with respect to Figures 1-3. In general, the sensor array 406 is a conceptual grouping of some or all of the peripheral sensors that communicate with the motherboard 402 but are not native to the motherboard 402.

[0147] The ambient sensors 902, 904, 906, 908, 910, etc. of the sensor array 406 may communicate with the motherboard 402 via one or more network interfaces of the motherboard, including but not limited to a USB stack 604, a WiFi radio 606, a Bluetooth Low Energy (BLE) radio 608, a ZigBee radio 610, and a Bluetooth radio 612, as appropriate for the particular sensor configuration. For example, a sensor that outputs readings via a USB cable may communicate via the USB stack 604.

[0148] Some of the ambient sensors of the sensor array 406 may be bed-mounted sensors 900, such as a temperature sensor 906, a light sensor 908, and an acoustic sensor 910. These bed-mounted sensors 900 may, for example, be embedded within the structure of the bed and sold with the bed, or may be later attached to the structure of the bed (e.g., as part of a pressure-sensitive pad removably mounted to the top surface of the bed, or as part of a temperature-sensing or heating pad removably mounted to the top surface of the bed, integrated into the top surface of the bed, mounted along a connecting tube between the pump and the air chamber, mounted within the air chamber, mounted to the headboard of the bed, mounted to one or more areas of the adjustable base, etc.). Other sensors 902, 904 may be in communication with the motherboard 402, but may be selectively not mounted to the bed. Other sensors 902, 904 may include pressure sensors 902 and / or ambient sensors 904. For example, the sensors 902, 904 may be integrated into or be part of a user's mobile device (e.g., a mobile phone, a wearable device, etc.). The sensors 902, 904 may be part of a central controller for controlling the bed and peripherals in the home. In some cases, the sensors 902, 904 may be part of one or more home automation devices or other peripherals in the home.

[0149] In some cases, some or all of the sensors 900 and / or sensors 902, 904 attached to the bed may share networking hardware, which includes conductors including wires, multi-wire cables, or plugs from each sensor that when attached to the motherboard 402 connect all of the associated sensors with the motherboard 402. In some embodiments, one, some, or all of the sensors 902, 904, 906, 908, 910 are capable of sensing one or more characteristics of the mattress, such as pressure, temperature, light, sound, and / or one or more other characteristics of the mattress. In some embodiments, one, some, or all of the sensors 902, 904, 906, 908, 910 are capable of sensing one or more characteristics of the exterior of the mattress. In some embodiments, some or all of the sensors 902, 904, 906, 908, 910 are capable of sensing one or more characteristics of the mattress and / or one or more characteristics external to the mattress, while the pressure sensor 902 is capable of sensing the pressure of the mattress.

[0150] Figure 10 is a block diagram of an example of a controller array 408 that may be used in a data processing system associated with a bed system, including those described above with respect to Figures 1-3. In general, the controller array 408 is a conceptual grouping of some or all of the peripheral controllers that communicate with the motherboard 402 but are not native to the motherboard 402.

[0151] The peripheral controllers of the controller array 408 may communicate with the motherboard 402 via one or more network interfaces of the motherboard, including but not limited to a USB stack 604, a WiFi radio 606, a Bluetooth Low Energy (BLE) radio 608, a ZigBee radio 610, and a Bluetooth radio 612, as appropriate for the particular sensor configuration. For example, a controller that receives commands via a USB cable may communicate via the USB stack 604.

[0152] Some of the controllers in the controller array 408 may be bed-mounted controllers 1000, such as a temperature controller 1006, a lighting controller 1008, and a speaker controller 1010. These bed-mounted controllers 1000 may be embedded in the structure of the bed, sold with the bed, or may be later attached to the structure of the bed, as described above in connection with the peripheral sensors of FIG. 9. Other peripheral controllers 1002, 1004 may communicate with the motherboard 402, but may be selectively not attached to the bed. In some cases, some or all of the bed-mounted controllers 1000 and / or peripheral controllers 1002, 1004 may share networking hardware, which includes conductors including wires, multi-wire cables, or plugs for each controller that connect all of the associated controllers to the motherboard 402 when attached to the motherboard 402.

[0153] Figure 11 is a block diagram of an example of a computing device 412 that may be used in a data processing system associated with a bed system, including those described above with respect to Figures 1-3. The computing device 412 may include, for example, a computing device used by a user of the bed. Exemplary computing devices 412 include, but are not limited to, mobile computing devices (e.g., mobile phones, tablet computers, laptops, smartphones, wearable devices), desktop computers, home automation devices, and / or central controllers or other hub devices.

[0154] The computing device 412 includes a power supply 1100, a processor 1102, and a computer-readable memory 1104. User input and output may be transmitted, for example, via a speaker 1106, a touch screen 1108, or other components not shown, such as a pointing device or a keyboard. The computing device 412 may execute one or more applications 1110. These applications may include, for example, applications that allow a user to interact with the system 400. These applications may allow a user to view information about the bed (e.g., sensor readings, sleep metrics, etc.) and about the user (e.g., health conditions detected based on signals sensed at the bed), and / or configure the operation of the system 400 (e.g., set a desired firmness for the bed, set a desired operation for a peripheral device). In some cases, the computing device 412 may be used in addition to or in place of the remote control 122 described above.

[0155] Figure 12 is a block diagram of an example of a bed data cloud service 410a that may be used in a data processing system associated with a bed system, including those described above with respect to Figures 1-3. In this example, the bed data cloud service 410a is configured to collect sensor data and sleep data from a particular bed and match the sensor data and sleep data to one or more users occupying the bed at the time the sensor data and sleep data were generated.

[0156] The bed data cloud service 410a is shown with a network interface 1200, a communications manager 1202, server hardware 1204, and server system software 1206. Additionally, the bed data cloud service 410a is shown with a user identification module 1208, a device management module 1210, a sensor data module 1212, and an advanced sleep data module 1214.

[0157] Network interface 1200 generally includes hardware and low-level software used to allow one or more hardware devices to communicate over a network. For example, network interface 1200 may include network cards, routers, modems, and other hardware required to allow components of bed data cloud service 410a to communicate with each other and other destinations, such as over the Internet 412.

[0158] The communications manager 1202 generally includes hardware and software that operates on the network interface 1200. It includes software for initiating, maintaining, and tearing down network communications used by the bed data cloud service 410a. This includes, for example, TCP / IP, SSL or TLS, Torrent, and other communications sessions over local or wide area networks. The communications manager 1202 may also provide load balancing and other services to other elements of the bed data cloud service 410a.

[0159] The server hardware 1204 generally includes physical processing equipment used to instantiate and maintain the bed data cloud service 410a. This hardware includes, but is not limited to, processors (e.g., central processing units, ASICs, graphic processors) and computer readable memory (e.g., random access memory, stable hard disks, tape backups). One or more servers may be configured in a cluster, multi-computer, or data center that may be geographically separated or connected.

[0160] Server system software 1206 generally includes software that runs on server hardware 1204 to provide an operating environment for applications and services. Server system software 1206 may include operating systems that run on real servers, virtual machines that are instantiated on real servers to create many virtual servers, and server-level operations such as data migration, redundancy, and backups.

[0161] The user identification module 1208 may include or reference data related to users of a bed with an associated data processing system. For example, a user may include a customer, owner, or other user registered with the bed data cloud service 410a or other service. Each user may have, for example, a unique identifier, user credentials, contact information, billing information, demographic information, or other technically appropriate information.

[0162] The device management module 1210 may include or reference data related to beds or other products associated with the data processing system. For example, beds may include products (product information) sold or registered in a system associated with the bed data cloud service 410a. Each bed may have, for example, a unique identifier, a model and / or serial number, sales information, geographic information, shipping information, a list of associated sensors and peripheral controls, etc. Additionally, one or more indexes stored by the bed data cloud service 410a may identify a user associated with the bed. For example, the indexes may record sales of beds to one or more users who sleep in the bed, etc.

[0163] The sensor data module 1212 may record raw or compressed sensor data recorded by a bed with an associated data processing system. For example, the bed's data processing system may have temperature, pressure, motion, acoustic, and / or light sensors. Readings from one or more of these sensors may be communicated by the bed's data processing system to the bed data cloud service 410a in raw sensor form or in a format generated from the raw data (e.g., sleep metrics) and stored in the sensor data module 1212. Additionally, one or more indexes stored by the bed data cloud service 410a may identify a user and / or bed associated with the sensor data module 1212.

[0164] The bed data cloud service 410a may use any of its available data (e.g., sensor data 1212) to generate advanced sleep data 1214. In general, the advanced sleep data 1214 includes sleep metrics generated from sensor readings and other data (e.g., health information associated with a particular bed user). Some of these calculations may be performed by the bed data cloud service 410a instead of being performed locally on the bed's data processing system, for example, if the calculations may be complex or may require a large amount of memory space or processor power that is not available on the bed's data processing system. This may help to allow the bed system to operate with a relatively simple controller, while still being part of the system that performs relatively complex tasks and calculations.

[0165] For example, the bed data cloud service 410a may retrieve one or more machine learning models from a remote data store and use those models to determine the advanced sleep data 1214. The bed data cloud service 410a may retrieve various types of models based on the type of advanced sleep data 1214 generated. As an example, the bed data cloud service 410a may retrieve one or more models for determining the overall sleep quality of a user based on currently detected sensor data 1212 and / or historical sensor data (e.g., may be stored in and accessed from a data store). The bed data cloud service 410a may retrieve one or more other models for determining whether the user is currently snoring based on the detected sensor data 1212. The bed data cloud service 410a may retrieve one or more other models that may be used to determine whether the user is experiencing any health condition (disease) based on the detected sensor data 1212.

[0166] Figure 13 is a block diagram of an example of a sleep data cloud service 410b that may be used in a data processing system associated with a bed system, including those described above with respect to Figures 1-3. In this example, the sleep data cloud service 410b is configured to record data related to a user's sleep experience.

[0167] The sleep data cloud service 410b is shown with a network interface 1300, a communications manager 1302, server hardware 1304, and server system software 1306. Additionally, the sleep data cloud service 410b is shown with a user identification module 1308, a pressure sensor management module 1310, a pressure-based sleep data module 1312, a raw pressure sensor data module 1314, and a non-pressure sleep data module 1316. In some cases, the sleep data cloud service 410b may include a sensor manager for each of the sensors integrated into or in communication with the bed. In some implementations, the sleep data cloud service 410b may include a sensor manager associated with multiple sensors in the bed. For example, a single sensor manager may be associated with pressure sensors, temperature sensors, light sensors, motion sensors, and acoustic sensors in the bed.

[0168] 13, the pressure sensor management module 1310 may include or reference data related to the configuration and operation of pressure sensors in a bed. For example, this data may include identifiers for the types of sensors in a particular bed, their configuration and calibration data, etc.

[0169] The pressure-based sleep data 1312 may use the raw pressure sensor data 1314 to calculate sleep metrics specifically associated with the pressure sensor data. For example, a user's presence, movement, weight change, heart rate, and respiration rate may all be determined from the raw pressure sensor data 1314. Additionally, one or more indexes stored by the sleep data cloud service 410b may identify a user associated with the pressure sensor, the raw pressure sensor data, and / or the pressure-based sleep data.

[0170] The non-stress sleep data 1316 may use other data sources to calculate sleep metrics. For example, user-entered preferences, optical sensor readings, and acoustic sensor readings may all be used to track sleep data. Additionally, one or more indexes stored by the sleep data cloud service 410b may identify the user associated with the other sensors and / or the non-stress sleep data 1316.

[0171] Figure 14 is a block diagram of an example of a user counting cloud service 410c that may be used in a data processing system associated with a bed system, including those described above with respect to Figures 1-3. In this example, the user counting cloud service 410c is configured to record a list of users and identify other data related to those users.

[0172] The user counting cloud service 410c is shown with a network interface 1400, a communications manager 1402, server hardware 1404, and server system software 1406. Additionally, the user counting cloud service 410c is shown with a user identification module 1408, a purchase history module 1410, an engagement module 1412, and an application usage history module 1414.

[0173] The user identification module 1408 may include or refer to data related to users of a bed with an associated data processing system. For example, a user may include a customer, an owner, or other user registered with the user count cloud service 410c or other services. Each user may have, for example, a unique identifier, user credentials, demographic information, or other technically appropriate information. Each user may also have user-entered preferences regarding the user's bed system (e.g., firmness settings, heating / cooling settings, tilt and / or tilt positions of different areas of the bed, etc.), surroundings (e.g., lighting, temperature, etc.), and / or peripherals (e.g., on / off of televisions, coffee makers, security systems, alarm clocks, etc.).

[0174] The purchase history module 1410 may include or reference data related to purchases by users. For example, the purchase data may include sales contact information, billing information, and sales representative information associated with a user's purchase of a bed system. Additionally, one or more indexes stored by the user account cloud service 410c may identify a user associated with a bed system purchase.

[0175] The engagement module 1412 may track user interactions with bed and / or cloud service manufacturers, vendors, and / or managers. This engagement data may include communications (e.g., emails, service calls, etc.), sales data (e.g., receipts, configuration logs), and social network interactions. Engagement data may also include service, maintenance, or replacement of components of the user's bed system.

[0176] The usage history module 1414 may include data regarding user interactions with one or more applications and / or remote controls of the bed. For example, monitoring and configuration applications may be distributed to execute, for example, on multiple computing devices 412. The computing devices 412 may include a user's mobile phone, laptop, tablet, computer, smartphone, and / or wearable device. The computing devices 412 may also include a central controller or hub device, which may be used to control the operation of the bed system as well as one or more peripheral devices. Additionally, the computing devices 412 may include home automation devices. Applications presented to the user via the computing devices 412 may log and report user interactions for storage in the application usage history module 1414. Additionally, one or more indexes stored by the user count cloud service 410c may identify the user associated with each log entry. User interactions stored in the application usage history module 1414 may optionally be used to determine or predict user preferences and / or settings for the user's bed and / or peripheral devices that may improve the user's overall sleep quality.

[0177] Figure 15 is a block diagram of an example of a point of sale (POS) cloud service 1500 that may be used in a data processing system that may be associated with a bed system, including those described above with respect to Figures 1-3. In this example, the point of sale cloud service 1500 is configured to record data related to a user's purchases, specifically the purchase of a bed system as described herein.

[0178] The point of sale cloud service 1500 is shown with a network interface 1502, a communications manager 1504, server hardware 1506, and server system software 1508. Additionally, the point of sale cloud service 1500 is shown with a user identification module 1510, a purchase history module 1512, and a bed setup module 1514.

[0179] The purchase history module 1512 may include or reference data related to purchases made by a user identified in the user identification module 1510. The purchase information may include data such as the sale, price, location of sale, delivery address, and configuration options selected by the user at the time of sale. These configuration options may include choices made by the user about how they want their newly purchased bed set up, and may include, for example, an expected sleep schedule, a list of peripheral sensors and controllers the user has or will install, etc.

[0180] The bed setup module 1514 may include or reference data related to the setup of a bed purchased by a user. Bed setup data may include, for example, the date and address to which the bed is to be delivered, the person receiving the delivery, the configuration (e.g., firmness setting) applied to the bed at the time of delivery, the names of one or more users who will be sleeping on the bed, which side of the bed each user will be using, etc.

[0181] The data recorded in the point of sale cloud service 1500 can be referenced at a later date by the user's bed system to control the bed system's functions and / or send control signals to peripheral components according to the data recorded in the point of sale cloud service 1500. This can allow a salesperson to collect information from the user at the point of sale, which can facilitate automation of the bed system at a later time. In some examples, some or all features of the bed system can be automated and little to no user input data is required after the point of sale. In other examples, the data recorded in the point of sale cloud service 1500 can be used in conjunction with various additional data collected from the user input data.

[0182] Figure 16 is a block diagram of an example of an environmental cloud service 1600 that may be used in a data processing system associated with a bed system, including those described above with respect to Figures 1 to 3. In this example, the environmental cloud service 1600 is configured to record data related to a user's home environment.

[0183] The environmental cloud service 1600 is shown with a network interface 1602, a communications manager 1604, server hardware 1606, and server system software 1608. Additionally, the environmental cloud service 1600 is shown with a user identification module 1610, an environmental sensor module 1612, and an environmental factor module 1614.

[0184] The environmental sensor module 1612 may include a list and identification of sensors that a user identified by the user identification module 1610 has placed in and / or around the bed. These sensors may include any sensor capable of detecting environmental variables, including, but not limited to, light sensors, noise / sound sensors, vibration sensors, thermostats, motion sensors (e.g., motion sensors), etc. Additionally, the environmental sensor module 1612 may store historical readings or reports from those sensors. The environmental sensor module 1612 may subsequently be accessed and used by one or more cloud services described herein to determine the user's sleep quality and / or health information.

[0185] The environmental factors module 1614 may include reports generated based on data from the environmental sensor module 1612. For example, the environmental factors module 1614 may generate and maintain reports based on light sensor data stored in the environmental sensor module 1612 indicating the frequency and duration of instances of increased lighting when the user is asleep.

[0186] In the examples described herein, each cloud service 410 is shown with some of the same components. In various forms, these same components may be shared, partially or completely, between the services, or they may be separate. In some forms, each service may have separate copies of some or all of the components that are the same or different in some respects. Furthermore, these components are provided only as illustrative examples. In other examples, each cloud service may have different numbers, types, and styles of components, as technically possible.

[0187] 17 is a block diagram of an example of automating peripherals around a bed using a data processing system that may be associated with a bed (e.g., a bed of a bed system described herein, such as in FIGS. 1-3). Shown here is a behavioral analysis module 1700 running on the pump motherboard 402. For example, the behavioral analysis module 1700 may be one or more software components stored in the computer memory 512 and executed by the processor 502.

[0188] In general, the behavioral analysis module 1700 may collect data from a wide variety of sources (e.g., sensors 902, 904, 906, 908, 910, non-sensor local sources 1704, cloud data services 410a, 410c) and may use a behavioral algorithm 1702 (e.g., one or more machine learning models) to generate one or more actions to be taken (e.g., commands to send to a peripheral controller, data to send to a cloud service (e.g., bed data cloud service 410a and / or user account cloud service 410c)). This may be useful, for example, to track a user's behavior or to automate devices that communicate with the user's bed.

[0189] The behavioral analysis module 1700 may collect data from any technically suitable source to collect data regarding, for example, the characteristics of the bed, the environment of the bed, and / or the user of the bed. Some such sources include any of the sensors of the sensor array 406 described above (e.g., including but not limited to sensors 902, 904, 906, 908, 910). For example, this data may provide the behavioral analysis module 1700 with information regarding the current state of the environment surrounding the bed. For example, the behavioral analysis module 1700 may access a reading from a pressure sensor 902 to determine the pressure of an air chamber in the bed. From this reading, and possibly other data, the presence of a user at the bed may be determined. In another example, the behavioral analysis module 1700 may access a light sensor 908 to detect the amount of light in the environment of the bed. The behavioral analysis module 1700 may also access a temperature sensor 906 to detect the temperature of the environment of the bed and / or one or more microclimates in the bed. Using this data, the behavioral analysis module 1700 may determine whether temperature adjustments should be made to the bed environment and / or bed components to improve the user's sleep quality and overall comfort.

[0190] Similarly, the behavioral analysis module 1700 may access data from cloud services and use such data to make more accurate determinations of the user's sleep quality, health information, and / or control of the user's bed and / or peripheral devices. For example, the behavioral analysis module 1700 may access the bed cloud service 410a and access the historical sensor data 1212 and / or the advanced sleep data 1214. Other cloud services 410, including those not previously described, may be accessed by the behavioral analysis module 1700. For example, the behavioral analysis module 1700 may access 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 data obtained from the cloud services 410, the behavioral analysis module 1700 may more accurately determine the user's sleep quality, health information, and / or control of the user's bed and / or peripheral devices.

[0191] Similarly, behavioral analysis module 1700 may access data from non-sensor sources 1704. For example, behavioral analysis module 1700 may access a local clock and calendar service (e.g., a component of motherboard 402 or processor 502). Behavioral analysis module 1700 may use the local clock and / or calendar information to determine, for example, when a user is in bed, asleep, awake, and / or goes to sleep.

[0192] The behavioral analysis module 1700 may aggregate and prepare this data for use by one or more behavioral algorithms 1702. As previously mentioned, the behavioral algorithms 1702 may include machine learning models. The behavioral algorithms 1702 may be used to learn the user's behavior and / or perform some action based on the state of the accessed data and / or predicted user behavior. For example, the behavioral algorithms 1702 may use available data (e.g., pressure sensor, non-sensor data, clock and calendar data) to create a model of when the user goes to bed each night. The same or a different action algorithm 1702 may then be used to determine whether an increase in air chamber pressure is likely to indicate the user has gone to bed, and if so, may send some data to the third party cloud service 410 and / or activate the peripheral controllers 1002, 1004, the base actuator 1006, the temperature controller 1008, and / or the underbed lighting controller 1010.

[0193] In the depicted example, the behavioral analysis module 1700 and the behavioral algorithms 1702 are shown as components of the pump motherboard 402, although other configurations are possible. For example, the same or similar behavioral analysis module 1700 and / or behavioral algorithms 1702 may be executed in one or more cloud services, and the resulting output may be sent to the pump motherboard 402, a controller of the controller array 408, or any other technically suitable recipient, as described throughout this specification.

[0194] 18 illustrates an example of a computing device 1800 and an example of a mobile computing device that may be used to implement the techniques described herein. The computing device 1800 is intended to represent various forms of digital computers, such as laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other suitable computers. The mobile computing device is intended to represent various forms of mobile devices, such as personal digital assistants, mobile phones, smart phones, and other similar computing devices. The components shown, their connections and relationships, and their functions are intended to be illustrative only and are not intended to limit the implementation of the invention described and / or claimed herein.

[0195] The computing device 1800 includes a processor 1802, a memory 1804, a storage device 1806, a high-speed interface 1808 connecting to the memory 1804 and a number of high-speed expansion ports 1810, and a low-speed interface 1812 connecting to a low-speed expansion port 1814 and the storage device 1806. Each of the processor 1802, the memory 1804, the storage device 1806, the high-speed interface 1808, the high-speed expansion port 1810, and the low-speed interface 1812 are interconnected using various buses and may be mounted on a common motherboard or in other manners as needed. The processor 1802 may process instructions for execution within the computing device 1800, including instructions stored in the memory 1804 or on the storage device 1806, and may display graphical information for a GUI on an external input / output device, such as a display 1816 coupled to the high-speed interface 1808. In other implementations, multiple processors and / or multiple buses may be used, along with multiple memories and types of memory, as appropriate, and multiple computing devices may be connected (e.g., as a bank of servers, as a collection of blade servers, or as a multiprocessor system) with each computing device providing a portion of the required operations.

[0196] The memory 1804 stores information within the computing device 1800. In some implementations, the memory 1804 is one or more volatile memory units. In some implementations, the memory 1804 is one or more non-volatile memory units. The memory 1804 may be another form of computer-readable medium, such as a magnetic disk or an optical disk.

[0197] The storage device 1806 can provide mass storage for the computing device 1800. In some implementations, the storage device 1806 can be or include a computer-readable medium, such as a floppy disk drive, a hard disk drive, an optical disk drive, a tape drive, a flash memory, or other similar solid-state memory device, or an arrangement of devices, including a storage area network or other form of device. The computer program product can be tangibly embodied in an information carrier. The computer program product can also include instructions that, when executed, perform one or more methods, such as the methods described above. The computer program product can also be tangibly embodied in a computer-readable or machine-readable medium, such as the memory 1804, the storage device 1806, or a memory on the processor 1802.

[0198] The high-speed interface 1808 manages bandwidth-intensive operations for the computing device 1800, and the low-speed interface 1812 manages lower bandwidth-intensive operations. This allocation of functionality is merely exemplary. In some implementations, the high-speed interface 1808 is coupled to the memory 1804, the display 1816 (e.g., via a graphics processor or accelerator), and a high-speed expansion port 1810 that can accept various expansion cards (not shown). In such implementations, the low-speed interface 1812 is coupled to the storage device 1806 and the low-speed expansion port 1814. The low-speed expansion port 1814 may include various communication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet) and may be coupled to one or more input / output devices, such as a keyboard, a pointing device, a scanner, or a network device, such as a switch or a router, for example, via a network adapter.

[0199] Computing device 1800 may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as a standard server 1820 or multiple times in a group of such servers. It may also be implemented in a personal computer, such as a laptop computer 1822. It may also be implemented as part of a rack server system 1824. Alternatively, components from computing device 1800 may be combined with other components in a mobile device (not shown), such as mobile computing device 1850. Each such device may include one or more of computing device 1800 and mobile computing device 1850, and the entire system may be made up of multiple computing devices in communication with each other.

[0200] The mobile computing device 1850 includes, among other things, a processor 1852, a memory 1864, input / output devices such as a display 1854, a communication interface 1866, and a transceiver 1868. The mobile computing device 1850 may also be provided with a storage device such as a microdrive or other device to provide additional storage. Each of the processor 1852, memory 1864, display 1854, communication interface 1866, and transceiver 1868 are interconnected using various buses, and some of the components may be mounted on a common motherboard or in other manners as desired.

[0201] The processor 1852 may execute instructions within the mobile computing device 1850, including instructions stored in the memory 1864. The processor 1852 may be implemented as a chipset of chips including separate analog and digital processors. The processor 1852 may provide for coordination of other components of the mobile computing device 1850, such as control of a user interface, applications run by the mobile computing device 1850, and wireless communication by the mobile computing device 1850.

[0202] The processor 1852 may communicate with a user via a control interface 1858 and a display interface 1856 coupled to a display 1854. The display 1854 may be, for example, a TFT display (thin film transistor liquid crystal display), an OLED (organic light emitting diode) display, or other suitable display technology. The display interface 1856 may have appropriate circuitry for driving the display 1854 to present graphical and other information to the user. The control interface 1858 may receive commands from the user and convert them for presentation to the processor 1852. Additionally, an external interface 1862 may provide communication with the processor 1852 to enable short-range communication with other devices of the mobile computing device 1850. The external interface 1862 may provide, for example, wired communication in some implementations or wireless communication in other implementations, and multiple interfaces may be used.

[0203] The memory 1864 stores information within the mobile computing device 1850. The memory 1864 may be implemented as one or more computer-readable media, one or more volatile memory units, or one or more non-volatile memory units. An expansion memory 1874 may also be provided and connected to the mobile computing device 1850 via an expansion interface 1872, which may include, for example, a SIMM (single in-line memory module) card interface. The expansion memory 1874 may provide additional storage space for the mobile computing device 1850 or may store applications or other information for the mobile computing device 1850. In particular, the expansion memory 1874 may include instructions for performing or supplementing the aforementioned processes and may also include security information. Thus, for example, the expansion memory 1874 may be provided as a security module for the mobile computing device 1850 and may be programmed with instructions that allow for secure use of the mobile computing device 1850. Additionally, secure applications may be provided via SIMM cards with additional information, such as placing identifying information on the SIMM card in a manner that cannot be hacked.

[0204] The memory may include, for example, flash memory and / or NVRAM memory (non-volatile random access memory), as described below. In some implementations, a computer program product is tangibly embodied in an information carrier. The computer program product includes instructions that, when executed, perform one or more methods, such as the methods described above. The computer program product may be a computer-readable or machine-readable medium, such as memory 1864, expansion memory 1874, or memory on processor 1852. In some implementations, the computer program product may be received in a propagated signal, for example, via transceiver 1868 or external interface 1862.

[0205] The mobile computing device 1850 may communicate wirelessly via a communication interface 1866, which may include digital signal processing circuitry, if desired, and may provide communications under various modes or protocols, such as GSM voice (Global System for Mobile Communications), SMS (Short Message Service), EMS (Enhanced Messaging Service), MMS messaging (Multimedia Messaging Service), CDMA (Code Division Multiple Access), TDMA (Time Division Multiple Access), PDC (Personal Digital Cellular), WCDMA (Wideband Code Division Multiple Access), CDMA2000, or GPRS (General Packet Radio Service), among others. Such communications may occur via the transceiver 1868, for example, using radio frequencies. Additionally, short-range communications may occur, such as using Bluetooth, WiFi, or other such transceivers (not shown). Additionally, a GPS (Global Positioning System) receiving module 1870 may provide additional navigation and location related wireless data to the mobile computing device 1850. It may be suitably used by applications running on the mobile computing device 1850 .

[0206] The mobile computing device 1850 may also communicate audibly using an audio codec 1860. The audio codec 1860 may receive spoken information from a user and convert it into usable digital information. Similarly, the audio codec 1860 may generate sounds audible to the user, such as through a speaker in a handset of the mobile computing device 1850. Such sounds may include sounds from voice calls, recorded sounds (e.g., voice messages, music files, etc.), and may also include sounds generated by applications running on the mobile computing device 1850.

[0207] The mobile computing device 1850 may be implemented in a number of different forms, as shown in the figure, for example, as a mobile phone 1880, or as part of a smartphone 1882, personal digital assistant, or other similar mobile device.

[0208] Various implementations of the systems and techniques described herein may be realized in digital electronic circuitry, integrated circuits, specially designed ASICs (application-specific integrated circuits), computer hardware, firmware, software, and / or combinations thereof. These various implementations may include implementations in one or more computer programs executable and / or interpretable on a programmable system that includes at least one programmable processor, which may be coupled to receive data and instructions from, and transmit data and instructions to, a storage system, at least one input device, and at least one output device, for a special purpose or general purpose.

[0209] These computer programs (also referred to as programs, software, software applications, or code) include machine instructions for a programmable processor and may be implemented in a high level procedural and / or object-oriented programming language and / or in assembly / machine language. As used herein, the terms machine-readable medium and computer-readable medium refer to any computer program product, apparatus, and / or device (e.g., magnetic disks, optical disks, memory, programmable logic devices (PLDs)) used to provide machine instructions and / or data to a programmable processor. This includes machine-readable media that receive machine instructions as a machine-readable signal. The term machine-readable signal refers to any signal used to provide machine instructions and / or data to a programmable processor.

[0210] To provide interaction with a user, the systems and techniques described herein may be implemented on a computer that has a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user, and a keyboard and pointing device (e.g., a mouse or trackball) by which the user can provide input to the computer. Other types of devices may also be used to provide interaction with a user. For example, feedback provided to the user may be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback). Input from the user may be received in any form, including acoustic, speech, or tactile input.

[0211] The systems and techniques described herein may be implemented within a computing system that includes back-end components (e.g., a data server), or includes middleware components (e.g., an application server), or includes front-end components (e.g., a client computer with a graphical user interface or web browser through which a user can interact with an implementation of the systems and techniques described herein), or includes any combination of such back-end, middleware, and / or front-end components. The components of the system may be interconnected by any form or medium of digital data communication (e.g., a communications network). Examples of communications networks include a local area network (LAN), a wide area network (WAN), and the Internet.

[0212] A computing system may include clients and servers. Clients and servers are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.

[0213] FIG. 19 is a schematic diagram of a system 1900 with a bed used to passively monitor blood pressure. In the system 1900, one or more sensors integrated into or used in combination with the bed are used to collect ballistocardiogram (BCG) data from at least two parts of a user's body. The user may be, but is not necessarily, asleep while lying on the bed. For example, the user may be lying on the bed to check BP (blood pressure) and may be reading while lying on the bed, and the system 1900 can still passively monitor the user's blood pressure.

[0214] The bed 1902 is illustrated as a single-person bed that may be used by a single sleeper or may be used in a hospital or sleep lab. However, it is understood that other bed arrangements may be used, including a bed intended for two users, or a bed intended for one user but large enough for two sleepers. Various sensors, such as sensors in the bed, sensors around the bed in the environment, sensors worn by the user, etc., collect BCG data from at least two regions of the user's body. The details of these sensors may vary depending on available hardware and other considerations. For example, a bed setup intended for one user may use sensors on all four legs of the bed to generate BCG data for that user, while another bed with four legs may use two legs for one user and another two legs for another user. Still other beds may not have legs and other types of sensors may be used. At least one sensor is in or associated with the bed, while one or more other sensors may be separate from the bed.

[0215] In the illustrated example, a first BCG sensor 1904 is configured to collect first BCG data from a first position of the user lying on the bed due to pressure applied by the user to the bed and other pressures such as bedding, pillows, etc. In this case, the first BCG sensor 1904 is a pressure sensor 1904 integrated into the mattress of the bed 1900 in fluid communication with an air bladder or the like in or under the mattress, such that cardiac activity in the core (e.g., torso) of the user's body can be measured by the pressure sensor 1904. Other types of sensors can also be used to collect first BCG data due to pressure applied by the user to the bed. For example, a load sensor or other type of sensor can be used to collect the first pressure data.

[0216] In the illustrated example, a second BCG sensor 1906 is configured to collect BCG data from a second position on the user. In this case, the second BCG sensor 1906 is a load cell that measures the load through the legs of the bed due to pressure applied to the bed by the user and other loads such as mattress, bed frame, bedding, pillows, etc. In this case, the second BCG sensor 1906 is integrated into the bed, although this is not necessary for other second BCG sensors.

[0217] As can be seen, the pressure sensors 1904 and 1906 measure the user's movement differentially based on where the pressure is applied on the bed. Pressure applied directly to the center of the mattress may be measured as higher than the pressure collected by the load sensor 1906 as it is distributed to the four legs. Similarly, the location of the pressure affects the relative readings. Pressure near the corners of the bed above the load cell 1906 will have a higher agreement between the load cell 1906 and the pressure sensor 1904, while pressures further away will have a lower agreement. In this manner, the location of the pressure may be determined by two or more sensors. Thus, the location of the pressure wave in the user's circulatory system may be tracked as it travels from the heart to the right foot.

[0218] More or different BCG sensors may be used. For example, load cells 1908-1912 may be used in combination with load cells 1904, 1906 to provide five BCG data streams. These may be combined to find the user's BP with greater accuracy, redundancy, or precision (e.g., to ensure sufficient data sources to perform a full triangulation - as will be appreciated, a full triangulation in 3D space uses at least four sensors).

[0219] Other types of sensors capable of collecting BCG data may be used. For example, one or more wearable devices 1914 may include a photoplethysmography (PPG) sensor capable of measuring cardiac activity at a given fixed location on the user's body, such as the wrist in the case of a watch, the torso in the case of a chest strap, the head in the case of a head-mounted electroencephalogram EEG sensor (including general or medical EEG sensors), or the finger in the case of a ring or pulse oximeter sensor. One or more cameras 1916 may collect energy emissions of the user's skin, which are affected by the movement of blood under the skin. In some cases, these cameras 1916 may be used with an object tracking process to identify specific locations on the user's body, such as the neck or forehead, that are less likely to be blocked by bedding or clothing. The cameras 1916 may capture visible light and / or invisible energy, such as thermal energy generated by the user or reflected energy, such as a LIDAR or RADAR sensor.

[0220] A computer system having a processor and memory may be used to receive BCG data from the sensors, process the data from the sensors, and generate a BP value for the user. In this example, a bed controller 1918 collects raw pressure data from the sensors 1904-1912 and performs pre-processing operations such as checking data integrity, compressing or sampling the data, and marshaling the data into a serialized data object for transmission over a network such as the Internet 1920. A remote server 1910 may receive data from the bed controller 1918 and determine one or more BP values ​​from the data. A user device 1924 may obtain the BP value from the server 1922 and display the BP value. However, other configurations are possible. For example, the bed controller 1918 may determine the BP value and report the BP value to the remote server 1922 and / or the user device 1924. In another example, the user device 1924 may receive sensor values ​​directly from the sensors 1904-1912 and determine the BP value.

[0221] 20 shows the elements of a pressure signal used to determine pulse transit time. In this example, raw pressure signals 1, 2 are shown in window 2002. A computer system 2004 may access these signals (e.g., streams of binary data) and generate therefrom BCG signals 1, 2 (e.g., streams of binary data) shown in window 2006. Although only two pressure and BCG signals are shown, it will be appreciated that in other examples different numbers (e.g., five with four load cells and a median pressure value) or types (e.g., from different sensors such as cameras) may be used.

[0222] One or more PTT values ​​can be determined by the computer system 2004. For example, the computer system 2004 can identify spikes in the BCG1 signal (e.g., local maxima preceded and followed by rates of change greater than a given threshold) based on the consistency of mathematical or logical tests. Subsequent features of the BCG2 signal can then be found and the time differences recorded. In this example, the PTT f was found at the trough of the BCG2 signal, and PTT p is found at the peak of the BCG2 signal. Either one, both, a combination, or other similar PTT times can be used by the computer system 2004 to determine BP, as described elsewhere herein.

[0223] 21 is a swim lane diagram of an example process 2100 for determining blood pressure values. For clarity, the process 2100 is described with reference to specific components: sensors 2102, 2104, a computer system 2106, a user output device 2108, and an automation controller 2110, although other systems or systems may be used to perform the same or similar processes.

[0224] A first sensor 2102 collects first BCG data 2112 and transmits the first BCG data to the computer system 2106. A second sensor 2104 collects second BCG data 2114 and transmits the second BCG data to the computer system 2106. For example, the first sensor 2102 may sense the pressure applied to the air bladder of the user's bed and transmit the pressure data to the computer system, while the second sensor 2104 and three other load cells may each sense the load transmitted through the legs of the bed and transmit the pressure data to the computer system.

[0225] The computer system 2106 receives 2116 the first BCG data and the second BCG data. For example, a bed controller of the computer system 2106 may collect the first BCG data and the second BCG data and transmit the collected data to a remote server.

[0226] The computer system 2106 determines one or more blood pressure (BP) values ​​of the user 2118. For example, a remote server of the computer system 2106 may process the first BCG data and the second BCG data to generate a BP value with an associated timestamp for the user. An exemplary process of determination is described elsewhere herein.

[0227] The computer system 2106 stores the BP values ​​in memory 2106. For example, the computer system 2106 may log the BP values ​​indexed by timestamps, and the computer system 2106 may respond to queries requesting BP values ​​for use within a particular time window, other queries related to time, or other queries unrelated to time.

[0228] The user output device 2108 generates an alert for output to the user output device 2108. For example, the computer system 2106 may maintain a rule set that defines dangerous BP ranges for all users, a particular user, or a class of users (e.g., a group defined by demographic information, disease or risk factor designation, user opt-in, etc.). When a BP value is detected in an unsafe range (e.g., above or below a given threshold, above or below another threshold for a period of time, etc.), an alert may be generated and output by a user device, such as a mobile phone, a bedside health hub, or a nurse's console. In some cases, tiered risk bands are defined that define progressively greater risk, with different alerts set for each. For example, an elevated BP with chronic risk but no acute risk may be defined to generate an email, while a very low BP with acute risk may be defined to generate a loud alarm to wake the user up and take notice, or to generate an alert to a health care provider.

[0229] The automation controller 2110 acts on the automation devices 2124. For example, HVAC or environmental conditions may be changed by an HVAC or fan controller, and the temperature of the user's surrounding sleep environment may be changed based on the BP value being outside of an ideal or target range. In another example, a morning alarm system may wake the user at a time based on BP, and an earlier alarm may be enabled to give the user more gym time in the morning to work on managing high blood pressure. One type of particularly advantageous implementation involves directly adjusting the microclimate - the temperature around the skin of the user in bed. For example, heating elements of the bed and / or bedding may be activated to increase the temperature of the microclimate. It is believed that this may promote blood flow through vasodilation, lowering the user's BP while they sleep, reducing the risk of adverse health events.

[0230] 22 is a flow chart of an exemplary process 2200 for determining a blood pressure value. For example, the process 2200 may be performed by the computer system 2106 when determining the BP value 2118.

[0231] One or more PTTs are determined for the bed user (2202). The PTT defines the length of time between when a pressure wave in the circulatory system reaches one point and another. Various types of PTT metrics are possible, each of which defines a different test that is applied to two or more BCG data streams.

[0232] In some cases, more than two data streams are available. For example, in the case of a bed with an air bladder and legs with four load cells, the streams may be labeled BCG0 for the air bladder, BCG1, BCG2, BCG3, BCG4 for each of the four load cell streams. In this case, a combined PTT is calculated by combining the PTTs found for each combination of BCG0 with the other BCG streams (resulting in PTT1, PTT2, PTT3, PTT4). proxy In other words, one BCG stream can be treated as a central or base BCG and other BCG values ​​can be treated as peripheral BCG values ​​that can be combined. In some cases, this combination can be done using the PTT 1-4 This could be a simple arithmetic average of the PTTs, but other combinations are possible. For example, the highest and lowest PTTs could be omitted to avoid using momentary erroneous readings, which can occur if the sensor is damaged and only the maximum and minimum values ​​are returned.

[0233] The PTT or PTTs used are provided as input to the BP classifier 2204. The classifier may take the form of a software object that includes a function that processes the input according to a model stored in a computer memory. The model may logically and mathematically correlate the input PTT value with the corresponding BP value. In many cases (but not all), these models may be generated from an analytical and / or computer learning process created using training data of example PTT and BP values ​​collected with another sensing modality. For example, training data may be created while a user lies on a bed with a BCG sensor and BP is collected using a cuff worn on the arm. Using timestamp data, events in the BCG as defined by the PTT may be paired with the contemporaneous BP reading. This training data may then be used to generate the model or models used by the classifier.

[0234] A variety of different types of models can be used, either alone or in combination with each other. In some cases, the BP classifier is trained on a linear model that finds a match between training PTT values ​​and training BP values. For example, the aforementioned PTT 1-4 In the example of , a linear model of the following form may be used:

[0235] BP=k0+k1*PTT1+k2*PTT2+k3*PTT3+k4*PTT4

[0236] A process such as linear regression is then used to find the value k that minimizes the difference between the predicted BP value from the equation and a given PTT value and the actual measured BP value associated with that PTT value. 0-4 can be used to find

[0237] In some cases, the BP classifier is trained using a polynomial model, such as quadratic or cubic regression, that finds the fit between training PTT values ​​and training BP values. For example, the aforementioned PTT 1-4In the example, a quadratic model of the following form may be used:

[0238] JPEG2025503487000002.jpg24102

[0239] A process such as quadratic regression is then used to find the value k that minimizes the difference between the predicted BP value from the equation and a given PTT value and the actual measured BP value associated with that PTT value. 0-6 can be used to find

[0240] In some cases, a process such as boosted decision tree regression may be used to find the relationship between the training BP values ​​and the training PTT values ​​(or other training data). In some implementations, the PTT values ​​are used as a feature vector that is processed by a regression tree to estimate the BP values. An example of a boosted decision tree analysis uses a maximum depth of 10, a learning rate of 0.05, an estimator of 500, L2 regularization set to a value of 1, and LI regularization set to a value of 0, although other configurations may be used. One advantage of using boosted decision trees is that the importance of each feature in the feature vector may be determined by analyzing the relative frequency of use of each feature in the branches of the boosted decision tree. More common (high frequency) use indicates higher importance in the analysis or classifier. This may be useful, for example, when computational resources are insufficient for complete data capture and more important features may be prioritized in the sensing, transmission and storage operations of the system.

[0241] In some cases, the BP classifier is trained using a machine learning process that performs operations to generate a data structure that generates predicted BP values ​​for a given input PTT value. One example of such a data structure is a neural network, such as a convolutional neural network, that defines nodes organized in layers and finds weight values ​​to assign to edges between nodes of adjacent layers.

[0242] The classifier returns a BP value and the user's BP value is received as output (2206). This output may include or be annotated with relevant metadata such as the timestamp of the calculation, the timestamp of the peak identified in PTT0, etc. Such metadata may include the version number of the classifier, the PTT used to derive the old BP value, etc. 1-4 may be updated, for example, as new versions of the classifier are developed.

[0243] 23 is a flow chart of an example process 2300 for determining an indicator of risk based on blood pressure values. The process 2300 can be used, for example, after BP is determined (2118), after BP values ​​are stored (2120), and / or to generate an alert (2122).

[0244] It is believed that a comparison of nighttime BP with morning BP may be used as an indicator of risk for, for example, cardiovascular disease (CVD). This process describes how nighttime BP and morning BP may be compared, but it will be understood that variations are possible. For example, this process describes the use of nighttime BP for the first sleep stage of a sleep session, but nighttime BP for the entire sleep session or another portion of the sleep session may also be used.

[0245] A time window for a particular sleep stage of a sleep session of a user asleep in bed is identified (2302). For example, when the user gets into bed, the user's biometric characteristics may be monitored for sleep onset. The following 90 minutes from sleep onset may then be identified as the time frame for the initial sleep session, based on the understanding that 90 minutes is a common useful approximation of a sleep stage for most users. However, sleep stages may also be determined from collected biometric information such as breathing and cardiac activity.

[0246] A representative BP for a sleep stage is identified based on one or more BP values ​​for the user that fall within the time window 2304. For example, multiple BP values ​​may be combined and filtered to find a particular BP value or a particular proxy BP value that fits a particular definition. In some cases, a minimum or near-minimum value may be found to identify the user's lowest BP in a sleep stage.

[0247] One process for finding such a representative BP is to select the Nth lowest (e.g., the 10th lowest) BP value within the time window to represent the low BP value of the sleep stage. One process for finding such a representative BP is to select the Nth lowest percentile BP value (e.g., the 10th lowest percentile) within the time window to represent the low BP value of the sleep stage. Using these types of processes, outliers that are not accurate readings due to, for example, sensor failure or abnormal user movements, can be filtered out.

[0248] The user's instantaneous BP value obtained after the sleep session is received 2306. For example, the user may be instructed to wake up after the sleep session, perform a morning grooming routine, and measure their BP when they feel awake.

[0249] To generate this instantaneous BP value, the user may use a different source, such as an inflatable cuff or other device, than the bed the user slept in. In some cases, the user may return to bed to generate the instantaneous BP value. As previously mentioned, the techniques described herein do not require the user to sleep in order for the BP value to be determined.

[0250] The sleep stage low BP value is compared 2308 with the instantaneous BP value to determine the user's BP dip value, which represents the amount of BP dip the user exhibits during the sleep session. It is believed that the dip often occurs during the first part of sleep, such as the first two sleep cycles, which may be within 4 hours of falling asleep. The dip may be a measure of the difference between the BP value during sleep and the BP value upon awakening. It is believed that the dip may be used as an indicator of risk to the user. For example, above a given threshold (e.g., 20%), the risk of ischemic stroke or silent brain disease increases, while a dip or reverse dip below another threshold (e.g., 10%) increases the risk of death, myocardial infarction, or stroke.

[0251] In response to determining the BP decrease value, as described in process 2200, actions may be performed using the BP decrease value, such as storing the BP decrease value in memory, generating an alert for output to a user output device, initiating an automated device, etc.

[0252] Figure 24 shows two examples of BCGs captured and plotted against a directly measured ECG, which can be used, for example, as training data to create one or more models.

[0253] In another embodiment, a generic model that estimates BP values ​​from PTT values ​​is trained using a large dataset containing ground truth data from multiple individuals. The generic model is then personalized using small calibration data (e.g., a one-minute calibration sequence using known BP values ​​from a cuff-based device and PTT values ​​extracted from a bed). Such personalization can be easily achieved using a decision tree type model, since this type of model can be adjusted to fit new training data. This process is known as "transfer learning".

Claims

1. 1. A system comprising: A bed and a first ballistocardiogram (BCG) sensor; a second ballistocardiogram (BCG) sensor; and a computer system having a processor and a memory; Equipped with the bed having a mattress for supporting a user lying on the bed; the first BCG sensor is configured to collect first BCG data from a first position of the user lying on the bed due to pressure applied to the bed by the user; the second BCG sensor is configured to collect second BCG data from a second location of the user; The computer system includes: receiving the first BCG data and the second BCG data; Determining one or more blood pressure (BP) values ​​of the user It is configured as follows: A system characterized by:

2. The first BCG sensor is a pressure sensor configured to sense pressure readings applied to the bed by the user due to the user's weight and movement.

2. The system of claim 1 .

3. The first BCG sensor is one of the group consisting of a pressure transducer and a load cell.

3. The system of claim 2.

4. The second BCG sensor is a system having one or more load cells configured to sense a load applied by the user to a support member of the bed due to the user's weight and movement.

2. The system of claim 1 .

5. The second BCG sensor is a device worn by the user at a specific location on the user's body.

2. The system of claim 1 .

6. the second BCG sensor is a camera configured to sense energy emissions of the user's skin; The energy emission is one of the group consisting of visible light and non-visible energy.

2. The system of claim 1 .

7. the first BCG sensor is a pressure sensor configured to sense pressure readings applied to the bed by the user due to the user's weight and movement; the first BCG sensor is one of the group consisting of a pressure transducer and a load cell; The second BCG sensor is a system having one or more load cells configured to sense a load applied by the user to a support member of the bed due to the user's weight and movement.

2. The system of claim 1 .

8. To determine one or more BP values ​​for the user, the computer system comprises: determining a pulse transit time (PTT) of the user to identify a length of time between a pulse event in the first BCG data and a pulse event in the second BCG data representing a length of time between when the user's pulse reaches the first location and when the user's pulse reaches the second location; providing the PTT as an input to a BP classifier; receiving as an output the one or more BP values ​​of the user; It is configured as follows:

2. The system of claim 1 .

9. The BP classifier is i) a linear model that finds the fit between the training PTT values ​​and the training BP values; ii) a polynomial model that finds coefficients describing a function relating training PTT values ​​to training BP values; iii) a machine learning model that creates a data structure that is created by the machine learning process; and iv) a boosted decision tree regression model using training PTT values ​​as feature vectors; The model is trained using at least one model from the group consisting of 9. The system of claim 8.

10. The data structure is a convolutional neural network.

10. The system of claim 9.

11. The computer system further comprises: identifying time windows for particular sleep stages of a sleep session of the user asleep on the bed; Identifying a blood pressure (BP) representative of the sleep stage based on one or more BP values ​​of the user within the time window. It is configured as follows:

2. The system of claim 1 .

12. The representative BP is the Nth lowest BP value within the time window that represents a low BP value for the sleep stage. The system of claim 11 .

13. The representative BP is the Nth lowest percentile BP value The system of claim 11 .

14. The computer system further comprises: receiving a time-point blood pressure value of the user obtained after the sleep session; The lower BP value for the sleep stage is compared to the blood pressure value at the time to determine a BP drop value for the user representative of the amount of BP drop exhibited by the user during the sleep session. It is configured as follows: The system of claim 11 .

15. The computer system is further configured, in response to determining the BP reduction value, to use the BP reduction value to: storing said BP reduction value in said memory; generating an alert for output to a user output device; and Starting up automation devices, configured to execute at least one of the group consisting of 14. The system of claim 13.

16. The time window is between 0 hours and 4 hours after sleep onset. The system of claim 11 .

17. The computer system is further configured, in response to determining the BP value, to perform a calculation using the BP value: storing said BP value in said memory; generating an alert for output to a user output device; and Starting up automation devices, configured to execute at least one of the group consisting of 2. The system of claim 1 .

18. A generic model is trained from a large dataset that includes ground truth data from multiple individuals, A more accurate personalized model is derived from the generic model by transfer learning the generic model using a small calibration dataset from the subjects on whom the personalization process is performed.

2. The system of claim 1 .

19. one or more processors; a computer memory for storing instructions; A system comprising: The instructions, when executed by the one or more processors, cause the system to: i) receiving first BCG data from a first BCG sensor configured to collect first BCG data from a first position of a user lying on a bed due to pressure applied to the bed by the user; and ii) receiving second BCG data from a second BCG sensor configured to collect second BCG data from a second position of the user; Determining one or more BP values ​​for said user. Execute an action that includes A system characterized by:

20. i) receiving first BCG data from a first BCG sensor configured to collect first BCG data from a first position of a user lying on a bed due to pressure applied to the bed by the user, and ii) receiving second BCG data from a second BCG sensor configured to collect second BCG data from a second position of the user; determining one or more BP values ​​for the user; A method comprising:

Citation Information

Cited By

  • Bed Sensor System

    KR102998448B1