Patent Description:
Shallow foundations, often called footings, are usually embedded about a meter or so into soil. One common type is the spread footing which consists of strips or pads of concrete (or other materials) which extend below the frost line and transfer the weight from walls and columns to the soil or bedrock. A shallow foundation is a type of foundation which transfers building loads to the earth very near the surface, rather than to a subsurface layer or a range of depths as does a deep foundation. Shallow foundations include spread footing foundations, mat-slab foundations, slab-on-grade foundations, pad foundations, rubble trench foundations and earthbag foundations.

Another common type of shallow foundation is the slab-on-grade foundation where the weight of the building is transferred to the soil through a concrete slab placed at the surface. Slab-on-grade foundations can be reinforced mat slabs, which range from <NUM> to several meters thick, depending on the size of the building, or post- tensioned slabs, which are typically at least <NUM> for houses, and thicker for heavier structures.

Slab-on-grade or floating slab foundations are a structural engineering practice, whereby the concrete slab that is to serve as the foundation for the structure is formed from a mold set into the ground. The concrete is then placed into the mold, leaving no space between the ground and the structure. This type of construction is most often seen in warmer climates, where ground freezing and thawing is less of a concern and where there is no need for heat ducting underneath the floor. The advantages of the slab technique are that it is cheap and sturdy, and is considered less vulnerable to termite infestation because there are no hollow spaces or wood channels leading from the ground to the structure (assuming wood siding, etc., is not carried all the way to the ground on the outer walls).

A deep foundation is used to transfer the load of a structure down through the upper weak layer of topsoil to the stronger layer of subsoil below. There are different types of deep footings including impact driven piles, drilled shafts, caissons, helical piles, geo-piers and earth stabilized columns. The naming conventions for different types of footings vary between different engineers. Historically, piles were wood, later steel, reinforced concrete, and pretensioned concrete.

A monopile foundation is a type of deep foundation which uses a single, generally large-diameter, structural element embedded into the earth to support all the loads (weight, wind, etc.) of a large above-surface structure.

As used herein, the term foundation refers any type of load bearing architectural structure, including but not limited to footings, concrete slabs, concrete slab-on-grade, impact driven piles, drilled shafts, caissons, helical piles, geo-piers and earth stabilized columns.

Foundations are designed to have an adequate load capacity with limited settlement by a geotechnical engineer, and the footing itself may be designed structurally by a structural engineer.

The primary design concerns are settlement and bearing capacity. When considering settlement, total settlement and differential settlement is normally considered. Differential settlement is when one part of a foundation settles more than another part. This can cause problems to the structure, which the foundation is supporting.

A concrete slab foundation is a common structural element of modem buildings. Horizontal slabs of steel reinforced concrete, typically between <NUM> and 20inches (<NUM> and <NUM> millimeters) thick, are most often used to construct floors and ceilings, while thinner slabs are also used for exterior paving. Sometimes these thinner slabs, ranging from <NUM> inches (<NUM>) to <NUM> inches (<NUM>) thick, are called mud slabs, particularly when used under the main floor slabs or in crawl spaces.

In many domestic and industrial buildings a thick concrete slab, supported on foundations or directly on the subsoil, is used to construct the ground floor of a building. These can either be "ground-bearing" or "suspended" slabs. In high rise buildings and skyscrapers, thinner, pre-cast concrete slabs are slung between the steel frames to form the floors and ceilings on each level. On the technical drawings, reinforced concrete slabs are often abbreviated to "r. slab" or simply "r. <CIT> relates to a method and an arrangement for the hydraulic undertaking of a structure during its displacement on flexible bedded, flexible webs by means of a plurality of hydraulic presses. <CIT> relates to a foundation repair method of fluid storage tank.

Dependent claims provide further advantageous embodiments.

The invention is described herein by way of example for several embodiments and illustrative drawings. 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.

In the following detailed description, numerous specific details are set forth to provide a thorough understanding of claimed subject matter. However, it will be understood by those skilled in the art that claimed subject matter may be practiced without these specific details. In other instances, methods, apparatuses or systems that would be known by one of ordinary skill have not been described in detail so as not to obscure claimed subject matter.

Some portions of the detailed description which follow are presented in terms of algorithms or symbolic representations of operations on binary digital signals stored within a memory of a specific apparatus or special purpose computing device or platform. In the context of this particular specification, the term specific apparatus or the like includes a general purpose computer once it is programmed to perform particular functions pursuant to instructions from program software. Algorithmic descriptions or symbolic representations are examples of techniques used by those of ordinary skill in the signal processing or related arts to convey the substance of their work to others skilled in the art. An algorithm is here, and is generally, considered to be a self-consistent sequence of operations or similar signal processing leading to a desired result. In this context, operations or processing involve physical manipulation of physical quantities. Typically, although not necessarily, such quantities may take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared or otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to such signals as bits, data, values, elements, symbols, characters, terms, numbers, numerals or the like. It should be understood, however, that all of these or similar terms are to be associated with appropriate physical quantities and are merely convenient labels. Unless specifically stated otherwise, as apparent from the following discussion, it is appreciated that throughout this specification discussions utilizing terms such as "processing," "computing," "calculating," "determining" or the like refer to actions or processes of a specific apparatus, such as a special purpose computer or a similar special purpose electronic computing device. In the context of this specification, therefore, a special purpose computer or a similar special purpose electronic computing device is capable of manipulating or transforming signals, typically represented as physical electronic or magnetic quantities within memories, registers, or other information storage devices, transmission devices, or display devices of the special purpose computer or similar special purpose electronic computing device.

Various embodiments of methods and apparatus for detecting a change in an orientation of a portion of a structure. The apparatus includes a processor, an energy storage unit, a location reporting unit, a wireless communication module and one or more inclination sensors. Each of the one or more inclination sensors is configured to measure inclination by measuring an orientation of the each of the one or more inclination sensors relative to a gravitational acceleration vector.

One or more inclination sensors may further include a plurality of accelerometers, the structure is stationary with regard to location, and the apparatus is rigidly attached to a fixed portion of the structure.

The processor may be configured to periodically activate the wireless communication unit at intervals such that the inclination sensors remain powered less than <NUM>% of a period that the apparatus is in use.

The processor configured to periodically activate the inclination sensors at intervals such that the inclination sensors remain powered less than <NUM>% (<NUM> tenths of one percent or <NUM> lOOOths of a period that the apparatus is in use).

The processor configured to periodically activate the inclination sensors at intervals such that the inclination sensors remain powered less than <NUM>% (<NUM> tenths of one percent) or <NUM> lOOOths of a period that the apparatus is in use.

The energy storage unit may include a solar cell array and one or more capacitors connected to the solar cell array for storing power received from the solar cell array and delivering power to one or more components of the apparatus.

A temperature sensor included for recording a temperature adjacent to the plurality of inclination sensors, for example, within the space less than three feet from the sensors. In some embodiments, a precipitation sensor is included for recording rainfall adjacent to the plurality of inclination sensors.

A method for detecting a change in an orientation of a portion of a structure is defined in claim <NUM>. The method includes measuring inclination by measuring an orientation of each of one or more inclination sensors relative to a gravitational acceleration vector, and reporting the respective orientations of the each of the one or more inclination sensors relative to the gravitational acceleration vector.

The method may further includes de-activating the inclination sensors at intervals such that the inclination sensors remain powered less than <NUM>% (<NUM> tenths of one percent) or <NUM> lOOOths of a period that an apparatus including the sensors is in use.

The reporting may further include attempting to report the respective orientations of the each of the one or more inclination sensors to a local master control unit by radio, responsive to the inability to report the respective orientations of the each of the one or more inclination sensors to the local master control unit over a short-range wireless network, attempting to report the respective orientations of the each of the one or more inclination sensors to a local peer sensor unit, and responsive to the inability to report the respective orientations of the each of the one or more inclination sensors to the peer sensor unit, storing and queuing the respective orientations of the each of the one or more inclination sensors for communication in a subsequent attempt at a subsequent reporting interval.

The method may further include reporting location information of the one or more inclination sensors.

The method may further include reporting location information of the one or more inclination sensors, wherein the reporting location information includes reporting a coordinate location on a fixed structure.

The method may further include reporting location information of the one or more inclination sensors, wherein the reporting location information includes reporting a GPS coordinate location.

The method may further include reporting location information of the one or more inclination sensors, wherein the reporting location information includes reporting a device identifier.

The method may further include recording a temperature adjacent to the plurality of inclination sensors, and reporting the temperature adjacent to the plurality of inclination sensors.

A system for monitoring structural foundations, alerting of potential failures or damage and controlling an irrigation system includes one or more sensor units configured to perform measuring inclination by measuring an orientation of each of one or more inclination sensors relative to a gravitational acceleration vector, and reporting the respective orientations of the each of the one or more inclination sensors relative to the gravitational acceleration vector. The system further includes a data aggregator configured to perform reporting data received from the one or more sensor units to a remote data repository.

The system further includes an irrigation controller for controlling application of water to a foundation of a structure based upon commands received from a remote command authority.

The controlling application of water to a foundation of a structure based upon commands received from a remote command authority further includes controlling application of respective specified amounts of water to each of one or more specified irrigation zones adjacent to the foundation of the structure based upon the commands received from the remote command authority.

The system further includes a remote processing system configured to perform receiving data from the one or more irrigation controllers, determining, based at least in part upon the data, respective specified amounts of water for each of one or more specified irrigation zones adjacent to the foundation of the structure, and generating irrigation controller commands for the controlling the application of the respective specified amounts of water to the each of the one or more specified irrigation zones adjacent to the foundation of the structure.

The determining, based at least in part upon the data, respective specified amounts of water for each of one or more specified irrigation zones adjacent to the foundation of the structure further includes determining, based at least in part upon the data and a foundation topography survey, respective specified amounts of water for each of one or more specified irrigation zones adj acent to the foundation of the structure.

The determining, based at least in part upon the data, respective specified amounts of water for each of one or more specified irrigation zones adjacent to the foundation of the structure further includes determining, based at least in part upon the data, historical feedback information related to results of previous commands, respective specified amounts of water for each of one or more specified irrigation zones adjacent to the foundation of the structure.

A means not according to the invention is for loading a non-uniform distribution of paint on a virtual brush. For example, a non-uniform paint loading module may receive input identifying a portion of a digital canvas on which a non-uniform distribution paint has been deposited, and may load a virtual brush model with a distribution of paint corresponding to the non-uniform distribution of paint in the identified portion of the canvas for subsequent deposition using the virtual brush, as described herein. The non-uniform paint loading module may in some embodiments be implemented by a non-transitory, computer-readable storage medium and one or more processors (e.g., CPUs and/or GPUs) of a computing apparatus. The computer-readable storage medium may store program instructions executable by the one or more processors to cause the computing apparatus to perform receiving input identifying a portion of a digital canvas on which a non-uniform distribution paint has been deposited, and loading a virtual brush model with a distribution of paint corresponding to the non-uniform distribution of paint in the identified portion of the canvas for subsequent deposition using the virtual brush, as described herein. Other embodiments of the non-uniform paint loading module may be at least partially implemented by hardware circuitry and/or firmware stored, for example, in a non-volatile memory.

<FIG> illustrates a system for monitoring structural foundations, alerting of potential failures or damage and controlling an irrigation system, according to an embodiment of the invention. In a typical installation, sensor nodes are placed in all four comers of the slab to periodically measure the tilt angle with accelerometers and report the data through a cellular uplink or WiFi network to the cloud server. The cloud server stores and analyzes the incoming data from the sensor nodes and instructs the irrigation controller to apply water to areas around the slab that need corrective action. Users may also access and visualize the data via a web portal.

A system <NUM> for monitoring structural foundations <NUM>, such as that of example structure <NUM>, alerting of potential failures or damage and controlling an irrigation system, for example through irrigation controller <NUM>, includes one or more sensor units (nodes <NUM>) configured to perform measuring inclination by measuring an orientation of each of one or more inclination sensors relative to a gravitational acceleration vector, and reporting the respective orientations of the each of the one or more inclination sensors relative to the gravitational acceleration vector. The system further includes a data aggregator configured (in some embodiments, integrated with irrigation controller <NUM>) to perform reporting (e.g., over cellular network <NUM> data received (e.g., via wifi <NUM>) from the one or more sensor units <NUM> to a remote data repository, such as cloud server <NUM> on network <NUM>.

The system further includes an irrigation controller <NUM> for controlling application of water through irrigation plumbing <NUM> to a foundation of a structure based upon commands received from a remote command authority, which can be embodied in cloud server <NUM> or web portal <NUM>. Irrigation controller <NUM> connects to irrigation plumbing <NUM>. The irrigation plumbing <NUM> consists of off-the-shelf irrigation valves, piping, and drip irrigation lines buried around the perimeter of the slab. The irrigation valves connect back to the irrigation controller through typical direct burial wire with a single common connection infrastructure.

Irrigation plumbing <NUM> includes microdrip irrigation tubing, such as that offered by rainbird, that provides <NUM> Liter (<NUM>,<NUM> gallons) per hour drip per emitter, at <NUM> emitter per foot of irrigation plumbing. With known emitters per zone of irrigation plumbing <NUM>. In some embodiments, irrigation plumbing <NUM> may be structured around zones of ten feet long with ten emitters.

A web portal <NUM> is used for installation of the system and to manage each installation over is lifetime.

The controlling application of water to a foundation of a structure based upon commands received from a remote command authority further includes controlling application of respective specified amounts of water through irrigation plumbing <NUM> to each of one or more specified irrigation zones adjacent to the foundation <NUM> of the structure <NUM> based upon the commands received from the remote command authority <NUM>.

Sensor nodes <NUM> measure the relative tilt at the comers of the foundation and relay their measurements to the irrigation controller <NUM> via a low speed ISM band radio link. Sensor nodes periodically wake up, take a tilt reading with the accelerometer, transmit that reading to the irrigation controller <NUM>,and go back to sleep. If communication with the irrigation controller <NUM> is not successful, then the sensor node <NUM> will cache the reading and attempt to retransmit it during the next reading interval.

The system further includes a remote processing system <NUM> configured to perform receiving data from the one or more irrigation controllers <NUM>, determining, based at least in part upon the data, respective specified amounts of water for each of one or more specified irrigation zones adjacent to the foundation <NUM> of the structure <NUM>, and generating irrigation controller <NUM> commands for the controlling the application of the respective specified amounts of water to the each of the one or more specified irrigation zones adjacent to the foundation <NUM> of the structure <NUM>.

The determining, based at least in part upon the data, respective specified amounts of water for each of one or more specified irrigation zones adjacent to the foundation <NUM> of the structure <NUM> further includes determining, based at least in part upon the data and a foundation <NUM> topography survey, respective specified amounts of water for each of one or more specified irrigation zones adjacent to the foundation <NUM> of the structure <NUM>.

The determining, based at least in part upon the data, respective specified amounts of water for each of one or more specified irrigation zones adjacent to the foundation <NUM> of the structure <NUM> further includes determining, based at least in part upon the data, historical feedback information related to results of previous commands, respective specified amounts of water for each of one or more specified irrigation zones adjacent to the foundation <NUM> of the structure <NUM>.

<FIG> depicts a sensor unit for monitoring structural foundations, according to an embodiment of the invention The apparatus includes a processor (microcontroller <NUM>), an energy storage unit <NUM> (including a power management integrated circuit <NUM>, a supercapacitor <NUM> and a solar cell <NUM>), a location reporting unit (e.g., GPS receiver <NUM> with antenna <NUM>), a wireless communication module (e.g., ISM band radio <NUM> with antenna <NUM> and one or more inclination sensors.

The microcontroller <NUM> directs all operations within the sensor node, three axis accelerometer <NUM> is used to read the tilt in the slab (triple redundant).

A temperature sensor <NUM> reads the ambient temperature of the node to compensate for temperature dependent error in the accelerometer and for general environmental monitoring.

EEPROM <NUM> stores configuration parameters such as what irrigation controller the sensor node <NUM> is associated to and is used as a temporary data cache in the face of wireless communication failures. ISM band radio <NUM> provides wireless communication between the sensor nodes. GPS receiver <NUM> locates the position of the sensor on the building. Solar cells <NUM> serve as a power source for the sensor nodes. Super capacitor <NUM> serves as a power reservoir for collecting energy from the solar cells. A power management IC (PM1C } <NUM> boosts the voltage from the solar cells to a regulated level for the system and charges the super capacitor.

Each of the one or more inclination sensors is configured to measure inclination by measuring an orientation of the each of the one or more inclination sensors, such as three-axis precision accelerometer <NUM>, relative to a gravitational acceleration vector.

Microcontroller <NUM>, EEPROM <NUM>, and temperature sensor <NUM> share an I2C bus <NUM>.

The one or more inclination sensors further include a plurality of accelerometers, such as three-axis precision accelerometer <NUM>, the structure is stationary with regard to location, and the apparatus is rigidly attached to a fixed portion of the structure.

The processor <NUM> is configured to periodically activate the wireless communication unit <NUM> at intervals such that the inclination sensors remain powered less than <NUM>% of a period that the apparatus is in use.

The processor <NUM> is configured to periodically activate the inclination sensors <NUM> at intervals such that the inclination sensors remain powered less than <NUM>% (<NUM> tenths of one percent or <NUM>1000ths of a period that the apparatus is in use).

The processor <NUM> is configured to periodically activate the inclination sensors <NUM> at intervals such that the inclination sensors remain powered less than <NUM>% (<NUM> tenths of one percent) or <NUM>1000ths of a period that the apparatus is in use.

The energy storage unit includes a solar cell array and one or more capacitors connected to the solar cell array for storing power received from the solar cell array and delivering power to one or more components of the apparatus.

, A temperature sensor <NUM> is included for recording a temperature adjacent to the plurality of inclination sensors <NUM>,A precipitation sensor (not shown) is included for recording rainfall adjacent to the plurality of inclination sensors.

<FIG> illustrates an irrigation module for monitoring structural foundations, according to an embodiment of the invention. Irrigation controller <NUM> includes a microcontroller <NUM> connected by an I2C bus <NUM> to an EEPROM <NUM>. An energy control unit <NUM> includes an AC power supply <NUM> and a 24V AC Transformer <NUM>. Microcontroller <NUM> connects over a UART interface <NUM> to a cellular radio <NUM> with an antenna <NUM>, an ISM band radio <NUM> with an antenna <NUM>. Microcontroller <NUM> connects over an SPI interface <NUM> to a wifi module <NUM> with an antenna <NUM>. Microcontroller <NUM> connects over a GPIO interface <NUM> to A/C solenoid drivers <NUM> for controlling water valves and a precipitation gauge <NUM> for receiving rainfall data.

Microcontroller <NUM> directs all operations within the irrigation controller. AC solenoid drivers <NUM> are drivers for the <NUM> V AC solenoids in the irrigation valves. Rain gauge input <NUM> provides protected input to read an external rain gauge. EEPROM <NUM><NUM> Stores the irrigation schedule set by the cloud server and the communication parameters used by the WiFi. ISM Band Radio <NUM> provides wireless communication between the sensor nodes. Cellular radio <NUM> allows the irrigation controller to communicate with the cloud server over a <NUM>/<NUM> cellular data network. WiFi Module <NUM> connects to the cloud server via the customer's WiFi network. AC Power Supply <NUM> converts the 24V AC power to the DC voltages needed by the system. <NUM> V AC transformer <NUM> is an external <NUM> V AC transformer.

The presence of rain gauge input allows for a correlation mapping between a rain amount and a corresponding irrigation event per exposed zone, such that the machine learning treats the rain as though it was an intentional event and improves data integrity in the model, also allowing for soil plasticity calculations.

Irrigation control module <NUM> acts as the gateway for data coming up from sensors nodes and controls irrigation valves.

Irrigation control module <NUM> is the means by which to upgrade the firmware for the sensors, such as when the sensors have small radios in <NUM>.

Irrigation control module <NUM> receives data from the rain sensors and passes it up to the control server, as well as providing valve-level connection to flow meter data.

Irrigation control module <NUM> uses AC solenoids because they default to closed.

Irrigation control module <NUM> is also controlling a master controller that also defaults to off.

<FIG> depicts schematics of a sensor module for monitoring structural foundations, according to an embodiment of the invention. Schematics <NUM> illustrate a potential hardware design providing details of <FIG>.

<FIG> illustrates schematics of an irrigation module for monitoring structural foundations, according to an embodiment of the invention. Schematics <NUM> illustrate a potential hardware design providing details of <FIG>.

<FIG> depicts a system for monitoring structural foundations, alerting of potential failures or damage and controlling an irrigation system, according to an embodiment of the invention. System <NUM> includes sensor modules <NUM>, an irrigation controller <NUM>, a remote processing system <NUM>, a reporting client <NUM> and a control client <NUM> communicating over a network <NUM> or networks or various communication links through a client interface <NUM>.

Irrigation control module <NUM> controls various tools to sense and proactively correct problems with building foundations by monitoring changes in the tilt angle of a concrete slab and applying targeted irrigation to the slab to offset those changes.

Sensor nodes such as sensor module <NUM> measure the relative tilt at the comers of the foundation and relay their measurements to the irrigation controller 606via a low speed ISM band radio link. Sensor nodes <NUM> periodically wake up, take a tilt reading with the accelerometer, transmit that reading to the irrigation controller, and go back to sleep. If communication with the irrigation controller is not successful, then the sensor node will cache the reading and attempt to retransmit it during the next reading interval.

Irrigation control system controls the flow of water at valves controlled by irrigation controller <NUM> into drip line pipes to expand the soil under several irrigation zones to lift portions of the foundation of the structure. In some embodiments, irrigation controller <NUM> can be replaced with other methods for raising a foundation such as:.

Remote processing system <NUM> includes a database <NUM>, an irrigation control module <NUM> and client interface <NUM>. Remote processing system <NUM> (also called "cloud server" receives sensor readings from a large number of irrigation controllers <NUM> and saves them into a database <NUM>. The cloud server <NUM> also periodically analyzes the data to determine if it needs to send any commands to any irrigation controllers <NUM> to alter the irrigation schedule, providing sensor data and irrigation schedule control as an application program interface (API) on the cloud server. The analysis of sensor data and feedback to the irrigation schedules may be performed on cloud server <NUM>.

Cloud server <NUM> includes user authentication and is able to associate nodes <NUM> to user accounts. This is a one-to-many association to allow many combinations of contractors, warranty companies or building owners to access the node. In some embodiments, each association has a permission level that specifies what activities a user is allowed to do with each node. Users are able to set up different notifications for the same node through control client <NUM> using a control interface <NUM>, such as a web portal. A user with an administrative permission level is allowed to add or remove nodes <NUM> from the server. Instructions from irrigation control module <NUM> to irrigation controller <NUM> describe flow time on the valve. Alternatively, instructions from irrigation control module <NUM> to irrigation controller <NUM> describe volume and can be configured with a different number of emitters per zone to facilitate leak detection, such that if the flow meter does not match the time on the valves, a failed valve is detected.

Sensor module <NUM> has two modes. One mode operates as part of the overall irrigation system. Such a mode captures data and passes it to the irrigation controller <NUM>.

Sensor module <NUM> operates in a storage mode, storing data without contact with irrigation controller <NUM> and capturing <NUM>-<NUM> years worth of daily readings. Sensor module <NUM> can be awakened from a handheld terminal by a service technician, who can take the data to a portable computer.

The irrigation controller <NUM> has two primary functions. The first is to receive readings from the sensor nodes <NUM> over the ISM band radio connection and relay them to the cloud server <NUM> using either the cellular radio uplink or the WiFi network.

The second function is to irrigate the zones around the perimeter of the slab based on a schedule calculated by the cloud server <NUM>. The irrigation controller is designed to facilitate installation by irrigation contractors and it utilizes the same power supply, zone wiring, irrigation valves, and rain gauges as typical lawn irrigation systems.

Reporting client <NUM> includes a reporting interface <NUM>, such as a web portal. Control client <NUM> includes a control interface <NUM>, such as a web portal. Sensor modules <NUM> and irrigation controller <NUM> deploy a mesh network for communication between themselves. Sensor modules <NUM> and irrigation controller <NUM> integrate with home automation systems, such as those offered by Nest ™ or the Apple Homekit ™.

Sensor modules <NUM> and irrigation controller <NUM> are packed in watertight housings. Sensor modules <NUM> are equipped with GPS and an accelerometer for use as a gravity sensor, and they can sync to time from. Sensor modules <NUM> derive light information from their solar panels. Sensor modules <NUM> have power management circuits and perform capacitor health management. Sensor modules <NUM>, if light and capacitor performance deteriorate in parallel, sensor modules <NUM> may have detected an obstruction of the solar panels. Sensor modules <NUM> may detect that a capacitor dies with a good solar system, indicating failed capacitors.

Sensor modules <NUM> and irrigation controller <NUM> employ diagnostics on the health of the wireless connections.

Sensor modules <NUM> and irrigation controller <NUM> employ a proprietary encrypted mesh protocol. Sensor modules <NUM> and irrigation controller <NUM> employ off the shelf communication protocols. Sensor modules <NUM> and irrigation controller <NUM> employ encryption at one or more of link and data levels.

<FIG> depicts a module for monitoring structural foundations, alerting of potential failures or damage and controlling an irrigation system, according to an embodiment of the invention.

<FIG> illustrates an irrigation control module that may implement one or more of the techniques and tools illustrated in <FIG>. Module <NUM> may, for example, implement one or more of monitoring structural foundations, alerting of potential failures or damage and controlling an irrigation system. <FIG> illustrates an example computer system on which embodiments of module <NUM> may be implemented. Module <NUM> receives as input one or more items of inclination and environment sensor data <NUM>. Module <NUM> may receive user input <NUM> activating a tool for monitoring structural foundations, alerting of potential failures or damage and controlling an irrigation system. Module <NUM> then generates water delivery instructions <NUM> as output, which may, for example, be stored to a storage medium <NUM>, such as system memory, a disk drive, DVD, CD, etc..

Module <NUM> may provide a user interface <NUM> via which a user may interact with the module <NUM>, such as a web portal, reporting interface, or control interface, for example to activate a tool for monitoring structural foundations, alerting of potential failures or damage and controlling an irrigation system as described herein. In some embodiments, the user interface may provide user interface elements whereby the user may select options and provide direct commands for foundation repairs based on data <NUM>. Instructions <NUM>, as well as accounting data <NUM> and reports <NUM>, may be generated via a machine learning system.

<FIG> is flowchart of methods for monitoring structural foundations, alerting of potential failures or damage and controlling an irrigation system, according to an embodiment of the invention. <FIG> is a flow chart that illustrates a process for sensors to obtain and report data. In some embodiments, the sensors (e.g., inclination sensors, or other sensors) may be activated at an interval (block <NUM>). For instance, the sensors may activate (or be activated) at intervals such that the sensors remain powered less than a period that the apparatus the sensor is a part of is in use (e.g., less than <NUM>% (<NUM> tenths of one percent) or <NUM> lOOOths of a period that an apparatus including the sensors is in use). The sensors may be de-activated at intervals such that the inclination sensors remain powered less than a period that the apparatus is in use (e.g., less than <NUM>% (<NUM> tenths of one percent) or <NUM> lOOOths of a period that an apparatus including the sensors is in use).

Various metrics or measurements may be obtained by the activated sensors (block <NUM>). For instance, inclination measurements may be obtained by measuring an orientation of each of one or more inclination sensors relative to a gravitational acceleration vector. In some embodiments, temperature may be obtained. For example, a temperature adjacent to the sensor may be recorded by the sensor. Other metrics may be obtained without departing from the scope of the invention. For example, the location information of the sensor (e.g., a coordinate location on a fixed structure, a GPS coordinate location, a device identifier, etc.).

A determination of a milestone for reporting may be determined (block <NUM>). For instance, the milestone may be reached when a number of metrics have been obtained (e.g., because a memory is getting full, or because regular reporting is desired), when a time period has elapsed (e.g., because an analysis tool needs regular data), or otherwise. If it is determined that the milestone has not been reached, the process may continue to block <NUM> where the sensors are de-activated (e.g., for a period or until activated). If it is determined that a reporting milestone has been reached, the sensor may make an attempt to report the metrics (e.g., the inclination measurements obtained by measuring an orientation of each of one or more inclination sensors relative to a gravitational acceleration vector, the temperature adjacent to the sensor, the location information of the sensor, etc.) to a local master control unit by radio (block <NUM>). If successful (e.g., if the sensor is able to establish a communication channel with the local master control unit), the sensor may report the respective metrics to a local master control unit by radio (block <NUM>).

However, if the attempt to report to the local master control unit fails (e.g., if commimication cannot be established over a short-range wireless network) the sensor may attempt to report the respective metrics of the inclination sensor to a local peer sensor unit (block <NUM>). If the attempt is successful (e.g., if a communication channel is established with the local peer sensor unit) the sensor that obtained the data may report the respective metrics to a local master control unit by radio (block <NUM>). In embodiments, this passing of the data to a neighboring sensor may be repeated until the data reaches a desired destination, such as the local master control unit, or another control unit further up a hierarchy of control units, for instance. Instead of being a back-up system of reporting data, this sensor-jumping scheme may be the primary scheme for moving the data from remote sensors to a control unit.

If the attempt to report the metrics to a local peer sensor unit fails, the sensor may store and queue the respective metrics for communication in a subsequent attempt at a subsequent reporting interval (block <NUM>).

Subsequent to any of blocks <NUM>, <NUM> or <NUM>, the inclination sensor(s) may be configured to de-activate themselves (or be deactivated by the system). The process them may return to block <NUM>, where the inclination sensor(s) are activated or activate at an interval, and so on.

<FIG> is a state diagram of methods for monitoring structural foundations, alerting of potential failures or damage and controlling an irrigation system, according to an embodiment of the invention. <FIG> is a flow diagram illustrating a process of monitoring movement of a structural foundation via a sensor system and mitigating problems associated with movement of a structural foundation via an irrigation system that is controlled by a control system.

As illustrated in block <NUM>, soil expands (e.g., due to moisture changes) and the soil expansion causes the structural foundation of the house to move (e.g., small amounts). Such expansion may be especially destructive to a foundation when the soil expansion is experienced along one portion of the foundation, but not along other areas of the foundation. The uneven pressure caused by the expansion being different or limited in some areas, may cause damage to some types of foundations, for example. For instance, pressure from expansion on one side of a wall that is not experiencing pressure from expansion on the other side of the wall may push the wall away from the high pressure area toward the low pressure area. Correspondingly, soil may retract due to moisture changes (e.g., dry soil sometimes exhibits cracking from the lack of moisture). The expansion/retraction cycle may cause the foundation of the house to change position significantly over time, even when the movement associated with a single cycle may be small.

The changes in foundation position may be detected by sensors (block <NUM>). For example, <FIG> illustrates a process for sensors to obtain changes in foundation position. In some embodiments, the sensors may communicate (e.g., wirelessly or wired communication) with a control unit. For instance, the control unit may be a sensor system control unit, or an irrigation system controller. The sensor system control unit may communicate (e.g., via wired or wireless communication) with an irrigation controller (block <NUM>). In either case, the control unit (e.g., the sensor control unit or an irrigation controller) may send the foundation data (data that was obtained by the sensors) for analysis (block <NUM>). For example, the sensor control unit may send the foundation data to a remote system for analysis (e.g., to a remote cloud-based data analysis system) or the irrigation controller may receive the data from the sensors and send the data to a remote system for analysis (e.g., to a remote cloud based data analysis system). In some embodiments, the data analysis may be performed local to either of the control units.

The analysis, whether performed local-to-the sensors or home, by one of the control units or on a remote system (e.g., in the cloud or by some other service provider) may include algorithms configured to analyze the data and create irrigation instructions (block <NUM>). For example, machine learning and/or artificial intelligence algorithms may perform analysis of the data and create irrigation instructions.

As illustrated at <NUM>, whichever entity performs the analysis and generates the irrigation instructions may also send the instructions to the irrigation controller. The irrigation controller may send water into irrigation zones, in accordance with the instructions, in embodiments. The system may be programmed to wait a period of time before starting the process all over again (e.g., start over at <NUM>). The system may be configured to continuously monitor the foundation position. For example, the sensors may be provided with a constant source of power and may continually obtain and transmit metrics or data such as position, temperature, etc..

Embodiments of a control module for monitoring structural foundations, alerting of potential failures or damage and controlling an irrigation system and/or of the various monitoring structural foundations, alerting of potential failures or damage and controlling an irrigation system techniques as described herein may be executed on one or more computer systems, which may interact with various other devices. One such computer system is illustrated by <FIG>. In different embodiments, computer system <NUM> may be any of various types of devices, including, but not limited to, a personal computer system, desktop computer, laptop, notebook, or netbook computer, mainframe computer system, handheld computer, workstation, network computer, a camera, a set top box, a mobile device, a consumer device, video game console, handheld video game device, application server, storage device, a peripheral device such as a switch, modem, router, or in general any type of computing or electronic device.

In the illustrated embodiment, computer system <NUM> includes one or more processors <NUM> coupled to a system memory <NUM> via an input/output (I/O) interface <NUM>. Computer system <NUM> further includes a network interface <NUM> coupled to I/O interface <NUM>, and one or more input/output devices <NUM>, such as cursor control device <NUM>, keyboard <NUM>, and display(s) <NUM>. In some embodiments, it is contemplated that embodiments may be implemented using a single instance of computer system <NUM>, while in other embodiments multiple such systems, or multiple nodes making up computer system <NUM>, may be configured to host different portions or instances of embodiments. For example, in one embodiment some elements may be implemented via one or more nodes of computer system <NUM> that are distinct from those nodes implementing other elements.

Computer system <NUM> may be a uniprocessor system including one processor <NUM>, or a multiprocessor system including several processors <NUM> (e.g., two, four, eight, or another suitable number). Processors <NUM> may be any suitable processor capable of executing instructions. For example, in various embodiments, processors <NUM> may be general-purpose or embedded processors implementing any of a variety of instruction set architectures (ISAs), such as the x86, PowerPC, SPARC, or MIPS ISAs, or any other suitable ISA. In multiprocessor systems, each of processors <NUM> may commonly, but not necessarily, implement the same ISA.

In some embodiments, at least one processor <NUM> may be a graphics processing unit. A graphics processing unit or GPU may be considered a dedicated graphics-rendering device for a personal computer, workstation, game console or other computing or electronic device. Modern GPUs may be very efficient at manipulating and displaying computer graphics, and their highly parallel structure may make them more effective than typical CPUs for a range of complex graphical algorithms. For example, a graphics processor may implement a number of graphics primitive operations in a way that makes executing them much faster than drawing directly to the screen with a host central processing unit (CPU). In various embodiments, the image processing methods disclosed herein may, at least in part, be implemented by program instructions configured for execution on one of, or parallel execution on two or more of, such GPUs. The GPU(s) may implement one or more application programmer interfaces (APIs) that permit programmers to invoke the functionality of the GPU(s). Suitable GPUs may be commercially available from vendors such as NVIDIA Corporation, ATI Technologies (AMD), and others.

System memory <NUM> may be configured to store program instructions and/or data accessible by processor <NUM>. In various embodiments, system memory <NUM> may be implemented using any suitable memory technology, such as static random access memory (SRAM), synchronous dynamic RAM (SDRAM), nonvolatile/Flash-type memory, or any other type of memory. In the illustrated embodiment, program instructions and data implementing desired functions, such as those described above for embodiments of a control module for monitoring structural foundations, alerting of potential failures or damage and controlling an irrigation system are shown stored within system memory <NUM> as program instructions <NUM> and data storage <NUM>, respectively. In other embodiments, program instructions and/or data may be received, sent or stored upon different types of computer-accessible media or on similar media separate from system memory <NUM> or computer system <NUM>. Generally speaking, a computer-accessible medium may include storage media or memory media such as magnetic or optical media, e.g., disk or CD/DVD-ROM coupled to computer system <NUM> via I/O interface <NUM>. Program instructions and data stored via a computer-accessible medium may be transmitted by transmission media or signals such as electrical, electromagnetic, or digital signals, which may be conveyed via a communication medium such as a network and/or a wireless link, such as may be implemented via network interface <NUM>.

In one embodiment, I/O interface <NUM> may be configured to coordinate I/O traffic between processor <NUM>, system memory <NUM>, and any peripheral devices in the device, including network interface <NUM> or other peripheral interfaces, such as input/output devices <NUM>. In some embodiments, I/O interface <NUM> may perform any necessary protocol, timing or other data transformations to convert data signals from one component (e.g., system memory <NUM>) into a format suitable for use by another component (e.g., processor <NUM>). In some embodiments, I/O interface <NUM> may include support for devices attached through various types of peripheral buses, such as a variant of the Peripheral Component Interconnect (PCI) bus standard or the Universal Serial Bus (USB) standard, for example. In some embodiments, the function of I/O interface <NUM> may be split into two or more separate components, such as a north bridge and a south bridge, for example. In addition, in some embodiments some or all of the functionality of I/O interface <NUM>, such as an interface to system memory <NUM>, may be incorporated directly into processor <NUM>.

Network interface <NUM> may be configured to allow data to be exchanged between computer system <NUM> and other devices attached to a network, such as other computer systems, or between nodes of computer system <NUM>. In various embodiments, network interface <NUM> may support communication via wired or wireless general data networks, such as any suitable type of Ethernet network, for example; via telecommunications/telephony networks such as analog voice networks or digital fiber communications networks; via storage area networks such as Fibre Channel SANs, or via any other suitable type of network and/or protocol.

Input/output devices <NUM> may, in some embodiments, include one or more display terminals, keyboards, keypads, touchpads, scanning devices, voice or optical recognition devices, or any other devices suitable for entering or retrieving data by one or more computer system <NUM>. Multiple input/output devices <NUM> may be present in computer system <NUM> or may be distributed on various nodes of computer system <NUM>. In some embodiments, similar input/output devices may be separate from computer system <NUM> and may interact with one or more nodes of computer system <NUM> through a wired or wireless connection, such as over network interface <NUM>.

As shown in <FIG>, memory <NUM> may include program instructions <NUM>, configured to implement embodiments of a module for monitoring structural foundations, alerting of potential failures or damage and controlling an irrigation system as described herein, and data storage <NUM>, comprising various data accessible by program instructions <NUM>. In one embodiment, program instructions <NUM> may include software elements of embodiments of a module for monitoring structural foundations, alerting of potential failures or damage and controlling an irrigation system as illustrated in the above Figures. Data storage <NUM> may include data that may be used in embodiments. In other embodiments, other or different software elements and data may be included.

Those skilled in the art will appreciate that computer system <NUM> is merely illustrative and is not intended to limit the scope of a module for monitoring structural foundations, alerting of potential failures or damage and controlling an irrigation system as described herein. In particular, the computer system and devices may include any combination of hardware or software that can perform the indicated functions, including a computer, personal computer system, desktop computer, laptop, notebook, or netbook computer, mainframe computer system, handheld computer, workstation, network computer, a camera, a set top box, a mobile device, network device, internet appliance, PDA, wireless phones, pagers, a consumer device, video game console, handheld video game device, application server, storage device, a peripheral device such as a switch, modem, router, or in general any type of computing or electronic device. Computer system <NUM> may also be connected to other devices that are not illustrated, or instead may operate as a stand-alone system. In addition, the functionality provided by the illustrated components may in some embodiments be combined in fewer components or distributed in additional components. Similarly, in some embodiments, the functionality of some of the illustrated components may not be provided and/or other additional functionality may be available.

Those skilled in the art will also appreciate that, while various items are illustrated as being stored in memory or on storage while being used, these items or portions of them may be transferred between memory and other storage devices for purposes of memory management and data integrity. Alternatively, in other embodiments some or all of the software components may execute in memory on another device and communicate with the illustrated computer system via inter-computer communication. Some or all of the system components or data structures may also be stored (e.g., as instructions or structured data) on a computer-accessible medium or a portable article to be read by an appropriate drive, various examples of which are described above. In some embodiments, instructions stored on a computer-accessible medium separate from computer system <NUM> may be transmitted to computer system <NUM> via transmission media or signals such as electrical, electromagnetic, or digital signals, conveyed via a communication medium such as a network and/or a wireless link. Various embodiments may further include receiving, sending or storing instructions and/or data implemented in accordance with the foregoing description upon a computer-accessible medium. Accordingly, the present invention may be practiced with other computer system configurations.

Various embodiments may further include receiving, sending or storing instructions and/or data implemented in accordance with the foregoing description upon a computer-accessible medium. Generally speaking, a computer-accessible medium may include storage media or memory media such as magnetic or optical media, e.g., disk or DVD/CD-ROM, volatile or non-volatile media such as RAM (e.g. SDRAM, DDR, RDRAM, SRAM, etc.), ROM, etc., as well as transmission media or signals such as electrical, electromagnetic, or digital signals, conveyed via a communication medium such as network and/or a wireless link.

Claim 1:
A system (<NUM>, <NUM>), comprising:
a remote processing system (<NUM>, <NUM>) configured to:
receive from one or more local controllers (<NUM>, <NUM>) an indication of change or changes in orientation of a foundation (<NUM>) detected by one or more inclination sensors (<NUM>);
generate, based on analyzing the change or changes in the orientation of the foundation (<NUM>), a command to control an air bag or pneumatic system to lift one or more portions of the foundation (<NUM>); and
transmit the generated command to the one or more local controllers (<NUM>, <NUM>) to instruct the one or more local controllers (<NUM>, <NUM>) to control the air bag or pneumatic system to raise the foundation (<NUM>).