Abstract:
A method may comprise receiving, at a central controller, a command, from a remote control, to adjust a feature of a first component of an air mattress framework; relaying, from the central controller, the command to the first component; receiving from the first component at the central controller, an indication of the success of the command; and relaying the indication from the central controller to the remote control.

Description:
CROSS-REFERENCES 
       [0001]    This Application claims the benefit of priority to U.S. Provisional Application No. 61/781,503, filed on Mar. 14, 2013, the disclosure of which is incorporated herein in its entirety by reference. 
         [0002]    The subject matter described in this application is related to subject matter disclosed in the following applications: U.S. application Ser. No. 61/781,266 (Attorney Docket No. 3500.049PRV), filed on Mar. 14, 2013, entitled “INFLATABLE AIR MATTRESS ALARM AND MONITORING SYSTEM”; U.S. application Ser. No. 61/781,541 (Attorney Docket No. 3500.051PRV), filed on Mar. 14, 2013, entitled “INFLATABLE AIR MATTRESS AUTOFILL AND OFF BED PRESSURE ADJUSTMENT”; U.S. application Ser. No. 61/781,571 (Attorney Docket No. 3500.052PRV), filed on Mar. 14, 2013, entitled “INFLATABLE AIR MATTRESS SLEEP ENVIRONMENT ADJUSTMENT AND SUGGESTIONS”; U.S. application Ser. No. 61/782,394 (Attorney Docket No. 3500.053PRV), filed on Mar. 14, 2013, entitled “INFLATABLE AIR MATTRESS SNORING DETECTION AND RESPONSE”; U.S. application Ser. No. 61/781,296 (Attorney Docket No. 3500.054PRV), filed on Mar. 14, 2013, entitled “INFLATABLE AIR MATTRESS WITH LIGHT AND VOICE CONTROLS”; U.S. application Ser. No. 61/781,311 (Attorney Docket No. 3500.055PRV), filed on Mar. 14, 2013, entitled “INFLATABLE AIR MATTRESS SYSTEM WITH DETECTION TECHNIQUES.” The contents of each of the above-references U.S. patent applications are herein incorporated by reference in their entirety. 
     
    
     TECHNICAL FIELD 
       [0003]    This patent document pertains generally to network systems and more particularly, but not by way of limitation, to an inflatable air mattress system architecture. 
       BACKGROUND 
       [0004]    In various examples, an air mattress control system allows a user to adjust the firmness or position of an air mattress bed. The mattress may have more than one zone thereby allowing a left and right side of the mattress to be adjusted to different firmness levels. Additionally, the bed may be adjustable to different positions. For example, the head section of the bed may be raised up while the foot section of the bed stays in place. In various examples, two separate remote controls are used to adjust the position and firmness, respectively. 
     
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
         [0005]    Some embodiments are illustrated by way of example and not limitation in the figures of the accompanying drawings in which: 
           [0006]      FIG. 1  is a diagrammatic representation of an air bed system, according to an example. 
           [0007]      FIG. 2  is a block diagram of various components of the air bed system of  FIG. 1 , according to an example. 
           [0008]      FIG. 3  is a block diagram of an air bed system architecture, according to an example. 
           [0009]      FIG. 4  is a block diagram of machine in the example form of a computer system within which a set instructions, for causing the machine to perform any one or more of the methodologies discussed herein, may be executed. 
       
    
    
     DETAILED DESCRIPTION 
       [0010]      FIG. 1  is a diagrammatic representation of air bed system  10  in an example embodiment. System  10  may include bed  12 , which may comprise at least one air chamber  14  surrounded by a resilient border  16  and encapsulated by bed ticking  18 . The resilient border  16  may comprise any suitable material, such as foam. 
         [0011]    As illustrated in  FIG. 1 , bed  12  may be a two chamber design having a first air chamber  14 A and a second air chamber  14 B. First and second air chambers  14 A and  14 B may be in fluid communication with pump  20 . Pump  20  may be in electrical communication with a remote control  22  via control box  24 . Remote control  22  may communicate via wired or wireless means with control box  24 . Control box  24  may be configured to operate pump  20  to cause increases and decreases in the fluid pressure of first and second air chambers  14 A and  14 B based upon commands input by a user through remote control  22 . Remote control  22  may include display  26 , output selecting means  28 , pressure increase button  29 , and pressure decrease button  30 . Output selecting means  28  may allow the user to switch the pump output between the first and second air chambers  14 A and  14 B, thus enabling control of multiple air chambers with a single remote control  22 . For example, output selecting means may by a physical control (e.g., switch or button) or an input control displayed on display  26 . Alternatively, separate remote control units may be provided for each air chamber and may each include the ability to control multiple air chambers. Pressure increase and decrease buttons  29  and  30  may allow a user to increase or decrease the pressure, respectively, in the air chamber selected with the output selecting means  28 . Adjusting the pressure within the selected air chamber may cause a corresponding adjustment to the firmness of the air chamber. 
         [0012]      FIG. 2  is a block diagram detailing data communication between certain components of air bed system  10  according to various examples. As shown in  FIG. 2 , control box  24  may include power supply  34 , processor  36 , memory  37 , switching means  38 , and analog to digital (A/D) converter  40 . Switching means  38  may be, for example, a relay or a solid state switch. Switching means  38  may be located in the pump  20  rather than the control box  24 . 
         [0013]    Pump  20  and remote control  22  may be in two-way communication with the control box  24 . Pump  20  may include a motor  42 , a pump manifold  43 , a relief valve  44 , a first control valve  45 A, a second control valve  45 B, and a pressure transducer  46 , and may be fluidly connected with the first air chamber  14 A and the second air chamber  14 B via a first tube  48 A and a second tube  48 B, respectively. First and second control valves  45 A and  45 B may be controlled by switching means  38 , and may be operable to regulate the flow of fluid between pump  20  and first and second air chambers  14 A and  14 B, respectively. 
         [0014]    In an example, pump  20  and control box  24  may be provided and packaged as a single unit. Alternatively, pump  20  and control box  24  may be provided as physically separate units. 
         [0015]    In operation, power supply  34  may receive power, such as 110 VAC power, from an external source and may convert the power to various forms required by certain components of the air bed system  10 . Processor  36  may be used to control various logic sequences associated with operation of the air bed system  10 , as will be discussed in further detail below. 
         [0016]    The example of the air bed system  10  shown in  FIG. 2  contemplates two air chambers  14 A and  14 B and a single pump  20 . However, other examples may include an air bed system having two or more air chambers and one or more pumps incorporated into the air bed system to control the air chambers. In an example, a separate pump may be associated with each air chamber of the air bed system or a pump may be associated with multiple chambers of the air bed system. Separate pumps may allow each air chamber to be inflated or deflated independently and simultaneously. Furthermore, additional pressure transducers may also be incorporated into the air bed system such that, for example, a separate pressure transducer may be associated with each air chamber. 
         [0017]    In the event that the processor  36  sends a decrease pressure command to one of air chambers  14 A or  14 B, switching means  38  may be used to convert the low voltage command signals sent by processor  36  to higher operating voltages sufficient to operate relief valve  44  of pump  20  and open control valves  45 A or  45 B. Opening relief valve  44  may allow air to escape from air chamber  14 A or  14 B through the respective air tube  48 A or  48 B. During deflation, pressure transducer  46  may send pressure readings to processor  36  via the A/D converter  40 . The A/D converter  40  may receive analog information from pressure transducer  46  and may convert the analog information to digital information useable by processor  36 . Processor  36  may send the digital signal to remote control  22  to update display  26  on the remote control in order to convey the pressure information to the user. 
         [0018]    In the event that processor  36  sends an increase pressure command, pump motor  42  may be energized, sending air to the designated air chamber through air tube  48 A or  48 B via electronically operating corresponding valve  45 A or  45 B. While air is being delivered to the designated air chamber in order to increase the firmness of the chamber, pressure transducer  46  may sense pressure within pump manifold  43 . Again, pressure transducer  46  may send pressure readings to processor  36  via A/D converter  40 . Processor  36  may use the information received from A/D converter  40  to determine the difference between the actual pressure in air chamber  14 A or  14 B and the desired pressure. Processor  36  may send the digital signal to remote control  22  to update display  26  on the remote control in order to convey the pressure information to the user. 
         [0019]    Generally speaking, during an inflation or deflation process, the pressure sensed within pump manifold  43  provides an approximation of the pressure within the air chamber. An example method of obtaining a pump manifold pressure reading that is substantially equivalent to the actual pressure within an air chamber is to turn off pump  20 , allow the pressure within the air chamber  14 A or  14 B and pump manifold  43  to equalize, and then sense the pressure within pump manifold  43  with pressure transducer  46 . Thus, providing a sufficient amount of time to allow the pressures within pump manifold  43  and chamber  14 A or  14 B to equalize may result in pressure readings that are accurate approximations of the actual pressure within air chamber  14 A or  14 B. In various examples, the pressure of  48 A/B is continuously monitored using multiple pressure sensors. 
         [0020]    In an example, another method of obtaining a pump manifold pressure reading that is substantially equivalent to the actual pressure within an air chamber is through the use of a pressure adjustment algorithm. In general, the method may function by approximating the air chamber pressure based upon a mathematical relationship between the air chamber pressure and the pressure measured within pump manifold  43  (during both an inflation cycle and a deflation cycle), thereby eliminating the need to turn off pump  20  in order to obtain a substantially accurate approximation of the air chamber pressure. As a result, a desired pressure setpoint within air chamber  14 A or  14 B may be achieved without the need for turning pump  20  off to allow the pressures to equalize. The latter method of approximating an air chamber pressure using mathematical relationships between the air chamber pressure and the pump manifold pressure is described in detail in U.S. application Ser. No. 12/936,084, the entirety of which is incorporated herein by reference. 
         [0021]      FIG. 3  is illustrates an example air bed system architecture  300 . Architecture  300  includes bed  301 , central controller  302 , firmness controller  304 , articulation controller  306 , temperature controller  308 , external network device  310 , remote controllers  312 ,  314 , and voice controller  316 . While described as using an air bed, the system architecture may also be used with other types of beds. 
         [0022]    As illustrated in  FIG. 3 , network bed architecture  300  is configured as a star topology with central controller  302  and firmness controller  304  functioning as the hub and articulation controller  306 , temperature controller  308 , external network device  310 , remote controls  312 ,  314 , and voice controller  316  functioning as possible spokes, also referred to herein as components. Thus, in various examples, central controller  302  acts a relay between the various components. 
         [0023]    In other examples, different topologies may be used. For example, the components and central controller  302  may be configured as a mesh network in which each component may communicate with one or all of the other components directly, bypassing central controller  302 . In various examples, a combination of topologies may be used. For example, remote controller  312  may communicate directly to temperature controller  308  but also relay the communication to central controller  302 . 
         [0024]    In yet another example, central controller  302  listens to communications (e.g., control signals) between components even if the communication is not being relayed through central controller  302 . For example, consider a user sending a command using remote  312  to temperature controller  308 . Central controller  302  may listen for the command and check to determine if instructions are stored at central controller  302  to override the command (e.g., it conflicts with a previous setting). Central controller  302  may also log the command for future use (e.g., determining a pattern of user preferences for the components). 
         [0025]    In various examples, the controllers and devices illustrated in  FIG. 3  may each include a processor, a storage device, and a network interface. The processor may be a general purpose central processing unit (CPU) or application-specific integrated circuit (ASIC). The storage device may include volatile or non-volatile static storage (e.g., Flash memory, RAM, EPROM, etc.). The storage device may store instructions which, when executed by the processor, configure the processor to perform the functionality described herein. For example, a processor of firmness control  304  may be configured to send a command to a relief valve to decrease the pressure in a bed. 
         [0026]    In various examples, the network interface of the components may be configured to transmit and receive communications in a variety of wired and wireless protocols. For example, the network interface may be configured to use the 802.11 standards (e.g., 802.11a/b/c/g/n/ac), PAN network standards such as 802.15.4 or Bluetooth, infrared, cellular standards (e.g., 3G/4G etc.), Ethernet, and USB for receiving and transmitting data. The previous list is not intended to exhaustive and other protocols may be used. Not all components of  FIG. 3  need to be configured to use the same protocols. For example, remote control  312  may communicate with central controller  302  via Bluetooth while temperature controller  308  and articulation controller  306  are connected to central controller using 802.15.4. Within  FIG. 3 , the lightning connectors represent wireless connections and the solid lines represent wired connections, however, the connections between the components is not limited to such connections and each connection may be wired or wireless. 
         [0027]    Moreover, in various examples, the processor, storage device, and network interface of a component may be located in different locations than various elements used to effect a command. For example, as in  FIG. 1 , firmness controller  302  may have a pump that is housed in a separate enclosure than the processor used to control the pump. Similar separation of elements may be employed for the other controllers and devices in  FIG. 3 . 
         [0028]    In various examples, firmness controller  304  is configured to regulate pressure in an air mattress. For example, firmness controller  304  may include a pump such as described with reference to  FIG. 2  (see e.g., pump  20 ). Thus, in an example, firmness controller  304  may respond to commands to increase or decrease pressure in the air mattress. The commands may be received from another component or based on stored application instruction that are part of firmness controller  304 . 
         [0029]    As illustrated in  FIG. 3  central controller  302  includes firmness controller  304 . Thus, in an example, the processor of central controller  302  and firmness control  304  may be the same processor. Furthermore, the pump may also be part of central controller  302 . Accordingly, central controller  302  may be responsible for pressure regulation as well as other functionality as described in further portions of this disclosure. 
         [0030]    In various examples, articulation controller  306  is configured to adjust the position of a bed (e.g., bed  301 ) by adjusting the foundation that supports the bed. In an example, separate positions may be set for two different beds (e.g., two twin beds placed next to each other). The foundation may include more than one zone that may be independently adjusted. Articulation control  306  may also be configured to provide different levels of massage to a person on the bed. 
         [0031]    In various examples, temperature controller  308  is configured to increase, decrease, or maintain the temperature of a user. For example, a pad may be placed on top of or be part of the air mattress. Air may be pushed through the pad and vented to cool off a user of the bed. Conversely, the pad may include a heating element that may be used to keep the user warm. In various examples, temperature controller  308  receives temperature readings from the pad. 
         [0032]    In various examples, additional controllers may communicate with central controller  302 . These controllers may include, but are not limited to, illumination controllers for turning on and off light elements placed on and around the bed and outlet controllers for controlling power to one or more power outlets. 
         [0033]    In various examples, external network device  310 , remote controllers  312 ,  314  and voice controller  316  may be used to input commands (e.g., from a user or remote system) to control one or more components of architecture  300 . The commands may be transmitted from one of the controllers  312 ,  314 , or  316  and received in central controller  302 . Central controller  302  may process the command to determine the appropriate component to route the received command. For example, each command sent via one of controllers  312 ,  314 , or  316  may include a header or other metadata that indicates which component the command is for. Central controller  302  may then transmit the command via central controller  302 &#39;s network interface to the appropriate component. 
         [0034]    For example, a user may input a desired temperature for the user&#39;s bed into remote control  312 . The desired temperature may be encapsulated in a command data structure that includes the temperature as well as identifies temperature controller  308  as the desired component to be controlled. The command data structure may then be transmitted via Bluetooth to central controller  302 . In various examples, the command data structure is encrypted before being transmitted. Central controller  302  may parse the command data structure and relay the command to temperature controller  308  using a PAN. Temperature controller  308  may be then configure its elements to increase or decrease the temperature of the pad depending on the temperature originally input into remote control  312 . 
         [0035]    In various examples, data may be transmitted from a component back to one or more of the remote controls. For example, the current temperature as determined by a sensor element of temperature controller  308 , the pressure of the bed, the current position of the foundation or other information may be transmitted to central controller  302 . Central controller  302  may then transmit the received information and transmit it to remote control  312  where it may be displayed to the user. 
         [0036]    In various examples, multiple types of devices may be used to input commands to control the components of architecture  300 . For example, remote control  312  may be a mobile device such as a smart phone or tablet computer running an application. Other examples of remote control  312  may include a dedicated device for interacting with the components described herein. In various examples, remote controls  312 / 314  include a display device for displaying an interface to a user. Remote control  312 / 314  may also include one or more input devices. Input devices may include, but are not limited to, keypads, touchscreen, gesture, motion and voice controls. 
         [0037]    Remote control  314  may be a single component remote configured to interact with one component of the mattress architecture. For example, remote control  314  may be configured to accept inputs to increase or decrease the air mattress pressure. Voice controller  316  may be configured to accept voice commands to control one or more components. In various examples, more than one of the remote controls  312 / 314  and voice controller  316  may be used. 
         [0038]    With respect to remote control  312 , the application may be configured to pair with one or more central controllers. For each central controller, data may be transmitted to the mobile device that includes a list of components linked with the central controller. For example, consider that remote control  312  is a mobile phone and that the application has been authenticated and paired with central controller  302 . Remote control  312  may transmit a discovery request to central controller  302  to inquiry about other components and available services. In response, central controller  302  may transmit a list of services that includes available functions for adjusting the firmness of the bed, position of the bed, and temperature of the bed. In various embodiments, the application may then display functions for increasing/decreasing pressure of the air mattress, adjusting positions of the bed, and adjusting temperature. If components are added/removed to the architecture under control of central controller  302 , an updated list may be transmitted to remote control  312  and the interface of the application may be adjusted accordingly. 
         [0039]    In various examples, central controller  302  is configured to analyze data collected by a pressure transducer (e.g., transducer  46  with respect to  FIG. 2 ) to determine various states of a person lying on the bed. For example, central controller  302  may determine the heart rate or respiration rate of a person lying in the bed. Additional processing may be done using the collected data to determine a possible sleep state of the person. For example, central controller  302  may determine when a person falls asleep and, while asleep, the various sleep states of the person. 
         [0040]    In various examples, external network device  310  includes a network interface to interact with an external server for processing and storage of data related to components in architecture  300 . For example, the determined sleep data as described above may be transmitted via a network (e.g., the Internet) from central controller  302  to external network device  310  for storage. In an example, the pressure transducer data may be transmitted to the external server for additional analysis. The external network device  310  may also analyze and filter the data before transmitting it to the external server. 
         [0041]    In an example, diagnostic data of the components may also be routed to external network device  310  for storage and diagnosis on the external server. For example, if temperature controller  308  detects an abnormal temperature reading (e.g., a drop in temperature over one minute that exceeds a set threshold) diagnostic data (sensor readings, current settings, etc.) may be wireless transmitted from temperature controller  308  to central controller  302 . Central controller  302  may then transmit this data via USB to external network device  310 . External device  310  may wirelessly transmit the information to an WLAN access point where it is routed to the external server for analysis. 
       EXAMPLE MACHINE ARCHITECTURE AND MACHINE-READABLE MEDIUM 
       [0042]      FIG. 4  is a block diagram of machine in the example form of a computer system  400  within which instructions, for causing the machine to perform any one or more of the methodologies discussed herein, may be executed. In alternative embodiments, the machine operates as a standalone device or may be connected (e.g., networked) to other machines. In a networked deployment, the machine may operate in the capacity of a server or a client machine in server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine may be a personal computer (PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), a cellular telephone, a web appliance, a network router, switch or bridge, or any machine capable of executing instructions (sequential or otherwise) that specify actions to be taken by that machine. Further, while only a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein. 
         [0043]    The example computer system  400  includes a processor  402  (e.g., a central processing unit (CPU), a graphics processing unit (GPU), ASIC or a combination), a main memory  404  and a static memory  406 , which communicate with each other via a bus  408 . The computer system  400  may further include a video display unit  410  (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)). The computer system  400  also includes an alphanumeric input device  412  (e.g., a keyboard, touchscreen), a user interface (UI) navigation device  414  (e.g., a mouse), a disk drive unit  416 , a signal generation device  418  (e.g., a speaker) and a network interface device  420 . 
       MACHINE-READABLE MEDIUM 
       [0044]    The disk drive unit  416  includes a machine-readable medium  422  on which is stored one or more sets of instructions and data structures (e.g., software)  424  embodying or utilized by any one or more of the methodologies or functions described herein. The instructions  424  may also reside, completely or at least partially, within the main memory  404  and/or within the processor  402  during execution thereof by the computer system  400 , the main memory  404  and the processor  402  also constituting machine-readable media. 
         [0045]    While the machine-readable medium  422  is shown in an example embodiment to be a single medium, the term “machine-readable medium” may include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more instructions or data structures. The term “machine-readable medium” shall also be taken to include any tangible medium that is capable of storing, encoding or carrying instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present invention, or that is capable of storing, encoding or carrying data structures utilized by or associated with such instructions. The term “machine-readable medium” shall accordingly be taken to include, but not be limited to, solid-state memories, and optical and magnetic media. Specific examples of machine-readable media include non-volatile memory, including by way of example semiconductor memory devices, e.g., Erasable Programmable Read-Only Memory (EPROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. 
       TRANSMISSION MEDIUM 
       [0046]    The instructions  424  may further be transmitted or received over a communications network  426  using a transmission medium. The instructions  424  may be transmitted using the network interface device  420  and any one of a number of well-known transfer protocols (e.g., HTTP). Examples of communication networks include a local area network (“LAN”), a wide area network (“WAN”), the Internet, mobile telephone networks, Plain Old Telephone (POTS) networks, and wireless data networks (e.g., WiFi and WiMax networks). The term “transmission medium” shall be taken to include any intangible medium that is capable of storing, encoding or carrying instructions for execution by the machine, and includes digital or analog communications signals or other intangible media to facilitate communication of such software. 
         [0047]    Although an embodiment has been described with reference to specific example embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the invention. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense. The accompanying drawings that form a part hereof, show by way of illustration, and not of limitation, specific embodiments in which the subject matter may be practiced. The embodiments illustrated are described in sufficient detail to enable those skilled in the art to practice the teachings disclosed herein. Other embodiments may be utilized and derived therefrom, such that structural and logical substitutions and changes may be made without departing from the scope of this disclosure. This Detailed Description, therefore, is not to be taken in a limiting sense, and the scope of various embodiments is defined only by the appended claims, along with the full range of equivalents to which such claims are entitled. As it common, the terms “a” and “an” may refer to one or more unless otherwise indicated.