Patent Publication Number: US-9894887-B2

Title: System for remotely monitoring a feed environment

Description:
FIELD 
     This disclosure relates to a remote monitoring system. More specifically, this disclosure relates to a system for remotely monitoring an environment in which organisms feed. 
     BACKGROUND TECHNOLOGY 
     Honey bees play an important role in the earth&#39;s ecosystem. According to one source, bees pollinate 15 to 30% of all food eaten by United States consumers, with an economic benefit estimated as high as $117 billion annually. As to the honey that bees produce, the U.S. Department of Agriculture indicated that in 2002, more than $130 million of raw honey produced in the United States. 
     In the practice of beekeeping, bees are fed with pre-mixed sugar water, which is placed in a container, such as a 55-gallon drum, which can be placed a certain distance, typically around 24 meters (80 ft.) from managed beehives. Estimating feed rate (consumption) is challenging and remote site visits can routinely reveal anything from hardly any drop in the level of sugar water to a completely empty drum for some unknown time. One skilled in the art will appreciate that having the ability to check, for example and without limitation, the sugar water drum level remotely within a matter of seconds would not only save time by not having to drive to a remote site but also would save automobile fuel, thus minimizing honey manufacturing costs. Furthermore, beehives need to be kept dark and temperature-controlled. If any light level other than zero is present inside a beehive, it means that the hive has been breached by the outside—usually either by an animal looking for food or by vandals. Therefore, it would also be advantageous to remotely verify continued darkness inside a hive to quickly address the event of a beehive breach. 
     SUMMARY 
     Disclosed is a remote monitoring system and a method of remotely monitoring a feed environment. In one aspect, the remote monitoring system can be configured to sense feed stored within a filled container. In this aspect, the feed has a top feed surface when it is stored in the container. In one aspect, the remote monitoring system can comprise a local module that can be configured to be suspended above the filled container. In this aspect, it is contemplated that the local module can comprise a local microcontroller, a feed level sensor electrically coupled to the local microcontroller, and communication unit electrically coupled to the local microcontroller. In one aspect, the feed level sensor can be configured to determine a distance between the level sensor and the top feed surface of the feed. In another aspect, the communication unit can be configured to exchange data with the local microcontroller and to wirelessly send data to a communication device of a user. 
     In a further aspect, the method of remotely monitoring feed stored within a filled container can comprise generating feed level data from a sensed level of feed stored within a filled container and transmitting feed level data over a first communication link to a communication device of a user. In one aspect, the method of remotely monitoring feed can further comprise measuring environmental conditions at the local location of the filled container measured and, optionally, environmental conditions at a location remote from the container. 
     Various implementations described in the present disclosure can include additional systems, methods, features, and advantages, which can not necessarily be expressly disclosed herein but will be apparent to one of ordinary skill in the art upon examination of the following detailed description and accompanying drawings. It is intended that all such systems, methods, features, and advantages be included within the present disclosure and protected by the accompanying claims. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The features and components of the following figures are illustrated to emphasize the general principles of the present disclosure. Corresponding features and components throughout the figures can be designated by matching reference characters for the sake of consistency and clarity. 
         FIG. 1  is a partially-exploded perspective view of a beehive having a conventional construction, except showing a remote module (shown as a slave module), positioned between inner and outer covers of the beehive. 
         FIG. 2  is a top view of a remote monitoring system for a feeding environment for bees. 
         FIG. 3  illustrates an exemplary schematic diagram of an environment through which data is exchanged between a cellular modem in a master module, constructed according to one embodiment of the current disclosure, and an electronic communication device of an end user. 
         FIG. 4  is a perspective view of an assembly showing a local module (shown as a master module), associated solar panels for charging a power supply in that module positioned atop an open container of liquid feed for bees, and showing the transmission of ultrasonic pulses to measure the level of liquid feed within the container. 
         FIG. 5  is a perspective view of a partially-filled container illustrating dimensions associated with the determination of feed level within a container, including the dimension “D” detectable by a level sensor of the local module illustrated in  FIG. 4 . 
         FIG. 6  is a bottom view of the assembly illustrated in  FIG. 4 . 
         FIG. 7  is a detailed bottom view taken from the callout section appearing in  FIG. 6 . 
         FIG. 8  is a schematic illustration showing connected components of a master module. 
         FIG. 9  is a schematic illustration showing connected components of a slave module. 
         FIGS. 10A and 10B  are perspective views showing an exemplary support structure for a master module assembly for detecting the level of solid feed for other animals. 
         FIG. 10C  is a schematic diagram showing parameters in feed height determinations in a solid feed environment such as that illustrated in  FIGS. 10A and 10B . 
         FIGS. 11A and 11B  illustrate a flow diagram of an exemplary method to cause a master module to read feed level and, optionally, temperature and humidity at a location local to a feed container, and to then send a text (SMS) communication to a user&#39;s electronic communication device containing data regarding the magnitudes of the measured parameters and the locations where each parameter was measured. 
         FIGS. 12A and 12B  illustrate a flow diagram of an exemplary method to cause a slave module to read data from sensors measuring temperature, humidity, and light level at a location remote from the local module, and to transmit that data via an onboard radio to another radio located at the local module. 
         FIGS. 13A and 13B  illustrate a flow diagram of exemplary method in which a master module is caused to read feed level and, optionally, temperature and humidity at a location local to a feed container, and to then write data to a database on a server instead of exchanging text messages. 
     
    
    
     DETAILED DESCRIPTION 
     The present invention can be understood more readily by reference to the following detailed description, examples, drawings, and claims, and their previous and following description. However, before the present devices, systems, and/or methods are disclosed and described, it is to be understood that this invention is not limited to the specific devices, systems, and/or methods disclosed unless otherwise specified, and, as such, can, of course, vary. It is also to be understood that the terminology used herein is for the purpose of describing particular aspects only and is not intended to be limiting. 
     The following description of the invention is provided as an enabling teaching of the invention in its best, currently known embodiment. To this end, those skilled in the relevant art will recognize and appreciate that many changes can be made to the various aspects of the invention described herein, while still obtaining the beneficial results of the present invention. It will also be apparent that some of the desired benefits of the present invention can be obtained by selecting some of the features of the present invention without utilizing other features. Accordingly, those who work in the art will recognize that many modifications and adaptations to the present invention are possible and can even be desirable in certain circumstances and are a part of the present invention. Thus, the following description is provided as illustrative of the principles of the present invention and not in limitation thereof. 
     As used throughout, the singular forms “a,” “an” and “the” include plural referents unless the context clearly dictates otherwise. Thus, for example, reference to “a transmitter” can include two or more such transmitters unless the context indicates otherwise. 
     Ranges can be expressed herein as from “about” one particular value, and/or to “about” another particular value. When such a range is expressed, another aspect includes from the one particular value and/or to the other particular value. Similarly, when values are expressed as approximations, by use of the antecedent “about,” it will be understood that the particular value forms another aspect. It will be further understood that the endpoints of each of the ranges are significant both in relation to the other endpoint, and independently of the other endpoint. 
     As used herein, the terms “optional” or “optionally” mean that the subsequently described event or circumstance can or cannot occur, and that the description includes instances where said event or circumstance occurs and instances where it does not. 
     The word “or” as used herein means any one member of a particular list and also includes any combination of members of that list. Further, one should note that conditional language, such as, among others, “could,” “might,” or “can,” unless specifically stated otherwise, or otherwise understood within the context as used, is generally intended to convey that certain aspects include, while other aspects do not include, certain features, elements and/or Steps. Thus, such conditional language is not generally intended to imply that features, elements and/or steps are in any way required for one or more particular aspects or that one or more particular aspects necessarily include logic for deciding, with or without user input or prompting, whether these features, elements and/or steps are included or are to be performed in any particular embodiment. 
     Disclosed are components that can be used to perform the disclosed methods and systems. These and other components are disclosed herein, and it is understood that when combinations, subsets, interactions, groups, etc. of these components are disclosed that while specific reference of each various individual and collective combinations and permutation of these may not be explicitly disclosed, each is specifically contemplated and described herein, for all methods and systems. This applies to all aspects of this application including, but not limited to, steps in disclosed methods. Thus, if there are a variety of additional steps that can be performed it is understood that each of these additional steps can be performed with any specific embodiment or combination of embodiments of the disclosed methods. 
     The present methods and systems may be understood more readily by reference to the following detailed description of preferred embodiments and the Examples included therein and to the Figures and their previous and following description. 
     Unless specifically stated otherwise, and as may be apparent from the following description and claims, it should be appreciated that throughout the speciation descriptions utilizing terms such as “processing,” “computing, calculating,” “determining,” or the like, refer to the action and/or processes of a computer or computing system, or similar electronic computing device, that manipulate and/or transform data represented as physical, such as electronic, quantities within the computing system&#39;s registers and/or memories into other data similarly represented as physical quantities within the computing system&#39;s memories, registers or other such information storage, transmission or display devices. In a similar manner, the term “processor” may refer to any device or portion of a device that processes electronic data from registers and/or memory to transform that electronic data into other electronic data that may be stored in registers and/or memory. A “computing platform” may comprise one or more processors 
     As will be appreciated by one skilled in the art, the methods and systems may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, the methods and systems may take the form of a computer program product on a computer-readable storage medium having computer-readable program instructions (e.g., computer software) embodied in the storage medium. More particularly, the present methods and systems may take the form of web-implemented computer software. Any suitable computer-readable storage medium may be utilized including hard disks, CD-ROMs, optical storage devices, or magnetic storage devices. 
     Embodiments of the methods and systems are described below with reference to block diagrams and flowchart illustrations of methods, systems, and apparatuses. It will be understood that each block of the block diagrams and flowchart illustrations, and combinations of blocks in the block diagrams and flowchart illustrations, respectively, can be implemented by computer program instructions. These computer program instructions may be loaded onto a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions which execute on the computer or other programmable data processing apparatus create a means for implementing the functions specified in the flowchart block or blocks. 
     These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including computer-readable instructions for implementing the function specified in the flowchart block or blocks. The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational Steps to be performed on the computer or other programmable apparatus to produce a computer-implemented process such that the instructions that execute on the computer or other programmable apparatus provide Steps for implementing the functions specified in the flowchart block or blocks. 
     Accordingly, blocks of the block diagrams and flowchart illustrations support combinations of means for performing the specified functions, combinations of steps for performing the specified functions and program instruction means for performing the specified functions. It will also be understood that each block of the block diagrams and flowchart illustrations, and combinations of blocks in the block diagrams and flowchart illustrations, can be implemented by special purpose hardware-based computer systems that perform the specified functions or steps, or combinations of special purpose hardware and computer instructions. 
     It is contemplated that the processor or computer of the present application can operate in a networked environment using logical connections to one or more remote computing devices. By way of example, a remote computing device can be a personal computer, portable computer, a server, a router, a network computer, a peer device or other common network node, and so on. Logical connections between the processor or computer and a remote computing device can be made via a local area network and a general wide area network. Such network connections can be through a network adapter. It is further contemplated that such a network adapter can be implemented in both wired and wireless environments, which are conventional and commonplace in offices, enterprise-wide computer networks, intranets, and the Internet. 
     It is recognized that programs and components reside at various times in different storage components of the computing device, and are executed by the data processor(s) of the computer. Any of the disclosed methods can be performed by computer readable instructions embodied on computer readable media. Computer readable media can be any available media that can be accessed by a computer. By way of example and not meant to be limiting, computer readable media can comprise “computer storage media” and “communications media.” “Computer storage media” comprise volatile and non-volatile, removable and non-removable media implemented in any methods or technology for storage of information such as computer readable instructions, data structures, program modules, or other data. Exemplary computer storage media comprises, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by a computer. 
     The methods and systems can employ Artificial Intelligence techniques such as machine learning and iterative learning. Examples of such techniques include, but are not limited to, expert systems, case based reasoning, Bayesian networks, behavior based AI, neural networks, fuzzy systems, evolutionary computation (e.g. genetic algorithms), swarm intelligence (e.g. ant algorithms), and hybrid intelligent systems (e.g. Expert inference rules generated through a neural network or production rules from statistical learning). 
     In one aspect, disclosed is a remote monitoring system, comprising a local module, the local module configured to be suspended above a container fillable with feed, the feed when present in the container having a top feed surface. The local module comprises a local microcontroller, a feed level sensor electrically coupled to the local microcontroller, the feed level sensor configured to determine a distance between the level sensor and the top feed surface, and a communication unit, such as a cellular modem, electrically coupled to the local microcontroller, the communication unit being configured to exchange data with the local microcontroller and to wirelessly send data to a communication device of a user. It would be understood by one of skill in the art that the disclosed remote monitoring system is described in but a few exemplary embodiments among many. No particular terminology or description should be considered limiting on the disclosure or the scope of any claims issuing therefrom. 
     In another aspect of the current disclosure, the local module of the remote monitoring system can further include a renewable power unit electrically coupled to the local microcontroller and at least one solar panel electrically coupled to the renewable power unit. The renewable power unit can comprise a trickle charger, the trickle charger having a charger input and a charger output, the charger input connected to the at least one solar panel, a renewable power source having a source input and a source output, the source input connected to the charger output, and a dc-to-dc converter having a converter input and a converter output, the converter input connected to the source output, the converter output connected to the local microcontroller. 
     In another aspect of the current disclosure, the local module can further comprise a receiver and a local temperature-and-humidity sensor electrically coupled to the communication unit, and the remote monitoring system can further comprise a remote module configured for placement at a location remote from the local module, the remote module comprises a remote microcontroller, a light sensor electrically coupled to the remote microcontroller, and a transmitter electrically coupled to the remote microcontroller, the transmitter configured to communicate with the receiver. The remote module can further comprise a remote temperature-and-humidity sensor coupled to the remote microcontroller. 
     In another aspect of the current disclosure, a method of remotely monitoring a feed environment comprises the steps of generating feed level data from a sensed level of feed stored within a container, and causing a transmission of the feed level data over a first communication link to a communication device of a user. The transmission of feed level data can comprise the steps of comparing the feed level data to a predetermined threshold level, and conditioning the transmission of feed level data on the inclusion of a value in the feed level data that is less than the predetermined threshold level. Such transmission can also be triggered the receipt of a message from the sender, and sending a reply communication to the sender, the reply communication including the feed level data. 
       FIG. 1  illustrates a beehive  10  used by beekeepers to manage bee colonies and having a conventional construction, except for the presence of a remote module  20 , positioned between an inner cover  16  and an outer cover  18 , constructed according to an embodiment of the present disclosure and to be described in detail later herein. The beehive  10  is shown having several components not material to the present disclosure and which are therefore not described.  FIG. 1  illustrates an example of a “remote location,” as that term is used in the present disclosure. Beehive  10  can incorporate several conventional components including a stand  12  resting on a ground G, and an enclosure  14  for containing a plurality of frames  15  that facilitate the bees&#39; construction of honeycombs. The inner cover  16  is positioned atop the enclosure  14 , and the inner cover  14  has an upper surface  17  into which an aperture  22  is formed. Outer cover  18  can be further provided to protect the internal hive space from weather conditions. The remote module  20  can have an outer case  21 , which can have an open top or a lid, depending on design preference. As shown in  FIG. 1 , the remote module  20  can be simply placed on the upper surface  17  of the inner cover  16 . Module  20  can be placed within the hive in any other suitable manner, including attaching it to an inner wall of the outer cover  18 . 
       FIGS. 2-10  illustrate particular components, modules, instructions, engines, etc. according to various examples as described herein. In different implementations, more, fewer, and/or other components, modules, instructions, engines, arrangements of components/modules/instructions/engines, etc. can be used according to the teachings described herein. In addition, various components, modules, engines, etc. described herein can be implemented as instructions stored on a computer-readable storage medium, as hardware modules, as special-purpose hardware (e.g., application specific hardware, application specific integrated circuits (ASICs), as embedded controllers, hardwired circuitry, etc.), or as some combination or combinations of these. 
       FIG. 2  illustrates a top view of a remote monitoring system  100  integrated into a feed environment, here a feed environment for bees, with the system  100  shown constructed according to one embodiment of the present disclosure. Though the system  100  is discussed principally in the context of liquid feed for bees, it can also be employed for solid feed eaten by different animals, to be described with regard to  FIGS. 10A and 10B . System  100  comprises a local (master) module  19 , shown encased in an enclosure or housing  24  that is supported by cross-members  26 ,  28 , which rest on a rim  31  of a feed container  30 . The container  30  can be a barrel, a 55-gallon drum, or any other receptacle having an opening accessible by bees and that can contain a suitable quantity of liquid feed for the bees. The container  30  and local module  19  are shown centrally positioned with respect to four beehives  10   a , 10   b , 10   c , 10   d , and spaced from the beehives by respective distances d 1 , d 2 , d 3 , d 4 . Typically, beehives are spaced from a feeding container by a distance of approximately 24 m (80 ft.), though with more than one hive  10 , it is not essential that all hives  10  be spaced equidistantly from the container  30 . Furthermore, in an embodiment constructed according to the present disclosure, the local module  19  can communicate with one or more local modules over a distance of approximately 100 m (328 ft.), in a manner to be described herein. 
     Referring again to  FIG. 2 , system  100  also comprises one or more remote (slave) modules  20   a , 20   b , 20   c , 20   d , respectively housed in beehives  10   a , 10   b , 10   c , 10   d  beneath corresponding outer covers  18   a , 18   b , 18   c , 18   d , in the manner exemplified in  FIG. 1 . Although  FIG. 2  shows four hives with four associated modules, the quantity of such items is not important and is provided only to illustrate that a local module can communicate with more than one remote module. The modules  19 ,  20  communicate with one another in a master-slave architecture over a radio frequency (RF) band, which may be a 2.4 GHz ISM (Industrial, Scientific, and Medical) band, although the disclosure of a particular RF band herein is not to be considered limiting, as other frequencies may be used. By way of example, as disclosed herein, local module  19  functions as the master module and remote module  20  functions as the slave module. However, it is contemplated that the roles could be reversed such that the local module  19  would function as a slave module and the remote module  20  as the master module. It is also contemplated that system  100  can employ only a master module, without slave modules, if it is desired only to take feed level readings at container  30  and not any readings of conditions within the beehives  10   a , 10   b , 10   c , 10   d.    
       FIG. 2  illustrates wireless communication links  32   a , 32   b , 32   c , 32   d  between the local module  19 , on one hand, and corresponding remote modules  20   a , 20   b , 20   c , 20   d , on the other hand. In a manner to be explained herein, local module  19  is configured and programmed to wirelessly communicate with those remote modules  20   a , 20   b , 20   c , 20   d.    
       FIG. 3  illustrates additional communication links through which system  100  operates. Specifically, each master module (here, local module  19 ) comprises a communication unit, such as a cellular modem  34 , configured to exchange data, via communication link  37 , with a local microcontroller  36  in the local module  19 . Cellular modem  34  also shares a communication link  38  with local radio  40 , also located in the local module  19 , the local radio  40 , in one aspect of the present disclosure, receiving communications from a remote module  20  via one of the communication links  32   a , 32   b , 32   c , 32   d  (shown in  FIG. 2 ), thus functioning as a receiver. The local microcontroller  36  and the local radio  40  communicate with one over a serial peripheral interface (SPI), which allows the local microcontroller  36  and the local radio  40  to communicate with one another in full duplex mode. Cellular modem  34  wirelessly sends data from an antenna (shown in  FIG. 8 ), across communication link  42 , and then to a network  44 , which is connected via another communication link  46  to a communication device, such as a smartphone  48 , of a user  50 . Depending on the form of communication sent, the communication device  48  used need not be limited to a smartphone but could comprise laptop computers and tablets, among other devices capable of electronically retrieving communicated information. The communication links shown in  FIGS. 2 and 3  represent a network or networks that can comprise hardware components and computers interconnected by communications channels that enable sharing of resources and information. The network can comprise one or more of a wired, wireless, fiber optic, or remote connection via a telecommunication link, an infrared link, a radio frequency link, a cellular link, a Bluetooth® link, or any other suitable connectors or systems that provide electronic communication. The network can comprise intermediate proxies, routers, switches, load balancers, and the like. The paths followed by the network between the devices as depicted in  FIGS. 2 and 3  represent the logical communication links between a remote module  19 , the local radio  40 , the local microcontroller  36 , the cellular modem  34 , and the communication device (smartphone)  48 , not necessarily the physical paths or links between and among the devices. 
       FIGS. 4-7  illustrate a local module assembly  51  positioned relative to liquid feed  52  within the container  30 , as well as instrumentation by which local module  19  detects the level of the liquid feed  52  within the container  30 . In this manner, local module  19  is suspended above the container  30  containing the liquid feed  52 . 
     Referring to  FIG. 4 , assembly  51  comprises the local module  19 , encased within its housing  24 , supported by the cross-members  26 , 28  as described previously. Cross-member  26  has an upper surface  54 , while cross-member  28  has upper surfaces  56   a , 56   b . Assembly  51  also comprises at least one solar panel, which can be an arrangement of three solar panels  58 , 60 , 62  supported by and attached to upper surfaces  54 , 56   a , 56   b , respectively. The solar panels  58 , 60 , 62  are electrically coupled to a renewable power unit ( FIG. 8 ) inside the enclosure  24  via wires  64 , 66 , 68 , respectively, which run from solar panels  58 , 60 , 62  to an aperture  70  formed into a sidewall  72  of the local module housing  24 . 
     Referring to  FIGS. 6 and 7 , a bottom view of local module assembly  51  shows cross-member  26  having a bottom surface  74 , and cross-member  28  having a bottom surface  76 . A notch can be formed into bottom surface  74  so that cross-member  28  fits within cross-member  26  as in a tongue-and-groove connection, such that bottom surfaces  74 , 76  are flush with one another. Additionally, a window  78  is formed by cutting an opening into bottom surface  76 , which can extend through the thickness of cross-member  28 . Window  78  accommodates a level sensor  80 . In one aspect of the present disclosure, level sensor  80  is an ultrasonic ranging module having a sonic transmitter  82  and a sonic receiver  84 , commercially available under Model No. HC-SR04, which can provide a ranging accuracy to 3 mm to determine a distance. In this form, level sensor  80  emits eight 4 kHz ultrasonic pulses from sonic transmitter  82  and detects whether a return pulse signal has been reflected back to the sonic receiver  84  from a given surface, to detect a distance between the sensor  80  and that given surface. If a return pulse signal is detected, sensor  80  measures the time from the sending of the ultrasonic pulse at the sonic transmitter  82  to receipt of a reflected pulse at the sonic receiver  84 . To determine distance, the measured time is multiplied by the speed of sound (340 m/s), and that product is divided by two. It is contemplated that level sensor  80  could take other forms, such as a time-of-flight sensor (using infrared light to determine distance) or a LADAR sensor (using laser light to determine distance). 
       FIG. 7  also shows that the local module housing  24  has a bottom panel  90  having an outer edge  92  and a reduced portion  94  receding inwardly from outer edge  92 , forming an opening  96  at a corner portion  98  of the housing  24 . A local temperature-and-humidity sensor  102  is exposed by the opening  96  to enable the reading of atmospheric temperature and humidity at the container  30 , when the assembly  51  is positioned as shown in  FIG. 4 . Local temperature-and-humidity sensor  102  can be a sensor commercially available from D-Robotics UK under Model No. DHT-11, which has many libraries available for quick programming and which is compatible with commonly-available programmable microcontrollers. 
     Referring to  FIGS. 4 and 5 , when the local module assembly  51  is oriented as shown in  FIG. 4 , the sonic transmitter  82  and sonic receiver  84  of level sensor  80  ( FIGS. 6 and 7 ) face a top feed surface  35  of the liquid feed  52  in the container  30 . When level sensor  80  is prompted to take a reading (in manner to be described), level sensor  80  emits ultrasonic pulses  86 , which bounce off of top feed surface  35  and are detected as returned pulses  88 . Level sensor  80  is thereby able to determine the distance “D” illustrated in  FIG. 5 , in the manner discussed above with regard to  FIGS. 6 and 7 . The value reported by the level sensor  80  is expressed in terms of a percent of the overall height H of the container  30 . Alternatively, the height “h” could be expressed in the reading directly as the measured percent times the overall height H. 
       FIG. 8  is a schematic diagram illustrating the connections of the devices that together comprise a master module, such as local module  19 . A programmable local microcontroller  36  is provided, and in one aspect of the current disclosure can be an Arduino Uno® microcontroller, though other microcontrollers may be suitable for other designs of system  100 , and the disclosure is a particular type or brand of microcontroller is not to be considered limiting. Level sensor  80  is electrically coupled to the local microcontroller  36 , via wired connections such as at  105 , the sensor  80  shown positioned on a commercially-available breadboard  106  having shared power and ground along columns of holes at power strips  106   a,b , with central portions such as  106   c  sharing power and ground along rows of holes. Through the breadboard  106  and wired connections such as at  107 , the local temperature-and-humidity sensor  102 , described above with regard to  FIG. 7 , is also electrically coupled to the local microcontroller  36 . The communication unit  40  is shown electrically coupled to the local microcontroller  36  via wires such as at  108 . In one aspect of the present disclosure, communication unit  40  a cellular modem commercially available from SIMCom Wireless Solutions (in China) under the name “Sim900.” The Sim900 modem is suitable for 2G networks supported in the United States by AT&amp;T and T-Mobile Corporation, and such a card allows data transmission utilizing both GSM (global system for mobile communications) and GPRS (general radio packet service) technologies. Cellular modem (communication unit)  34  comprises an antenna  41  connected by a coupling  43  to a lead  45  connecting to internal circuitry of the cellular modem  34 , thus allowing the cellular modem  34  to communicate data wirelessly to a user, as previously described with regard to  FIG. 3 . The Sim900 modem is advantageous for its compatibility with Arduino Uno® microcontrollers, as well as its low cost and easily programmable platform. However, it is contemplated that other modems could be used, especially if it is desired to communicate over 3G or 4G networks; the local module  19  would be compatible with such modems as well. 
     If it is desired for the local module  19  to communicate with a remote module, the local module can be further provided with a local radio  40  which, in one aspect of the present disclosure, can be commercially available from Nordic Semiconductor under Model No. nRF24. Such a radio, used for both modules  19 ,  20 , is a transceiver and is advantageous for its ability to interface with a programmable microcontroller, as well as for its reliability and effective range (approximately 300 yards). Local radio  40  is shown electrically coupled both to the local microcontroller  36  via wires such as shared wire  108  and to the cellular modem  34  via wires such as at  112 . 
     Also shown in  FIG. 8 , in one embodiment of the current disclosure, the local module  19  can further comprise a renewable power unit  114  electrically coupled to the local microcontroller  36  and to the solar panels  58 , 60 , 62 . The solar panels  58 , 60 , 62  are connected in parallel to one another, forming an arrangement  116  configured to produce a current output of approximately one ampere (range of 0.95-0.99 mA in sunlight), and a voltage output of 6 V. The renewable power unit  114  comprises a trickle charger  118  having a charger input  118   a  and a charger output  118   b . In one embodiment of the current disclosure, trickle charger can be a 5-volt charger commercially available under Model No. TP4056. The charger input  118   a  is connected to solar panels  58 , 60 , 62  via wiring  119 . The renewable power unit  114  further comprises a renewable power source which can comprise a pair of renewable lithium-ion batteries  120   a,b , having a source input  120   c  and a source output  120   d . The source input  120   c  is connected to the charger output  118   b . The renewable power unit  114  also comprises a dc-to-dc converter  122  having a converter input  123  and a converter output  122   b , which is used to convert the 3.7 V output from the lithium-ion batteries  120   a,b  to 5V needed to power the local microcontroller  36  and the cellular modem  34 . The converter input  123  is connected to the source output  122   d , and the converter output  122   b  connected via power wire  123  to power strip  106   a  of the breadboard  106 , and via ground wire  125  to power strip  106   b  of breadboard  106 . Given the connections shown between the breadboard  106 , and the connected components and wiring shown in  FIG. 5 , the local microcontroller  36  and cellular modem  34  are together powered by the renewable power unit  114  and the solar panels  58 , 60 , 62 . 
       FIG. 9  is a schematic diagram illustrating the connections of the devices that together comprise a slave module, such as remote module  20 . A programmable remote microcontroller  126  is provided, and in one aspect of the current disclosure can be a microcontroller commercially available from Texas Instruments, under Model No. MSP430. Local microcontroller  126  is shown having connections to various components via a breadboard  128 , functionally identical to breadboard  106  ( FIG. 5 ). Breadboard  128  is connected to a power source  129 , which in one embodiment of the present disclosure, can comprise two AAA batteries, with a typical capacity of 1.1 amp hours. A light sensor  130  is electrically coupled to the remote microcontroller  126  via wiring such as at  132 . In one embodiment of the present disclosure, light sensor  130  is a photoresistor commercially available from Senba Optical &amp; Electric Company (in China) under Model No. GL5549. Since the level of light to be measured inside a hive does not require a high degree of accuracy (since one only needs to know whether a hive interior has remained dark), a photoresistor such as the GL5549 model is ideally suited to operate in a remote module constructed according to embodiments of the present disclosure. The slave (remote) module  20  further comprises a remote radio  134  electrically coupled to the remote microcontroller  126  via wiring such as at  135 . The remote radio  134  is configured to communicate with the local radio  40  ( FIGS. 3 and 8 ) and, in one aspect of the present disclosure, remote radio  134  specifically functions as a transmitter of communications to local radio  40 . Ideally the two radios  110 ,  134  are of the same make and model, though this is not required. The remote module  20  can further comprise a remote temperature-and-humidity sensor  136  electrically coupled to the remote microcontroller  126  via wiring such as at  137 . In one embodiment of the present disclosure, sensor  136 , like sensor  102  ( FIGS. 7 and 8 ) is available under the DHT-11 designation. 
     Though  FIGS. 8 and 9  illustrate the module components connected with wiring and using breadboards, it is also contemplated that the various module components could instead be connected to one another in a single integrated circuit. 
       FIGS. 10A and 10B  illustrate use of a monitoring system  100 ′ constructed identically, and functioning identically to the feeding system  100  described in the preceding figures, but placed in a solid feed environment. A wide variety of support structures such as at  700  can be used to suspend a local module  719  above a container  730  of solid feed  752 . Structure  700  can comprise a roof  702  having a top surface  704  and a bottom surface  720 , the roof  702  being supported by legs  706 , 707 . The top surface  704  can have openings in it so as to accommodate one or more solar panels  758 , 760 , 762 , functioning to charge a renewable power unit in the local module  719 , in the same manner described with regard to  FIG. 8 . The solid feed remote monitoring system  100 ′ can comprise a remote module (not shown) located at a place where land-based animals congregate, such as a barn, in order to monitor conditions in such locations. 
     Uses of containers such as at  730 , and of solid feed  752 , can require differing techniques in how a solid feed level is calculated or otherwise ascertained, in comparison to a liquid level as described above. For example,  FIG. 10C  schematically illustrates the structure  700  shown in  FIGS. 10A and 10B , including the roof  702  and legs  706 ,  707 , with the local module  719  projecting downwardly from the roof  702 , and with a level sensor  780  present in local module  719 . The level sensor  780  is shown as an ultrasonic ranging module, of the same construction described above for reference character  80  ( FIGS. 7-9 ), though other types of sensors may be used. Container  730 , having a top rim  731 , is shown positioned on the ground beneath the local module  719  and level sensor  780 . The configuration shown in  FIG. 10C  involves a “blank” distance B, which is the distance from the roof  702  to the container rim  731 ; a “span” distance S, which may be the height of the container  730 ; and a distance D′, which is measured by the level sensor  780  in the same manner as described for sensor  80  ( FIGS. 7-9 ). In the configuration shown, fill level F can be determined by either of the following formulas, depending on whether F is expressed as an absolute value (such as in inches or meters) or as a percentage:
 
 F [abs. value]= S+B−D ′, or
 
 F [%]=( S+B−D )/( S+B ).
 
       FIGS. 11A and 11B  illustrate a flow diagram of a method  800  to cause a master module (here, the local module  19  by way of example) to read feed level and, optionally, temperature and humidity at a location local to the feed container  30  ( FIG. 4 ), and to then send a communication to a user&#39;s electronic communication device containing data regarding the magnitudes of the measured parameters and the locations where each parameter was measured. Method  800  comprises steps subdivided into initialization, setup, and loop groups  802 ,  812 , and  822 , respectively. 
     Referring to  FIG. 11A , the steps of initialization group  802  are only run once, at the programming stage by the system manufacturer. At block  804 , where the method  800  begins, libraries are loaded by the instructions programmed into the local microcontroller  36  ( FIGS. 3 and 8 ). The method  800  continues to block  806 , where the pin address and modes are set, meaning that pins of the local microcontroller  36  are assigned to communicate with certain other components of system  100 . For example, certain pins of microcontroller  36  can be set as described in below. 
                                     System 100 Device with which Set       Microcontroller Pins Set   Microcontroller Pins will Communicate                  PORTD, pin 7;    Cellular modem 34       PORTB, pins 0 &amp; 1           PORTC, pin 1   Temperature-and-Humidity Sensor 102       PORTD, pins 5 &amp; 6;    Local and Remote radios 110, 134       PORTB, pins 3, 4, &amp; 5                    
As to an example of a mode setting (in other words, configuring a microcontroller with a library), for either of the temperature-and-humidity sensors  102 ,  136  ( FIGS. 7 and 9 , respectively), the mode can be set to “dht11,” to reflect the DHT-11 model number of the sensors  102 ,  136  that can be employed in system  100 . The recitation of a particular model of such sensors, however, is not to be considered limiting.
 
     At block  808 , constants are set. The steps at block  808  can comprise assigning variables for a radio address, light sensor reading minimum valve, and light sensor reading maximum value. Method  800  then continues to block  810 , where the buffer in a memory register of the local microcontroller  36  is initialized. The step at block  810  can comprise assigning a variable for a placeholder, 17 integers long, for placeholder data to send to the local radio  40 . However, the placeholder could be as much as 32 bytes, depending on data requirements. 
     Following the buffer initialization in block  810 , method  800  continues to the setup group  812 . Like the steps of group  802 , the steps of group  812  are only run once, and are performed by the local microcontroller  36 . At block  813 , the local microcontroller  36  sends a power-on signal to the cellular modem  34  (shown in  FIGS. 3 and 8 ). Then, at block  814 , a delay occurs, the purpose of which is to allow the cellular modem  34  to wake up before the microcontroller  36  executes any other tasks. At decision block  815 , the microcontroller  36  is instructed to do nothing for a pre-programmed delay period, for example, three seconds. Until that time elapses, the method  800  loops back to the delay block  814 , and nothing happens. Upon the elapsing of the delay period (exemplified in block  815  as three seconds), the method  800  continues to block  816 . Next, at block  816 , the universal asynchronous receiver/transmitter (“UART”) microchip in the local microcontroller  36  is configured and started, which enables the serial port and sets the baud rate, for example, to 19200 bps. Method  800  then continues to block  818  of setup group  812 , in which the local radio  40  is configured. Programmed configuration instructions instruct the local microcontroller  36  to communicate with the local radio  40  ( FIG. 5 ) over the SPI interface, set radio speed and frequency, and activate the cyclic redundancy check (CRC). Upon configuration of the local radio  40 , the method  800  continues to block  820 , in which the local radio  40  begins to operate in receive mode. In that mode, the local radio  40  is set to receive signals from a remote radio (such as the remote radio  134  in  FIG. 6 ). 
     Referring to  FIG. 11B , method  800  continues to loop group  822 . An encircled symbol “A”  824  serves as a loop marker denoting the start of the loop group  822 , and serves as a reference point to indicate when the steps in loop group  822  will repeat. The first step in loop group  822  is at block  826 , where the local radio  40 , which was set to operate in receive mode (block  820 ,  FIG. 11A ), receives a signal from the remote radio  134 , and stores that signal in a buffer within the memory of the local microcontroller  36 . Additionally, the local microcontroller  36  not only receives the signal from the remote radio  134  via its own radio  110 , it also receives any signals sent by the cellular modem  34  ( FIG. 8 ). At block  828 , the local microcontroller  36  queries whether a signal has been received from the cellular modem  34 . Absent such a signal, the method  800  goes to decision block  830 , where the microcontroller  36  prompts the level sensor  80  ( FIGS. 4-7 ) to sense the level of feed within the container  30  ( FIGS. 2 &amp; 3 ). The local microcontroller then compares the feed level data received from the level sensor  80  to a predetermined threshold level, which may be stored in a memory of the local microcontroller  36  during programming or initiation steps. In one aspect of the current disclosure, the threshold level can be “15%,” though the system  100  can allow the end user to enter a custom threshold value, or even deactivate level reporting by entering a negative value. Referring again to block  830 , if the detected feed level is at or above the predetermined threshold level, the method  800  loops back to block  826 . If, however, the detected feed level is below the predetermined threshold level, the method  800  skips to chart location  832 , represented by an encircled “B” in  FIG. 11B . At that location  832 , the method  800  skips to decision block  852 , to be explained in sequence. Referring back to decision block  828 , if a signal has been received from the cellular modem  34 , the method  800  continues to block  834 , where the microcontroller  36  starts to read the message from the cellular modem  34 , one character at a time, and sequentially stores each read character in a buffer designated as “MSG” by coding. Next, method  800  continues to a decision block  836 , where execution of steps depends on whether a carriage return has been received from the cellular modem  34 . At block  836 , the microcontroller  36  evaluates the buffer to determine whether a carriage return character has been stored. If not, the method  800  loops back to block  834 , and characters continue to be stored in the buffer as they are received from the cellular modem  34 . If, however, the microcontroller  36  detects that a carriage return is present in the buffer, then the microcontroller  36  retains the number of characters present in the buffer immediately prior to receiving the carriage return, and the method  800  continues to decision block  838 . At decision block  838 , the local microcontroller  36  detects whether the signal being received is, in fact, a text message (SMS) or, instead, whether the signal received is something else, such as a phone call. A message is only confirmed as an SMS message if the cellular modem  34  outputs “+CMTI,” which is a standard code word that cellular modems can use to notify a computer that an SMS message has been received, and to specify to the computer the memory location where the SMS message was stored. If no SMS message was received, the method  800  skips to block  864 , where the MSG buffer is cleared, and the method reaches the looping marker  824 , thus causing the method  800  to return to block  826 , the first block in loop group  822 . If, however, a valid SMS message was received, method  800  continues sequentially to block  840 . 
     At block  840 , the local microcontroller  36  sends a command, which can be the command “AT+CGMR,” for the cellular modem  34  to communicate, to the microcontroller  36 , the contents of the SMS message that the cellular modem  34  received in block  828 . Method  800  then proceeds to block  842 , where the body of the received SMS message (i.e., just the contents of the SMS message, without associated metadata like sender, date, etc.) is stored in a buffer other than that used at blocks  824  and  834 . Next, at block  844 , the buffer referenced in block  842  is checked to determine whether the SMS message stored therein is a valid command or, instead, something else (such as a wrong number or a cell provider sending a text about a user&#39;s bill status). As an example, the local microcontroller  36  can be programmed to recognize only the character string “READ” as a valid command, though the programming instructions could specify some other character string to serve as the valid command. The “yes” line from block  844  means that a valid command has just been received, and the method  800  proceeds to block  848 . If, however, the stored SMS message is not a valid command, then method  800  goes to block  864  described above, where the MSG buffer is cleared. 
     At block  848 , the local microcontroller  36  reads a temperature-and-humidity sensor, such as sensor  102 , described with regard to  FIGS. 7 and 8 , and returns temperature and humidity values. The humidity value is expressed as a percentage. In one aspect, the temperature value can be expressed in degrees Fahrenheit, but in another aspect, the reported temperature can be expressed in degrees Celsius, if programming instructions so indicate. Method  800  then proceeds to block  850 , where the microcontroller  36  reads the level of the feed in container  30  ( FIGS. 2 &amp; 3 ), such as by receiving information from level sensor  80 , described with regard to  FIG. 5 . Next, method  800  advances to decision block  852 , in which the local microcontroller  36  assesses whether the local radio  40  and the remote radio  134  are communicating with one another, in which event data from both radios would be stored in the microcontroller  36 . If such radio communication is present, then the method  800  proceeds to block  856 , where method  800  causes an SMS reply message to be sent to the sender of the SMS message in block  838 , the reply message containing not only readings received from the sensors in the local module  19  (the “local values”), but also readings from sensors of the remote module  20  (the “remote values”). After the sending of that SMS reply message in block  856 , the method  800  proceeds to block  860 , where the SMS reply text is cleared from the microcontroller buffer (identified as “radio buffer” in block  860 ), that is holding data from both radios  110 ,  134 . Following the clearing of the radio buffer in block  860 , method  800  advances to block  862 , where the microcontroller  36  sends a command to the cellular modem  34  to delete its SMS messages, as they are no longer needed at this stage of method  800 . Next, at block  864 , the MSG buffer is cleared of variables and data from the sensor readings, preparing it for storage of new data. From block  864 , the method  800  loops back to the first loop step, i.e., block  826 , the looping point denoted by the looping marker  824 , Referring back to block  852 , if the local radio  40  and the remote radio  134  are not communicating with one another, the method  800  proceeds to block  854 , where the method  800  causes an SMS reply message to be sent to the sender of the SMS communication of block  838 , the message containing information reporting only the local values. From block  854 , the method  800  skips to block  862 , and then to block  864  and to the looping marker  824 , with blocks  862  and  864 , as well as the looping marker  824 , described above. 
       FIGS. 12A and 12B  illustrate a flow diagram of a method  1000  to cause a slave module (here, the remote module  20  by way of example) to read data from sensors measuring temperature, humidity, and light level at a location remote from the local module  19 , and to transmit that data from the remote radio  134  ( FIG. 9 ) to the local radio  40  in local module  19  ( FIGS. 3 and 8 ). Method  1000  comprises steps subdivided into initialization, setup, and loop groups  1002 ,  1012 , and  1022 , respectively. 
     Referring to  FIG. 12A , and to initialization group  1002 , at block  1004  the method  1000  begins. At block  1004 , certain libraries, or subprograms, stored in the remote microcontroller  126  (shown in  FIG. 9 ) can be loaded into instructions programmed into the remote microcontroller  126 , such as libraries for the remote radio  134  ( FIG. 9 ), for generation of strings, and for the SPI. From block  1004 , the method  1000  continues to block  1006 . At block  1006 , constants are set. The steps at block  1006  can comprise assigning variables for the remote radio address, light sensor reading minimum valve, and light sensor reading maximum value. At block  1008 , the pin address and modes are set. In other words, certain microcontroller pins are assigned to the programming instructions. For example, Port 2, pins 0, 1, and 2 can be set for communication between the microcontroller  126  and remote radio  134 ; and Port 1, pin 4 can be set for the microcontroller  126  to communicate with the temperature-and-humidity sensor  136  ( FIG. 9 ). From block  1008 , method  1000  proceeds to block  1010 , where a buffer in a memory register of the microcontroller  126  is initialized. The step at block  1010  can comprise assigning a variable for a placeholder, five integers long, for placeholder data to send to the remote radio  134 . However, the placeholder could be as much as 32 or even more bytes, depending on data requirements. 
     From block  1010 , method  1000  proceeds to the setup group  1012  of steps, which are all performed by the local microcontroller  126 . At block  1014 , the SPI is configured and started, such that the SPI mode is configured, SPI communication then also begins at block  1014 . Next, at block  1016 , the remote radio  134  ( FIG. 9 ) is configured. This can comprise commanding the local microcontroller  126  to communicate over the SPI interface with the remote radio  134 , set radio speed and frequency, and activate the CRC. The method  1000  then proceeds to block  1018 , where the remote radio  134  is started in transmit mode. In that mode, the remote radio  134  is set to transmit signals to the local radio  40  ( FIGS. 3 and 8 ). From block  1018 , the method  1000  enters the loop group  1020  of steps ( FIG. 12B ). 
     Referring to  FIG. 12B , the method  1000  proceeds from block  1018  ( FIG. 12A ) to loop group  1020 . An encircled symbol “A”  1022  denotes a loop marker indicating the start of the loop group  1022 , thus indicating when the steps in loop group  1022  will repeat. Buffer storage steps referenced in loop group  1020  refer to storage of information in a buffer located in the memory of remote microcontroller  126  of the remote module  20  ( FIG. 9 ). The first step in loop group  1022  is at block  1024 , where the temperature is read from the temperature-humidity sensor  136  ( FIG. 9 ), and the returned value is stored in “buffer[0].” In one aspect, the value can be expressed in degrees Fahrenheit, but in another aspect, the reported temperature can be expressed in degrees Celsius, if programming instructions so indicate. From block  1024 , the method  1000  advances to block  1026 , where humidity is read from the temperature-and-humidity sensor  136 , expressed as a percentage, and stored into “buffer[1].” Method  1000  then proceeds to block  1028 , where the light is read from the photoresistor  130  (shown in  FIG. 6 ). Based on the intensity detected from the photoresistor  130 , the remote microcontroller  126  assigns a value to be stored into “buffer[2],” which can be “0” for dark, “1” for dim, “2” for medium, or “3” for bright. Such readings will enable a user to determine whether an event, such as the knocking over of a beehive  10  ( FIGS. 1 and 2 ) has occurred. In one aspect of the present disclosure, programmed instructions can link each returned value to a different text message to be sent to the user. For instance, a value of “1” present in the buffer array transmitted to the local radio  40  can cause the local microcontroller  36  to compose the character strings “the light is dim,” as well as “in the hive,” in the SMS reply message sent by the local microcontroller  36  in  FIG. 11B , block  856 . Next, at block  1030 , the microcontroller  126  reads the millivolts of the remote module batteries  129  ( FIG. 9 ), and stores that value into “buffer[3].” The method  1000  proceeds to block  1032 , where a zero value is stored in “buffer[4].” In other aspects of the invention, however, other parameter readings can be stored into the buffer, such as microcontroller temperature. 
     Still referring to  FIG. 12B , with the buffers [0]-[4] now all having values stored therein, a buffer array exists. At block  1034 , the buffer array is sent from the remote microcontroller  126  to a buffer in the remote radio  134  ( FIG. 9 ), and this transmission occurs over the SPI interface. The method  1000  proceeds to block  1036 , in which the remote microcontroller  126  is instructed to direct the remote radio  134 , over the SPI interface, to transmit its data over the air. Next, at block  1038 , programming instructions instruct the microcontroller  126  to send a command, over the SPI interface, for the remote radio  134  to go into a deep sleep mode. The method  1000  proceeds to block  360 , in which the microcontroller  126 , itself, is directed to go into a deep sleep mode. The deep sleep modes induced at blocks  1038  and  360  promote conservation of battery power. Next, at decision block  362 , the duration of the sleep of the microcontroller  126  can be set at sixty seconds, though other programmed durations can also be implemented. At block  362 , if sixty seconds have not yet elapsed, the microcontroller  126  remains in its sleep state. Upon the elapsing of sixty seconds, however, the microcontroller  126  is woken at block  364 , where it is now in full power mode. Then, at block  366 , a delay occurs, the purpose of which is to allow the remote radio  134  ( FIG. 9 ) to wake up before the microcontroller  126  executes any other tasks upon its own awakening. At decision block  366 , the microcontroller  126  is instructed to do nothing for 0.1 seconds. Until that time elapses, the method  1000  loops back to the delay block  366 , and nothing happens. Upon the elapsing of 0.1 seconds, the method  1000  reaches the loop marker  1022 , and the steps in loop group  1020  are repeated, beginning with block  1024 . 
       FIGS. 13A and 13B  illustrate a flow diagram of alternate method  1200 , in which a master module is caused to read feed level and, optionally, temperature and humidity at a location local to a feed container, and to then write data to a database on a server, instead of exchanging text messages (discussed with regard to  FIG. 9 ). Method  1200  comprises steps subdivided into initialization, setup, and loop groups  1202 ,  1212 , and  1222 , respectively. 
     The portion of the flow diagram  FIG. 13A  involves steps identical to those discussed with regard to  FIG. 11A , thus the last two digits in each reference character of  FIG. 13A  are identical to the last two digits in corresponding reference characters of  FIG. 11A . Accordingly, as in method  800  of  FIG. 11A , the steps of initialization group  1202  are only run once, at the programming stage by the system manufacturer. At block  1204 , where the method  1200  begins, libraries are loaded by the instructions programmed into the local microcontroller  36  ( FIGS. 3 and 8 ). The method  1200  continues to block  1206 , where the pin address and modes are set, meaning that pins of the local microcontroller  36  are assigned to communicate with certain other components of system  100 . For example, certain pins of microcontroller  36  can be set as described in below. 
                                     System 100 Device with which Set       Microcontroller Pins Set   Microcontroller Pins will Communicate                  PORTD, pin 7; PORTB,    Cellular modem 34       pins 0 &amp; 1           PORTC, pin 1   Temperature-and-Humidity            Sensor 102       PORTD, pins 5 &amp; 6;    Local and Remote radios 110, 134       PORTB, pins 3, 4, &amp; 5                    
As to an example of a mode setting (in other words, configuring a microcontroller with a library), for either of the temperature-and-humidity sensors  102 ,  136  ( FIGS. 7 and 9 , respectively), the mode can be set to “dht11,” to reflect the DHT-11 model number, described previously, of the particular example of the sensors  102 ,  136  that can be employed in system  100 .
 
     At block  1208 , constants are set. The steps at block  1208  can comprise assigning variables for a radio address, light sensor reading minimum valve, and light sensor reading maximum value. Method  1200  then continues to block  1210 , where the buffer in a memory register of the local microcontroller  36  is initialized. The step at block  1210  can comprise assigning a variable for a placeholder, 17 integers long, for placeholder data to send to the local radio  40 . However, the placeholder could be as much as 32 bytes, depending on data requirements. 
     Following the buffer initialization in block  1210 , method  1200  continues to the setup group  1212 . Like the steps of group  1202 , the steps of group  1212  are only run once, and are performed by the local microcontroller  36 . At block  1213 , the local microcontroller  36  sends a power-on signal to the cellular modem  34  (shown in  FIG. 5 ). Then, at block  1214 , a delay occurs, the purpose of which is to allow the cellular modem  34  to wake up before the microcontroller  36  executes any other tasks. At decision block  1215 , the microcontroller  36  is instructed to do nothing for a pre-programmed delay period, for example, three seconds. Until that time elapses, the method  1200  loops back to the delay block  1214 , and nothing happens. Upon the elapsing of the delay period (exemplified in block  1215  as three seconds), the method  1200  continues to block  1216 . Next, at block  816 , the universal asynchronous receiver/transmitter (“UART”) microchip in the local microcontroller  36  is configured and started, which enables the serial port and sets the baud rate, for example, to 19200 bps. Method  1200  then continues to block  1218  of setup group  1212 , in which the local radio  40  is configured. Programmed configuration instructions instruct the local microcontroller  36  to communicate with the local radio  40  ( FIGS. 3 and 8 ) over the SPI interface, set radio speed and frequency, and activate the cyclic redundancy check (CRC). Upon configuration of the local radio  40 , the method  1200  continues to block  1220 , in which the local radio  40  begins to operate in receive mode. In that mode, the local radio  40  is set to receive signals from a remote radio (such as the remote radio  134  in  FIG. 9 ). 
     Referring to  FIG. 13B , the method  1200  progresses to the loop group  1222  of steps, with a loop marker  1223 , symbolized by the encircled letter “A,” indicates the start of a loop. At block  1224  the microcontroller  126 , itself, is directed to go into a deep sleep mode. This deep sleep mode promotes conservation of battery power. Next, at decision block  1226 , the duration of the sleep of the microcontroller  126  can be set at sixty minutes, though other programmed durations can also be implemented. At block  1226 , if sixty minutes have not yet elapsed, the method  1200  loops back to block  1224 , and microcontroller  126  remains in its sleep state. Upon the elapsing of sixty minutes, the method  1200  advances to block  1228 , where microcontroller  126  is woken and polls any other radio on the network, reads any available messages from the radios  110 ,  134 , and stores them in a buffer. Next, at block  1230 , the temperature and humidity are read from sensor  102  ( FIG. 5 ), and the returned values are stored into a stored variable, expressing temperature in degrees Fahrenheit and humidity as a percent in the coding. Then, at block  1232 , the level sensor  80  ( FIG. 5 ) is read, and the value stored into a variable. Method  1200  then advances to decision block  1234 , where the microcontroller  36  checks whether the local radio  40  has data stored in the microcontroller  36 . If not, then the method  1200  progresses to block  1236 , where the microcontroller  36  sends its data, along with the stored radio data, to the cellular modem  34  to be transmitted to a database on a server connected to the internet. The modem  34  uses TCP to connect to the server via a port, typically “80” on the modem and insert the data into the database via a script, such as PHP, residing on the server. Referring back to block  1234 , if the local radio  40  does not have data stored in the microcontroller  36 , the method goes to block  1238 , where the microcontroller  36  sends its data to the cellular modem  34  to be transmitted back to the database on a server connected to the internet. The modem  34  uses TCP in the same manner described with regard to block  1236 . From either block  1236  or block  1238 , the method  1200  returns to the beginning of the loop, as noted by loop marker  1223 . 
     Although several embodiments of the invention have been disclosed in the foregoing specification, it is understood by those skilled in the art that many modifications and other embodiments of the invention will come to mind to which the invention pertains, having the benefit of the teaching presented in the foregoing description and associated drawings. It is thus understood that the invention is not limited to the specific embodiments disclosed hereinabove, and that many modifications and other embodiments are intended to be included within the scope of the appended claims. Moreover, although specific terms are employed herein, as well as in the claims which follow, they are used only in a generic and descriptive sense, and not for the purposes of limiting the described invention, nor the claims which follow.