I am building a remote rain gauge for a farm about 5 hours drive from Brisbane.

I'm using an off the shelf tipping bucket rain gauge: http://images.google.com/search?tbm=isc ... rain+gauge.
The rain gauge closes a switch every time the bucket tips over. To detect this, even when the arduino is possibly doing other things I use an interrupt service routine on the digital input. This then requires that the signal be hardware debounced - which I do on the protoshield using a schmitt trigger IC.
The shield shows a count of the ticks on the 7segs, this is purely for debugging and testing.
We get 3G reception on the farm and the rain gauge is positioned a fair way from the homestead, so it will be solar powered, no cables required. I decided it would be nice to read the solar voltage and battery voltage too.
This was achieved with a voltage divider and to get the accuracy I wanted I found I needed an external voltage reference from an LM4040. I suspect this thing is now more accurate than my cheap chinese multimeter, but it has to be to detect the difference between a low battery ~11.8 volts and a fully charged battery ~12.8 volts.
I use the real time clock module to record the date and time of 'ticks' received from the rain gauge and send them off to my webserver. At first I was going to use the ethermega itself as a webserver but i found it too slow to load. This setup also negates the need for a 3G service with a publicly visible IP address, which is a murky area - very difficult to find out which ISPs offer this.
Finally I shoved in the watchdog module to reset the whole thing if it hangs. Haven't needed it so far (touch wood).
In the process I developed a rough fritzing part of the protoshield mega, attached. The breadboard and PCB parts are done, however I never did the schematic as I only used the part to lay out my prototype.


Unfortunately the connectors aren't labelled. Instead of 'D0' it just shows 'connector129' for example. This is because I generated the part programmatically, using the Eagle brd file. Anyone is free to use the part for fun or for profit. With a little polishing it could even go on the psm webpage. If anyone would like the (C#) code I used to make the part I can publish that too.
Over and out!