The present disclosure relates generally to transmitting data between devices and in particular to transmitting sensor data between a controller and a node device.
Sprinkler systems may include auxiliary sensors, such as precipitation sensors, that detect characteristics to vary a preset watering schedule, e.g., a planned watering event will be cancelled if the precipitation sensor detects that it has recently rained. However, many of these types of auxiliary sensors or other types of auxiliary devices may be located in the area to be watered, e.g., a user's backyard, and rely on batteries to provide power. Conventional data communication techniques for auxiliary sensors or other auxiliary devices require the devices to remain awake during long intervals, which can quickly drain the batteries.
For example, with a node device communicating data to a central device or controller, the node device will periodically listen for communication from the controller at a fixed interval. At the end of each fixed interval, the node device wakes up and checks for messages from the controller. If the fixed interval is too long, a node device may not timely receive a message from the controller or respond to the controller. If the fixed interval is too short, the node device will constantly wake up and check messages, requiring significant power consumption. This type of increased power consumption required in more sensitive and accurate systems can be problematic with battery powered devices.
In one embodiment, an irrigation system is disclosed. The irrigation system includes a sensor device configured to detect irrigation characteristics indicating one or more irrigation conditions and a controller in electrical communication with the sensor device and with one or more irrigation values to activate the irrigation valves according to an irrigation schedule. The controller transmits a first plurality of wake messages in sequence to the sensor device and subsequent to transmitting the plurality of wake message in sequence, transmits a message payload packet to the sensor device. The sensor device sleeps for a duration of a wait time interval after receiving one of the plurality of wake messages in the wakeup sequence and before receiving the payload packet.
In another embodiment, a sensor device for use in a sprinkler system is disclosed. The sensor includes a network interface in electrical communication with a controller, a sensor configured to capture sensor data, and a processing element in electrical communication with the sensor and the network interface. The processing element receives one of a plurality of wake messages from the controller, where the plurality of wake message are transmitted in sequence, determines a wait time interval, sleeps for a duration of the wait time interval, and wakes to receive a message payload packet from the controller.
In yet another embodiment, a method for transmitting data within a sprinkler system is disclosed. The method includes transmitting a plurality of wake messages in sequence to at least one node device in the communication system, subsequent to transmitting the plurality of wake messages in sequence, transmitting a message payload packet to the node device, and receiving a response packet from the node device responsive to the message payload packet. By the node device, receiving one of the plurality of wake messages from the sprinkler controller, determining a wait time interval, sleeping for a duration of the wait time interval, waking up to receive a message payload packet from the sprinkler controller, and transmitting a response packet to the controller responsive to the message payload packet.
Various embodiments of the present disclosure will be explained below in detail with reference to the accompanying drawings. The following detailed description refers to the accompanying drawings that show, by way of illustration, specific aspects and embodiments in which the present invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the present invention. Other embodiments may be utilized, and structure, logical and electrical changes may be made without departing from the scope of the present invention. The various embodiments disclosed herein are not necessary mutually exclusive, as some disclosed embodiments can be combined with one or more other disclosed embodiments to form new embodiments.
In some embodiments, an irrigation system having a controller and one or more sensor or other auxiliary devices that electrically communicate with the controller or other central hub is disclosed. The auxiliary device may be one or more sensors that detect data indicating one or more irrigation characteristics or environmental characteristics, e.g., precipitation received, soil moisture, system or sprinkler flow rates or other flow characteristics, etc. The controller receives the sensor data from the auxiliary devices and, based on the sensor data, varies or otherwise updates the operation of the irrigation system and/or transmits the data to a central controller (e.g., cloud based server structure), which then may modify one or more preset irrigation schedules. For example, when the precipitation sensor or the soil moisture sensor have data values over a particular threshold, the central controller may determine that the next watering event can be skipped since the landscape area has sufficient water. As another example, during a particular hot time, the soil moisture sensor may indicate that the soil is too try and the health of the vegetation may be deteriorating, and the controller may then activate a non-planned watering event. As yet another example, a flow sensor may detect that a sprinkler head is leaking or delivering too much water and the controller may adjust the watering schedules accordingly.
Often, the auxiliary devices are battery operated and located across the irrigated property, e.g., in a particular irrigation zone or the like. As such, battery life is important to conserve, since the sensors can be spread across large distances and/or in difficult to access areas. Alternatively, the devices may include a wired power supply, but rely on wireless transmission of data to and from the controller.
With the present disclosure, the sensor device sleeps or is in a low power mode until awoken by the controller and then receives or transmits data after it awake. For example, the controller requests data from a sensor device by sending a wake up message to the device, the wake message includes a message time or a wakeup time for receiving the request. Upon receiving the wake message, the sensor device determines the time when the request from the controller will be received, and sleeps again until the designated time. At the selected request time, the sensor wakes and receives the request transmitted to the sensor device at the selected time. With this method, rather than remaining awake (e.g., in a higher power state than in a sleep mode) for the entire duration of waiting for the request, the device can sleep or otherwise return to a low power mode between receiving the wake up message and the request, allowing the sensor device to conserve power. Conventional data transmission techniques typically require that the transmitting device remain awake from a time between receiving a wake signal and when the device is to receive a payload packet and/or send data, which can quickly drain the battery of a low powered sensor device.
In a non-limiting example, a precipitation sensor may be powered by a battery and functions to detect or otherwise collect precipitation data (e.g., a rain gauge or other type of collection tool). The precipitation sensor sleeps most of the time to preserve battery. A controller may obtain the precipitation data by sending one or more wake up messages to the precipitation sensor. The wake up messages includes a wake counter. When the precipitation sensor receives a wake up message, the precipitation sensor may use the wake counter in the wake up message to determine a wait time interval, for example, 0.5 seconds, and sleep for the duration of the wait time interval. At about the expiration of the wait time interval, the controller sends a request to the precipitation sensor, and the precipitation sensor wakes at the designated time to be able to receive the request from the controller. Subsequently, the precipitation sensor may process the request from the controller and respond to the controller accordingly (e.g., transmit any data packets back to the controller).
In some embodiments, the controller may send multiple sequences of wake up messages, the sequences including multiple short wake up messages. The shorter preamble and wakeup messages, shortens the window that the sensor needs to be awake to fully receive the full message. However, due to the shortened length, the controller may send multiple sequences to ensure that the sensor will be on during the transmission of at least one of the messages to receive the shorter message. Conventional transmission methods use a long preamble to ensure that the devices receive the information, but such long preambles also mean that the device must remain on for longer in order to ensure that it receives the fully packet, draining battery life. In one embodiment, the sequence and transmission intervals for the wake messages may be selected to ensure that the preamble or wake message is received within two interval checks by the sensor, but selecting the timing such preamble length and transmission times will overlap at least once with the receive preamble checks by the node or sensor device.
In some scenarios, the controller and the sensor devices may communicate over a separate frequency channel in a communication network, helping to prevent a sensor device from unnecessarily waking up for messages meant to be received by other sensor devices or from other forms of noise on the channel Reducing the chance of noise and mistaken wakeups, further helps to reduce battery life. In some embodiments, the wake messages may also be tied to specific auxiliary devices to prevent other devices from inadvertently waking or needing to wake every time a wake message is transmitted from the controller. In this example, the wake message may include a link identifier that is unique for the controller and the specific device, such that the wake message will be specific to a particular device. These embodiments may be helpful when multiple sensors or auxiliary devices are utilizing the same channel to communicate with the controller.
Turning now to the figures, a system of the present disclosure will be discussed in more detail.
The network 114 may be substantially any type or combination of types of communication system for transmitting data either through wired or wireless mechanism (e.g., WiFi, Ethernet, Bluetooth, cellular data, or the like). In some embodiments, certain components in the watering system 100 may communicate via a first mode (e.g., Bluetooth, Zigby) and others may communicate via a second mode (e.g., WiFi). Additionally, certain components may have multiple transmission mechanisms and be configured to communicate data in two or more manners. The configuration of the network 114 and communication mechanisms for each of the components may be varied as desired and based on the needs of a particular configuration or property.
The irrigation system controllers 102, 112, nodes, and/or the server(s) 104 may include one or more components such as those shown in
The nodes 120a-120c are auxiliary devices that are in communication with the controller. The nodes 120a-120c may be sensors or other devices that detect or otherwise measure select characteristics that may be used to alter watering schedules or provide feedback to the controller. By way of example, the sensor device 120a-120c may be a precipitation sensor or substantially any type of device that can detect precipitation and/or fluid levels and transmit an electrical signal. In another example, the sensor device may be a soil moisture level detector, such as a soil sensor that measures the soil conditions, water valves (e.g., wireless sprinkler valves), an optical sensor that measures the ambient light or the light or heat intensity at a particular area, or a flow sensor that measures the water flow in the irrigation system. Other examples of node devices include cameras that capture images of the area to be watered (e.g., sprinkler zone areas), soil nutrient detectors, or the like.
The nodes transmit signals or data to the network 114 and/or controller 102 via hardwired or wireless methods (e.g., WiFi, radio signals, Bluetooth, etc.). The nodes or sensor devices include a receiver to receive electronic data communications and a transmitter to transmit electronic data communications. The receiver/transmitter may be integrated into a single component or be two separate components. The nodes may also include processing elements, such as microprocessors, to assist in collecting data and activating the transmitter/receiver according to the communication protocols described here. The communications between the controller 102, 112 and the associated sensor devices 120a-120c will be further described in detail with reference to
In
In pairing with controller 202, sensor device 204 may send a pairing request to the controller. Upon receiving the request, the controller may fetch the sensor device's device specific information (including information, such as address and secure key) from a local memory. Alternatively, and/or additionally, the controller may also fetch a node's device information from the server(s) (104 in
Upon retrieving the device information of sensor device 204, and/or verifying requesting sensor device 204, controller 202 may pair with the sensor device. In pairing with the sensor device, the controller may respond with a radio configuration that will be used for further communication with the sensor device. The radio configuration may specify a number of parameters for communication, e.g., channel selection. In some scenarios, the controller may receive a pairing request from a sensor device, determine a communication channel in the communication network, and establish a communication link with the sensor device on that communication channel. If two sensor devices are communicating with the controller on the same channel, one sensor device may wake up only to receive a message that is sent to the other sensor device on the same channel In some scenarios, the controller may assign a unique channel (e.g., at a unique radio frequency) for the sensor devices. This will allow a sensor device to receive from a controller requests that are sent only to that sensor device, and avoid waking up unnecessarily. In this example, the various nodes may have separate channels that are used to communicate with the controller, such that the nodes will receive wake messages that are applicable only to themselves, rather than having to wake to receive multiple wake messages for multiple auxiliary devices on the same channel In this manner, the nodes may save power because they will not accidentally wake to receive messages not intended for themselves.
Alternatively, and/or additionally, the controller may retrieve a channel number or channel information from the server on the cloud (e.g., 104 in
With further reference to
Upon receiving a wake message 210 in the wake sequence at a CAD interval, rather than actively checking future requests and data transmitted from the controller, sensor device 204 may sleep for a duration of wait time interval 214 before controller 202 is ready to transmit a message payload packet 216 (following the wake message). The sensor device may determine the wait time interval based on information received from the controller, as described in more detail below. Additionally, sensor device 204 may respond with an acknowledgement 212 to controller 202 upon receiving the wake message. In other words, the wake message may include information to the sensor regarding future data to be transmitted from the controller to the sensor, including a time interval at which the sensor can be expected to receive the data. In this manner, the sensor can return to a low powered state since the time interval of the next data transmission will be known.
When the wait time interval ends, sensor device 204 may wake up to receive the message payload packet 218 from controller 202. An example of the message payload packet 218 is shown in
In
In some scenarios, the wake messages within a sequence may include a preamble 307 and a wake payload 309. The preamble may include data that can be detected by a sensor device and used to identify the energy transferred to the device, e.g., a known bit of data that the sensor can detect and understand to be transmitted from the controller. The wake payload may include additional data that can be used by the sensor device. For example, in
In some scenarios, the preamble length may be selected to take a substantial portion of the CAD interval. For example, in each wake message, the preamble 307 is substantial relative to the length of the wake message 308, while the wake payload packet 309 is much shorter. For example, the preamble may larger by 20-80% of the payload packet. The longer length of the preamble defines sufficient time for the wake message to be received by the sensor device during the preamble. The intervals between each wake message will also allow a small “compute” time for the controller (e.g., CPU cycle and processing time for the message).
The number of wake messages per sequence may vary, for example, the number may be 20, in which case a long wake message sequence is broken into multiple wake messages at a wake count interval 310 with short preambles. By doing so, the sensor devices may still have a large receive interval (i.e. CAD interval) but needs only a short preamble (or a small window, i.e., the length of the wake message) to be “on” (out of a lower power state), after which the sensor device may sleep for the wait time interval before receiving the message payload packet. This results in battery saving for the sensor device. In some scenarios, the controller can guarantee that a preamble will be detected by the sensor device within two receive interval checks spaced between a CAD interval. In doing so, the length of each message sequence is no less than the CAD interval. Additionally, the controller may space the wakeup messages and compute a preamble length that will overlap at least once of the receive preamble checks on the sensor device.
Now, the wakeup sequence limits the timing requirements on the controller. In some scenarios, the time each wake message is transmitted is called total on-air time. The total on-air time may vary depending on the communication protocol. For example, given a spreading factor (SF), e.g., SF8 and 500 KHz bandwidth in a 902-928 MHz band; the payload time for transmitting 1-3 bytes is 4.096 ms; a CAD interval on a sensor device is two seconds; and the length of a preamble PREAMBLE_LEN=152 unites, e.g., milliseconds, the wakeup packet timing must use a preamble with an appropriate number of symbols that guarantees the following relationships:
WakeCountInterval=CAD Interval/Num Wake Packets Per Seq
PreambleTransmitTime+WakePayloadTransmitTime<Wake Count Interval
PreambleTransmitTime>Wake Count Interval/2
The actual preamble duration Tpreamble will be limited by the symbol width used. The time for this data to be sent can be used to determine the total on-air time TOnAir=Tpreamble+Tpayload. The actual time between packets may vary slightly due to processing/interface communication timing, and should be measured to ensure that it does not impact the final calculation of whether the preamble will be detected below.
In practice, the difference between the PreambleTransmitTime and the WakeCountInterval is to be minimized while allowing for compute time/timing fluctuation/errors between the two devices. The difference may be impacted by various activities in the system such as CPU tasks in the controller, which may also vary depend on the system. Minimizing the difference between PreambleTransmitTime and the WakeCountInterval increases the opportunity for the device to successfully wake up on CAD detect on one of the wake message sequences.
Now, the system leaves the receiver to calculate the appropriate receive window based on the received wakeup/preamble packet. With further reference to
Wait≤(CAD Interval/Number of Wake Packets)*(Wake Count−1)
The sensor device will then wait for the message payload packet, then receive the message payload packet from the controller in a payload packet receive window 344. Additionally, the sensor device may wait for a timeout period Receive Payload Timeout sufficient to cover the additional dead time (PreambleTransmitTime plus WakePayloadTransmitTime). A margin, e.g., a percentage of the PreambleTransmitTime may be added to the timeout period. Alternatively, part of the Receive Payload Timeout can be added to the computed wait time 342 above to reduce the time that the radio is turned on for payload retrieval.
Additionally, and/or alternatively, the wake sequence may include additional wake message sequences, e.g., 304, 306. The first sequence of wake messages may be missed by the sensor device because each wake packet has a dead time where the preamble is not being transmitted (due to the transmission of wake payload or due to the turnaround time). Transmitting an additional wake message sequence will increase the chance that a wake message is received by the sensor device. After transmitting a wake message sequence, the controller may wait for an offset time before transmitting the second or third additional wake message sequence. To guarantee an overlap of at least one preamble, thus, a preamble will be detected, the offset 312, 314 between multiple wake message sequences need to meet the following:
Offset+PreambleTransmitTime>WakeCountInterval
Offset<PreambleTransmitTime
In the case of multiple wake message sequences, a sensor device may detect a wake message in any of the wake message sequences, e.g., the first sequence 302 or the second sequence 304. To differentiate between the multiple sequences, the wake counter may include information indicating which of the sequence the wake message being detected is in. For example, if a detected wake message in an initial sequence is detected, the sensor device may count down from n*Num Wake Packets Per Sequence, where n stands for the number of sequences. If a detected wake message is in the last sequence, the sensor device may count down from the number of wake packets per sequence.
With further reference to
With reference to
In some scenarios, the sensor device may be attached to a fixed power source, e.g., an outlet or a permanent wire from a power line. The controller may determine that the sensor device is powered by a fixed power source and the communication between the controller and the sensor device may be streamlined. In some scenarios, the number of wake message in a sequence can be one, with the preamble time greater than the CAD interval of the sensor device. Further, the controller may be configured to transmit the message payload packet immediately after transmitting a single wake message. Correspondingly, the sensor device may receive the messaging payload packet immediately after detecting the wake message.
Various methods can be implemented in above described system. In
Additionally, and/or alternatively, if the received response is invalid because the data received has errors 516, the method may determine an error counter, and check whether the error counter exceeds a maximum threshold 528. The error counter may depend on the type of error detection scheme being used. For example, the error scheme may be an error correcting code (ECC) such as a cyclic redundancy check (CRC), for which the error code may be the number of bit failures. The error code may also be an encryption tag, ECPT. Other error detection scheme may also be used. If the error counter exceeds a maximum threshold, the method may determine that the communication link between the controller and the sensor device is not reliable. The method may drop the link 524 between the controller and the sensor device. If the error counter does not exceed the maximum threshold, the method may include waiting for a retry interval 530, then transmit the message payload packet 506 again.
The retry interval in blocks 522, 530 may be predefined. In order to avoid interference, the method may further apply randomization to the retry interval 522, 530 before attempting further communication to the device. This retry interval will represent an exponential backoff to avoid two controllers on the same transmit time interval.
In
Additionally, and/or alternatively, if no valid data was received from the controller, the method may determine an error counter 562 and check whether the error counter exceeds a maximum threshold 564. For example, the error counter may be a retry counter, which can be initially set to zero and increment each time an error occurs. The error counter may alternatively, or additionally, be determined based on an error code associated with an error detection scheme. As above described with reference to
In other embodiments, the above described methods can be extended to any suitable communications between a controller and a node device, where the node device may be operated on a battery. In some scenarios, a method for communication between a controller and a node device may include, by a controller: transmitting a first plurality of wake messages in sequence to at least one node device in the communication system; subsequent to transmitting the plurality of wake messages in sequence, transmitting a message payload packet to the device; and receiving a response packet from the node device responsive to the message payload packet. The method may further include, by the node device: receiving one of the first plurality of wake messages from the controller; determining a wait time interval; sleeping for a duration of the wait time interval; waking up to receive a message payload packet from the controller; and transmitting a response packet to the controller responsive to the message payload packet.
The processing element 402 may be any type of electronic device capable of processing, receiving, and/or transmitting instructions. For example, the processing element 402 may be a central processing unit, microprocessor, processor, or microcontroller. Additionally, it should be noted that some components of the computer 400 may be controlled by a first processor and other components may be controlled by a second processor, where the first and second processors may or may not be in communication with each other.
The memory components 408 are used by the computer 400 to store instructions for the processing element 402, as well as store data, such as the fluid device data, historical data, and the like. The memory components 408 may be, for example, magneto-optical storage, read-only memory, random access memory, erasable programmable memory, flash memory, or a combination of one or more types of memory components.
The display 406 provides visual feedback to a user and, optionally, can act as an input element to enable a user to control, manipulate, and calibrate various components of the computing device 400. The display 406 may be a liquid crystal display, plasma display, organic light-emitting diode display, and/or cathode ray tube display. In embodiments where the display 406 is used as an input, the display may include one or more touch or input sensors, such as capacitive touch sensors, resistive grid, or the like.
The I/O interface 404 allows a user to enter data into the computer 400, as well as provides an input/output for the computer 400 to communicate with other devices (e.g., flow controller 104, flow detector 102, other computers, speakers, etc.). The I/O interface 404 can include one or more input buttons, touch pads, and so on.
The network interface 410 provides communication to and from the computer 400 to other devices. For example, the network interface 410 allows the server 110 to communicate with the flow controller 104 and the flow detector 102 through the network 114. The network interface 410 includes one or more communication protocols, such as, but not limited to WiFi, Ethernet, Bluetooth, and so on. The network interface 410 may also include one or more hardwired components, such as a Universal Serial Bus (USB) cable, or the like. The configuration of the network interface 410 depends on the types of communication desired and may be modified to communicate via WiFi, Bluetooth, and so on. In many embodiments, the network interface includes a transmitter and a receiver that transmit and receive radio or other electrical data communications, e.g., energy on radio frequencies.
The external devices 412 are one or more devices that can be used to provide various inputs to the computing device 400, e.g., mouse, microphone, keyboard, trackpad, or the like. The external devices 412 may be local or remote and may vary as desired.
The foregoing description has broad application. For example, while examples disclosed herein may focus on irrigation systems, it should be appreciated that the concepts disclosed herein may equally apply to other control systems, such as lighting control, home appliances control, smart home control, and/or control of Internet-of-Things (IoT) devices. Similarly, communication messaging in
All directional references (e.g., proximal, distal, upper, lower, upward, downward, left, right, lateral, longitudinal, front, back, top, bottom, above, below, vertical, horizontal, radial, axial, clockwise, and counterclockwise) are only used for identification purposes to aid the reader's understanding of the present disclosure, and do not create limitations, particularly as to the position, orientation, or use of this disclosure. Connection references (e.g., attached, coupled, connected, and joined) are to be construed broadly and may include intermediate members between a collection of elements and relative movement between elements unless otherwise indicated. As such, connection references do not necessarily infer that two elements are directly connected and in fixed relation to each other. The drawings are for purposes of illustration only and the dimensions, positions, order and relative sizes reflected in the drawings attached hereto may vary.
Also, as used herein, including in the claims, “or” as used in a list of items (for example, a list of items prefaced by a phrase such as “at least one of” or “one or more of”) indicates an inclusive list such that, for example, a list of at least one of A, B, or C means A or B or C or AB or AC or BC or ABC (i.e., A and B and C). Also, as used herein, the phrase “based on” shall not be construed as a reference to a closed set of conditions. For example, an exemplary step that is described as “based on condition A” may be based on both a condition A and a condition B without departing from the scope of the present disclosure. In other words, as used herein, the phrase “based on” shall be construed in the same manner as the phrase “based at least in part on.”
From the foregoing it will be appreciated that, although specific embodiments of the present disclosure have been described herein for purposes of illustration, various modifications may be made without deviating from the spirit and scope of the present disclosure. The description herein is provided to enable a person skilled in the art to make or use the disclosure. Various modifications to the disclosure will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other variations without departing from the scope of the disclosure. Thus, the disclosure is not limited to the examples and designs described herein, but is to be accorded the broadest scope consistent with the principles and novel features disclosed herein.
This application claims the benefit of priority under 35 U.S.C. § 119 to U.S. Provisional Application No. 62/661,369 entitled “System and Method for Transmitting Data Between Devices,” the disclosure of which is incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
62661369 | Apr 2018 | US |