Long Range Arduino Water Monitoring

arduinocommunicationxbee

I'm looking for advice on how I should setup a long range irrigation monitoring system using multiple Arduino boards. I would like advice/options available on what hardware I require to achieve my concept. Particularly the 12km line of site communication between boards.

To give you some context we irrigate a crop every year and the paddock that we irrigate is roughly 12km from the homestead. The drive alone is a 24km round trip which is usually just to check and balance water levels.

  • On average a workman would do this trip between 3 to 8 times in a day and 3 – 6 times at night
  • 1 watering takes 3 full days around the clock and we water between 12 to 16 times in a season

You don't have to do the math to figure out the fuel cost alone is massive. My goal for the project is to reduce the man hours required to monitor water levels and reduce fuel costs.

My proposed solution to this is setting up 3 x Arduino boards in each of the 3 fields monitoring their respective water levels and the 4th Arduino board at the homestead displaying each water level on a LCD screen. In short:

  • Arduino 1: Monitors water level and sends this data to Arduino 3 (2km
    line of site)
  • Arduino 2: Monitors water level and sends this data to Arduino 3 (2km
    line of site)
  • Arduino 3: Monitors water level, receives water level from arduino 1
    & 2 and sends the 3 water levels to arduino 4 (12km line of
    site)
  • Arduino 4: Recieves 3 x water levels from Arduino 3 and displays this
    on LCD

Additionally, each Arduino board will have colored diodes that indicate water level at night so workers in the field can easily see without physically checking that all the water levels are ok when changing fields and starting/stoping siphons or if they need to make adjustments. It's important to note that I know how to achieve this just thought it was important to mention to provide more context.

Best Answer

Just in case you consider radio, to get 12km is no easy feat if battery/solar powered. The RF signal power losses in free space are: -

Loss (dB) = 32.45 + 20\$log_{10}\$(f) + 20\$log_{10}\$(d)

Where f is in MHz and d is in kilometres. This equation tells you how many dB of power loss you can expect at a given distance with a given carrier frequency.

The Xbee pro 900 transmits at 900MHz and over 12km the losses amount to 113 dB. On the ground you can reasonably expect this to be worse by probably 20dB taking the link loss to about 133 dB. Some amount of antenna gain may not be very useful if the three sites are at different angles because the antennas become directional. A significantly lower frequency (say) 90MHz (if allowed or available) would reduce the link loss by 20dB.

How much antenna power does the receiver need to operate is the next question. The commonly used formula for estimating this is -154dBm + 10log(data rate). If data rate is 100kbpsec then the receiver needs an antenna power of -104dBm. However, if the data rate is 100 bps then the receiver only needs a power of -134dBm i.e. it's 30dB more sensitive.

Transmit power output needs to be chosen accordingly with link loss (based on carrier f and distance d) and minimum signal needed by receiver (based on data rate).

As for what you are planning to do I would suggest that transmitting blindly once per minute continually is not going to drain battery power over night and so if 50% of the transmissions are "missed" it's not going to be a big deal but you do need to ship any payload transmission with sufficient error detection bits to avoid randomly detecting a stupid status from the remote site.

Just a transmit only radio at the remote site and a receiving only station at the other end should work fine but there's a lot of detail to get right.

See this for more detail.

Related Topic