Many years ago I started a project to monitor various systems around my house. I designed and built a system based on Arduinos, Python and MySQL. I placed various sensors all around my house, connected them with ethernet, and I can data log various things - like water and energy consumption, room temps, etc. Which brings us to today's fun.
I live in a rural setting, so I have a well. As you might be aware, living in Northern California has it's ups and downs (like earthquakes, fire, drought, etc), and gives me the opportunity to worry about my very drought and population stressed aquifer. Many of my neighbors have their wells go dry in the last several years due to overpumping and poor water management. In fact my well went dry about 4 years ago and I was forced to drill a new, deeper one. However the old well was left in place. I was hoping it would perk up at some point.
Roll forward to this year. I finally got around to have a sounding tube installed the old well. (A sounding tube is just a bunch of PVC pipe that runs in the bore from the surface down to the well pump. My sounding tube turned out to be 546 feet deep. I purchased a water depth sensor from Keller (Keller Acculevel). I've used these before and find them accurate and easy to use. The one I selected, has a RS-485/MODBUS output and needs a 12v source.
The "problem" with this installation is the well head is down a hill and several hundred yards from my house. My other installs have had ethernet close enough, so I haven't had to deal with this before. I settled on using a wireless link of some type. I played around with some DIY LoRA radios and they just didn't have the range to make it reliably. So I looked for a more robust solution. I found an RS485 Transceiver (EByte E32-DTU) on eBay for around $25. (You need to purchase antennas separately.) I went with the 433MHz option as I figured that would have better range and be a bit less line of sight. I also found a wall wart that would accept 220v and output 12v.
Since I've used them before I already had some Arduino code that worked (it's standard MODBUS stuff, so pretty straightforward).
Here is the sensor with it's cable and the well head. The 1" cap for the sounding tube has been removed from the well head. I just lowered the sensor down the hole, then put the tail of the cable through conduit to my weatherproof box.
And here's the conduit buttoned up.
The sensor box consists of a 12v supply, the RS485 transceiver, and a tubed filled with desiccant to terminate the atmospheric balance tube. (You can't get any moisture down this tube or you'll get bad depth readings. ) I was lucky that the well electrical box had a 1 1/2" pipe fitting on the top I could mount my weatherproof box too.
Here's one of my Arduino based nodes. This communicates with the well via the transceiver, decodes the MODBUS stream, converts it to my internal protocol and sends it out ethernet to my database. As you can see, this well is no longer dry, so I can plan to start using it!
(My well pump is sitting 546 below the surface, this is where the sensor sits. The water depth is showing as 246 feet, so the top of the water is around 300 feet below the surface.)