Embodiments described herein are related to the field of wireless communication, and more particularly to the implementation of a communication protocol for addressing sensor nodes.
Various types of sensor nodes may be utilized for a variety of applications. For example, in an office building, many smoke and/or fire sensor nodes may be placed throughout the building to detect a fire and sound an alarm and enable a sprinkler system. In an agricultural setting, temperature and moisture sensor nodes may be placed throughout fields of crops to measure soil water content and ambient heat to help determine when a particular field needs to be watered. Wireless communication between the sensor nodes and a base station may be used when running wires may be burdensome, impractical, and/or costly. Wireless sensor nodes may communicate to the base station via standardized protocols such as Wi-Fi, Bluetooth, and ZigBee, or may be a proprietary protocol developed for a particular purpose.
Various embodiments of a sensor network are disclosed. Broadly speaking, an apparatus, is contemplated in which the apparatus includes a sensor circuit and a wireless communication interface. The sensor circuit may be configured to periodically sense a value for a particular environmental variable. The wireless communication interface may be configured to update a dynamic address for the apparatus based on the periodically sensed value, and to receive a query from a base station. The query may include a conditional address corresponding to the particular environmental variable. In response to a first comparison of the conditional address to a current dynamic address, the wireless communication interface may also be configured to send a reply to the base station indicating whether the query has matched for the apparatus. The reply to the query may be performed without requesting a reading of the particular environmental variable from the sensor circuit.
In another embodiment, another apparatus is contemplated in which the apparatus includes a processor circuit and a wireless communication interface. The processor circuit may be configured to generate a first conditional address based on a value for a particular environmental variable, and to generate a second conditional address based on a value for a different environmental variable. The wireless communication interface may be configured to transmit a query that includes the first conditional address, the second conditional address, and at least one comparator value indicating a type of comparison operation to be performed to determine whether the query is considered a match.
The following detailed description makes reference to the accompanying drawings, which are now briefly described.
While the embodiments described in this disclosure may be susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the drawings and detailed description thereto are not intended to limit the embodiments to the particular form disclosed, but on the contrary, the intention is to cover all modifications, equivalents and alternatives falling within the spirit and scope of the appended claims. The headings used herein are for organizational purposes only and are not meant to be used to limit the scope of the description. As used throughout this application, the word “may” is used in a permissive sense (i.e., meaning having the potential to), rather than the mandatory sense (i.e., meaning must). Similarly, the words “include,” “including,” and “includes” mean including, but not limited to.
Various units, circuits, or other components may be described as “configured to” perform a task or tasks. In such contexts, “configured to” is a broad recitation of structure generally meaning “having circuitry that” performs the task or tasks during operation. As such, the unit/circuit/component can be configured to perform the task even when the unit/circuit/component is not currently on. In general, the circuitry that forms the structure corresponding to “configured to” may include hardware circuits. Similarly, various units/circuits/components may be described as performing a task or tasks, for convenience in the description. Such descriptions should be interpreted as including the phrase “configured to.” Reciting a unit/circuit/component that is configured to perform one or more tasks is expressly intended not to invoke 35 U.S.C. § 112(f) interpretation for that unit/circuit/component.
This specification includes references to “one embodiment” or “an embodiment.” The appearances of the phrases “in one embodiment” or “in an embodiment” do not necessarily refer to the same embodiment, although embodiments that include any combination of the features are generally contemplated, unless expressly disclaimed herein. Particular features, structures, or characteristics may be combined in any suitable manner consistent with this disclosure.
In the previously disclosed agricultural example, wireless sensor nodes may be powered by batteries, solar, wind, or any combination thereof. Such power sources may provide a limited supply of power. Each sensor reading and each communication with the base station consumes a portion of the limited power supply, so, to conserve power, sensor nodes may enter a reduced power state after performing a sensor reading or a wireless communication. Minimizing a number of times each sensor node communicates with the base station may reduce power consumption. The present disclosure describes techniques for reducing a number of interactions between the base station and each sensor node.
The embodiments illustrated and described herein may employ CMOS circuits. In various other embodiments, however, other suitable technologies may be employed.
A block diagram of an embodiment of a sensor node and base station is shown in
Sensor Node 102, in the illustrated embodiment, uses sensor 110 to measure an environmental variable and may communicate information regarding measurements to base station 101 using communication interface 106. Communication interface 106 may use one or more addresses to determine if a received message is directed to sensor node 102. Sensor 110 may include any suitable circuits for measuring a relevant environmental variable. Environmental variables may include, for example, temperature, humidity, wind speed, luminance, velocity, direction, mass, pressure, and other physical conditions that may be measured by a sensor circuit. In some embodiments, sensor 110 may include circuits for measuring more than one condition, and/or sensor node 102 may include more than one sensor circuit. Sensor 110 may perform a measurement in response to a query received via communication interface 106. Alternatively, or in addition to receiving a query, sensor 110 may make periodic measurements and save a most recent measurement as sensed value 111. In various embodiments, sensor node 102 may receive a request from base station 101 for data related to sensed value 111, or may periodically send such data to base station 101. Communication interface 106 also generates dynamic address 121 that is based on sensed value 111. As used herein, a “dynamic address” refers to an address in a communication network that may change over time. Dynamic address 121 may, therefore, be updated after each update of sensed value 111, thereby providing a reference to a current value of the sensed condition. Communication interface 106 uses dynamic address 121 to determine when certain received messages are directed to sensor node 102.
In the illustrated embodiment, base station 101 communicates with sensor node 102 to retrieve information related to sensor readings by transmitting messages to (e.g., query 126) and receiving messages from (e.g., reply 122) sensor node 102. In some embodiments, base station 101 communicates with additional sensor nodes as well as sensor node 102, using an address to identify a particular sensor node. A sensor node matching the address may respond by, for example, sending a value related to a sensed reading. In some cases, processor 104 determines one or more values, such as values 115a and 115b, to use as part of a conditional address, such as, for example, conditional addresses 125a and 125b. A “conditional address,” as used herein, refers to a value that may be specified in a query that corresponds to a particular value of a respective environmental variable. For example, a humidity sensor may measure values from 0% to 100% humidity in an air sample. A conditional address to address the humidity sensor may range from 50000 to 50100. A conditional address of 50033 may, therefore, be used to query for sensor nodes with a humidity value of 33%. In some cases, the “conditional address” may include additional information in addition to the environmental variable value, including comparison type and the identity of the variable. Additional details regarding information included in conditional and dynamic address are disclosed below, for example, in regards to descriptions of
Referring again to
Continuing the example, communication interface 106 receives query 126 and makes a determination if conditions included in query 126 are met by sensor node 102. To make the determination, communication interface compares conditional address 125a included in query 126 to dynamic address 121. If dynamic address 121 meets the conditions indicated in query 126, in this example, a temperature value greater than 27° C., then communication interface 106 treats query 126 as a message directed to sensor node 102, and transmits reply 122. In various embodiments, reply 122 may include the most recent sensed value 111, an indicator if the identity of sensor node 102, or a combination thereof. Otherwise, if for example, sensed value 111 corresponds to a temperature value of 25° C., then communication interface 106 ignores query 126.
After completing a measurement, updating sensed value 111, and sending the updated sensed value 111 to communication interface 106, in some embodiments, sensor 110 may enter a reduced power mode from a first power mode. While in the reduced power mode, sensor 110 may be incapable of making a measurement. In the reduced power mode, voltage to one or more sub-circuits, or voltage to all circuits, in sensor 110 may be reduced to any suitable voltage level, including zero volts. To reply to query 126, communication interface may include the last sensed value 111 received from sensor 110 in reply 122, without causing sensor 110 to re-enter the first power mode and make another measurement. This may allow sensor node 102 to remain in a reduced power mode while also remaining receptive to queries from base station 101.
For some wireless sensor nodes, a major source of power drainage may be listening for a query rather than reading a sensor or responding to a query. In some embodiments sensor node 102 may not know exactly when a next query will be sent. Sensor node 102, may therefore periodically enable communication interface 106 to sense a communication from base station 101, or may keep communication interface 106 active continuously. Such a process may result in wasted power if base station 101 is not sending a query. Base station 101 may reduce wasted energy by adding, to query message 126, an indication of an amount of time until a next query will be transmitted. In response to receiving this indication, sensor node 101 may add, to reply 122, a confirmation of the proposed amount of time, or a modified proposal. The modified proposal may be for a longer amount of time if a current status for a power supply of sensor node 102 is low. In other cases, the modified proposal may be for a shorter amount of time if sensor node 102 determines that recent values sensed by sensor 110 are varying by more than a predetermined threshold.
It is noted that
Turning to
Each sensor node 202 in the example includes two sensor circuits, one for monitoring temperature and another for monitoring humidity. Measurements are made periodically and stored in a suitable memory (volatile or non-volatile) until the sensed values are requested by base station 201. After completing a measurement, each of the sensor circuits enters a reduced power state to conserve energy. In addition to storing each sensed value, each sensor node 202 creates a respective dynamic address for each sensed value, in which the dynamic address is indicative of the sensed value. These dynamic addresses may be used to determine if a particular sensor node 202 should reply to a query sent by base station 201.
Base station 201 generates one or more conditional addresses to identify one or more sensor nodes 202 that match the generated condition. A conditional address includes a value for temperature or humidity with a corresponding comparator value. As used herein, a “comparator value” or “comparison value” refers to a value that identifies a type of comparison to be performed, which may produce a Boolean result (one that is either “true” or “false”). Comparator values may be indicative of, for example, “greater than,” “less than,” “equal to,” “not equal to,” or other similar comparison operations. A query, therefore, may correspond to “temperatures greater than 20° C.” or “humidity less than 35%.” In these two examples, the respective comparator values would be “greater than” and “less than.” Base station 201 generates a query based on one or more conditional addresses. The query, for example, may also be directed to sensor nodes 202 with “sensed temperatures greater than 20° C.” and “sensed humidity less than 35%.” This is an example of a compound query—one that involves more than one comparison operation.
Queries and conditional addresses may be generated by base station 201 based on any of a variety of inputs. For example, a particular query and the included conditional addresses may be based on data received in response to previously transmitted messages, forecasted/predicted data received from a network connection, user input, a software program running on base station 201, sensors coupled directly to base station 201, or any other suitable source. Base station 201 transmits the generated query to sensor nodes 202.
Some or all of sensor nodes 202 may receive the transmitted query and compare the conditional addresses to respective dynamic addresses of each sensor node 202. In the illustrated example, sensor node 202a has a temperature of 20° C. and a humidity of 44%. Sensor node 202a, therefore, does not match either conditional address included in the query, and may ignore the query. Sensor node 202b has a temperature of 22° C. and a humidity of 39%. Sensor node 202b matches the conditional address related to temperature, but does not match he conditional address related to humidity, and may also ignore the query. Sensor node 202c has a temperature of 25° C. and a humidity of 30%. Sensor node 202c, therefore, matches both conditional addresses and may then respond to the query by, for example, sending the last stored values for temperature and humidity to base station 201. As part of this response, sensor node 202c may also send an indication of an identifier for sensor node 202c, such as, for example, a static address assigned, within system 200, only to sensor node 202c.
It is noted that the example query was directed to sensor nodes 202 with “sensed temperatures greater than 20° C.” and “sensed humidity less than 35%.” As another example, a query may be directed to sensor nodes 202 with “sensed temperatures greater than 20° C.” or “sensed humidity less than 35%.” With such a query, sensor node 202b may also respond in addition to sensor node 202c.
In some embodiments, base station 201 may set a time period for receiving a reply to a transmitted query. For example, upon completing a transmission of a query, base station 201 may enable a timer circuit that asserts a signal upon its count value reaching a particular value. In response to the assertion of the signal, the base station determines how many sensor nodes 202 responded. If no sensor nodes 202 responded, then base station 201 may retransmit the last query or create a new one.
In response to receiving a reply from one or more sensor nodes 202 before the time period expires, base station 201 may determine a location or an identity of the sensor node (or nodes) 202 that responded. Returning to the example, after sensor node 202c responds with the stored values for temperature and humidity, base station 201 determines a location of sensor node 202c. If. for example, sensor node 202c includes a static address, then base station 201 may use stored data, such as, e.g., a list of sensor nodes 202, to identify in which field the sensor is located. With the location known, base station 201 may then generate a command message to be transmitted to one or more control nodes 203 located nearest to sensor node 202c. In the illustrated example, control node 203c is the closest and may receive the command message from base station 201 instructing control node 203c to, for example, increase an amount, a duration, a frequency, or a combination thereof, of water flow to provide additional irrigation in the vicinity of sensor node 202c. Instructions included in the command message may be based on the values received from sensor node 202c, thereby allowing base station 201 to select a response that is suitable for the conditions reported by sensor node 202c.
It is noted that, in the illustrated example, base station 201 received data only from the sensor node that matched the conditions included in the query, i.e., sensor node 202c. In addition to the potential benefit of reduced power consumption described in regards to
It is also noted that the system illustrated in
Moving to
In the illustrated embodiment, sensors 310-312 each measure a respective environmental variable, such as described above in
Control circuit 324 receives the measured values and uses these values to create respective a dynamic address 321 for each value. As shown in the embodiment of
In some embodiments, the value of “123” at the beginning of each address may correspond to a particular base station, such that all sensor nodes included in a particular base station's network use the same first three digits. In other embodiments, the first three digits may be assigned by a particular sensor node type, by a manufacturer, or by any other suitable convention.
Communication interface 306 also includes static address 320, with a value of “123.456.007.” In this case, “456” may be reserved for static addresses, and “007” may identify sensor node 302 as the seventh sensor node in a particular sensor network, or may simply be randomly assigned. Static address 320 may be used by a base station to address sensor node 302 specifically, without sensor node 302 matching a conditional address.
Sensor node 302 may receive, from a base station, a query that includes one or more conditional addresses. After receiving a query from a base station via receive buffer 322, control circuit 324 extracts the one or more conditional addresses and compares each one to an appropriate respective dynamic address. For example, a conditional address that is directed to temperature is compared, using a condition included in the conditional address, to the dynamic address that represents temperature, i.e., “123.454.025.” If a match occurs, then control circuit 324 may respond, using transmit buffer 323, to acknowledge the match. In various embodiments, the response may be a simple acknowledgement that sensor node 302 matched the conditional address or may include the currently stored sensor value for the environmental variable in the conditional address, e.g., the temperature value of 25. The response may also include the static address or another value indicative of the identity of sensor node 302, thereby distinguishing the response as being from sensor node 302 and not from another sensor node in the network. In some embodiments, the response may include some or all of the other currently stored sensor values. Communication interface may respond without requesting a new sensor reading from any of sensors 310-312.
It is noted that sensor node 302 of
In the illustrated embodiment, sensor 410 performs a temperature measurement and generates a temperature value, in this example, a value of “23.” A control circuit in the sensor node receive this value and use it to reference a temperature value in the temp 426 column of temperature mapping table 425. The value of 23 lies between entries for 20° C. and 30° C. In various embodiments, one of these two entries may be selected by rounding the measured value up or down, or by truncating the measured value. In the current example, the measured value is rounded down to the 20° C. entry. The selected mapped value 429 is used to generate the dynamic address 421. The binary value for mapped value 429 may be represented by the hexadecimal address value 430 of 0x007F and stored in a register or other memory location within a particular sensor node. In some embodiments, a type indicator may be added to dynamic address 421 to indicate a type of environmental variable the address is based on, such as, in this example, temperature.
Any suitable mapping process may be used to generate mapped values 427. In the illustrated embodiment, the algorithm starts with a minimum value for the temperature value of −60° C. corresponding to “0000 0000 0000 0000” and assigns values in 10° C. increments up to a maximum value of 100° C. For each 10° C. increment, a least significant “0” is replaced by a “1.” The more consecutive “1's” in the mapped value 427, the higher the temperature. While such a mapping construct may not utilize all potential values of a 16 bit binary number, this mapping may result in more simplified circuits for comparing the dynamic address 421 to a received conditional address as compared to a straight binary encoding of the measured temperature value.
It is noted that
Moving now to
In the first example, a first sensor node includes dynamic address 521a and receives conditional address 525 in a query from a base station. In the illustrated embodiment, the dynamic and conditional addresses include a type identifier to indicate a type of environmental variable associated with the addresses. Dynamic address 521a includes a type of “1001 1011” which may correspond to any particular environmental variable, such as, for example, any of temperature, humidity, wind speed, luminance, velocity, direction, mass, pressure, or other physical condition, and includes a measured value for the sensed environmental variable. Conditional address 525 has a same type, resulting in the first sensor node comparing the respective values for each address. Query 524 includes conditional address 525 as well as a comparator value (Comp) to indicate a condition of the comparison that results in a match. Comparator operating mapping 526 includes four different types of comparisons. The comparator value of “001” in query 524 corresponds to a match occurring when the dynamic address value is greater than the conditional address value. The value of dynamic address 521a is “0000 0000 0111 1111,” which, as described above in regards to
In the second example, a second sensor node receives query 524. The second sensor node includes dynamic address 521b which also includes a type of “1001 1011,” resulting in another comparison with conditional address 525. The second sensor node performs a “greater than” comparison between the value of dynamic address 521b and the value of conditional address 525. In this case, the value of dynamic address 521b is “0000 0001 1111 1111,” which is greater than the value of conditional address 525, resulting in the second sensor node matching query 524. In response to the match, the second sensor node may reply to query 524 with the value of dynamic address 521b. In some embodiments, a stored value of the actual sensed measurement rather than the rounded/truncated value used in dynamic address 521b may be sent in the reply. In addition, the second sensor node may send a value indicative of the identity of the second sensor node.
It is noted that the address format, including using an increase in a number of “1” digits in the respective values, may allow for a decreased complexity in the circuits of the sensor nodes. More specifically, circuits used to compare dynamic values to conditional values may be implemented in combinational logic, and in some embodiments, may not require a clock source to produce a match indication, as opposed to circuits used to compare traditional binary encoded numbers. In some embodiments, this reduced complexity may result in a reduction of power consumption and/or a decrease in a time to perform the match determination.
It is also noted that
Turning to
Each of queries 630a and 630b are created using two conditional addresses. Referring to query 630a, both conditional addresses 625a and 625b include address bits representing type and value. Query 630a adds comparator value (Comp) 626a for use with conditional address 625a and comparator value 626b for use with conditional address 625b. Query 630a also includes an additional bit representing comparator value 627a that indicates a particular Boolean operator to be used. For example, an “AND” Boolean operator may indicate that conditional addresses 625a “AND” 625b must match for the query to be a match. Similarly, an “OR” Boolean operator may indicate that either conditional address 625a “OR” 625b needs to match to make the query true. Comparator value 626a has a value of “101.” Referring to comparator operator mapping table 636, the leading “1” in this comparator value indicates an additional conditional address is included in query 630a. This leading “1” also indicates that the next address bit represents the comparator value, “1” in query 630a, for linking conditional addresses 625a and 625b. Comparator value 627a may be determined using comparator mapping table 637. In the example of query 630a, the comparisons of both conditional address 625a AND 625b must be true for query 630a to be true.
The sensor node, after receiving query 630a, determines that the type of conditional address 625a matches the type of dynamic address 621a, and that the value of “101” for comparator value 626a indicates that the dynamic address must be greater than the conditional address for conditional address 625a to match. The value of dynamic address 621a, however, is less than the value of conditional address 625a, and conditional address 625a is, therefore, false, and not a match.
Moving to the second conditional address in query 630a, the type of conditional address 625b matches the type of dynamic address 621b, and the value of “000” for comparator value 626b indicates that the dynamic address must be less than the conditional address for a match. The value of dynamic address 621b is less than the value of conditional address 625b, and, therefore, conditional address 625b is true, and therefore, a match. Since comparator value 627a indicates an “AND” operation, however, query 630a results in no match to the current dynamic addresses 621a and 621b, and the sensor node may ignore query 630a.
In the second example, which may occur at a later point in time, the sensor node receives query 630b. Again, the types of conditional address 625c and dynamic address 621c match and the value of “101” for comparator value 626c indicates that the dynamic address must be greater than the conditional address for a match. As in the first example, the value of dynamic address 621c is lower than the value of conditional address 625c, and conditional address 625c is again false.
Moving to the second conditional address in query 630b, the type of conditional address 625d matches the type of dynamic address 621b. The value of “000” for comparator value 626b indicates a “less than” operation. The value of dynamic address 621b is less than the value of conditional address 625d, resulting in a true condition for conditional address 625d. Comparator value 627b in query 630b is “0,” which, as determined from comparator mapping table 637, corresponds to an “OR” operation. Since an “OR” operation, as opposed to an “AND” operation, is used, the one true result for conditional address 625d results in a match for query 630b. The sensor node may respond accordingly.
It is noted that the use of the comparator value may be extended to include more than two conditional addresses in a single query by setting the leading bit in comparator value 626b or 626d to “1.” In addition, more than one address bit may be used for the comparator value, allowing for more operations than “AND” and “OR.” Additional bits in the queries may be used, for example, to include parenthetical operators to help construct more complex queries. An example of such a query may be in the form of: condition A AND (condition B OR condition C), or (condition A AND condition B) OR condition C.
It is also noted that the method illustrated in
Moving to
In the illustrated embodiment, state diagram 700 is employed when a sensor node receives a query that includes two or more conditional addresses. After receiving the query, in state 701, control circuit 324 determines a comparator value for relating two conditional addresses. Control circuit 324 may extract a comparator value after determining that the query includes at least two conditional addresses. After extracting the comparator value, control circuit 324 moves to either state 702 or 704 depending on the operation indicated by the comparator value. An “AND” operator moves control circuit 324 to state 702, while an “OR” operator moves control circuit 324 to state 704.
In state 702, control circuit 324 compares a first conditional address to a corresponding dynamic address. As disclosed above, for example in regards to
In state 703, control circuit 324 compares a second conditional address to a second corresponding dynamic address. Again, a value for the conditional address is compared to a value of a dynamic address of the same type to determine if a condition included in the second conditional address is true. If the condition is true, then the query matches for sensor node 302 and control circuit 324 moves to state 706 to send a reply. Otherwise, control circuit 324 returns to state 701 to await a next query.
If control circuit 324 enters state 704 as a result of detecting an “OR” operation in state 701, then control circuit 324 enters state 704 and performs a comparison of the conditional address and the dynamic address, similar to state 702. If, however, the comparison is true, control circuit 324 moves to state 706 to send a reply, regardless of the result of the second conditional address. If the comparison is false, then control circuit 324 moves to state 705 to compare the second conditional address.
In state 705, control circuit 324 performs a comparison of a second conditional address to a second dynamic address. If the comparison is false, then both the first and second conditional address have failed to match the dynamic addresses of sensor node 302 and control circuit 324 returns to state 701 to await a next query. Otherwise, if the comparison of the second conditional address and the second dynamic address is true, then control circuit 324 moves to state 706 to send a reply.
Control circuit 324 enters state 706 when a query has resulted in a match. In response to this match, sensor node 302 sends a response to a base station that initiated the query. In one embodiment, the response includes sending stored values corresponding to sensor readings that were used to generate the first and second dynamic addresses. These stored values may be sent without control circuit 324 requesting a new reading by sensors 310-312 in sensor node 302. In some embodiments, sensor node 302 may respond by sending all saved values from all sensors in the node.
It is noted that
Proceeding to
A sensor node periodically senses a value of an environmental variable (block 802). In the illustrated embodiment, a sensor circuit in a sensor node, such as, for example, any of sensors 310-312 in sensor node 302 periodically performs a measurement of a particular environmental variable while in a first power state. As disclosed above in regards to
The sensed value may be stored in a memory location that is accessible by communication interface 306.
A control circuit updates a dynamic address based on the sensed value (block 803). Control circuit 324 in communication interface 306 reads the sensed value and updates a dynamic address using the sensed value. In some embodiments, the sensed value may be incorporated directly into the address as shown in
The sensor node transitions to a reduced power state after updating the dynamic address (block 804). In the illustrated embodiment, each of sensors 310-312 may enter the reduced power state after their corresponding dynamic address has been updated. In this reduced power state, sensors 310-312 may not be operable for performing measurements. The reduced power state, however, may result in a longer battery life for battery-powered nodes. While sensors 310-312 are in the reduced power state, communication interface 306 may be in an operable, or semi-operable state. For example, communication interface 306 may remain in a reception mode or “sniff” mode in which a transmission by the base station may be detected. After detecting a transmission, communication interface 306 may enter a fully operational receiver state to detect and receive a query.
The sensor node receives a query that includes a conditional address (block 805). Communication interface 306 receives, in the illustrated embodiment, a query from a base station. The query includes at least one conditional address. This conditional address may include a type of environmental variable, a value for the environmental variable, and a condition that must be true for the conditional address to match the dynamic address. For example, a conditional address may correspond to temperatures greater than 30° C., air pressure less than one bar, or velocity equal to 100 kilometers per hour.
The sensor node compares the conditional address to the dynamic address (block 806). In the illustrated embodiment, control circuit 324 determines which, if any, of dynamic addresses 321 correspond to type of environmental variable included in the received conditional address. A value in the corresponding dynamic address is compared to a value in the conditional address. Control circuit 324 determines if the values of the dynamic and conditional addresses match based on the condition included in the conditional address. If, for example, the conditional address corresponds to a temperature greater than 30° C., then the comparison is true, and a match determined, if the value in the dynamic address corresponds to a temperature above 30° C., and false, i.e., no match, otherwise.
The sensor node transitions from the reduced power state to the first power state (block 807). When a current time period elapses and it is time for a next sensor measurement, control circuit 324 causes one or more of sensors 310-312 to transition from the reduced power state and back into the first power state. In some embodiments, sensor node 302 may utilize one of several power states when performing a sensing operation. In such embodiments, sensor node 302 may enter any one of the power states that enables at least one of sensors 310-312 to perform a sensing operation. Once the appropriate sensors 310-312 are in an appropriate power state, the method returns to block 802 to sense a next value and repeat the disclosed process.
It is noted that method 800 in
Moving now to
A base station generates a first conditional address based on a first environmental variable (block 902). In the illustrated embodiment, base station 101 determines a conditional addressed based on a particular environmental variable. Returning to the crop irrigation example presented in regards to
The base station generates a second conditional address based on a second environmental variable (block 903). In addition to humidity, base station 101 may also be interested in sensor nodes with temperatures nearing freezing. In some embodiments, base station 101 may be coupled to the internet or other source of information and, therefore, be capable of receiving weather forecasts. In response to an approaching cold front, base station 101 may identify sensor nodes with near freezing temperatures and high humidity to identify fields where irrigation lines can be shut off to avoid creating ice on the crops. A suitable conditional address for identifying corresponding sensor nodes may correspond to conditional address 625b. In this example, the type value for conditional address 625b (“1001 0111”) may correspond to temperature and the value (“0000 0000 0111 1111”) may correspond to 0° C.
The base station generates a query based on the first and second conditional addresses (block 904). In the illustrated embodiment, base station 101 may add appropriate comparator values to each conditional address to create query 630a. For conditional address 625a, a comparator value of “101” is used to indicate a greater than operation for the humidity value. The “1” in the most significant bit location further indicates that query 630a includes an additional conditional address, in this case, the temperature condition. A comparator value of “1” is added to the end of conditional address 625a to indicate that both conditional address 625a and conditional address 625b must be true for a sensor node to successfully match query 630a. Conditional address 625b is added to query 630a, including a comparator operator of “000” to indicate a less than operation for the temperature value.
The base station transmits the query (block 905). Base station 101, after generating query 630a, transmits the query to sensor nodes within a network of base station 101. In some embodiments, base station 101 may wait for a particular time interval before transmitting query 630a. For example, the sensor nodes may wake at a predetermined time period to sense for a transmission from base station. In such embodiments, base station 101 waits until a beginning of a next particular time period to transmit query 630a. In other embodiments, base station 101 may transmit query 630a once the query has been completed and is in a transmitter buffer. The method ends in block 906).
It is noted that the method of
Although specific embodiments have been described above, these embodiments are not intended to limit the scope of the present disclosure, even where only a single embodiment is described with respect to a particular feature. Examples of features provided in the disclosure are intended to be illustrative rather than restrictive unless stated otherwise. The above description is intended to cover such alternatives, modifications, and equivalents as would be apparent to a person skilled in the art having the benefit of this disclosure.
The scope of the present disclosure includes any feature or combination of features disclosed herein (either explicitly or implicitly), or any generalization thereof, whether or not it mitigates any or all of the problems addressed herein. Accordingly, new claims may be formulated during prosecution of this application (or an application claiming priority thereto) to any such combination of features. In particular, with reference to the appended claims, features from dependent claims may be combined with those of the independent claims and features from respective independent claims may be combined in any appropriate manner and not merely in the specific combinations enumerated in the appended claims.