Sonar Sensors provide simple and inexpensive way to monitor distances withing ranges suitable for Aquaponics Systems featuring 1m3 IBC's. (In my tests, I could accurately measure ranges between 0-~1200 mm's. Accuracy was less good on bigger distances, but still got usable results up to ~2800 mm's.)

However, exposing the Sonar Sensor electronics / membranes to constant direct humidity (monitoring the water level directly, from above the tank) does not seem like a good idea for the sake of the electronics, anyway. (So no experience on how water reflects ultrasounds, given that it's not a flat surface /as water is returning from growbeds, there are almost constantly ripples in the tank, so likely the soundwaves would get diverted in random directions, decreasing accuracy.)

So in this sample implementation a working model is presented, where the point of measurement is placed outside the tank (to safety from water / direct exposure to high humidity) by simple mechanical means.

schematics animation prototype

  1. floating cork: I used an empty Airwaves can, filled with a few stones and water. The cork must float with the water and follow it's rise and fall.
  2. pulley: to output the vertical movement of the cork, a string can be used did not have a proper pulley, so used a piece of 2mm /small surface minimized friction/ wire as a lever - 'simulate a pulley'
  3. basket & counterweight: the bottom of the basket will be the reflection point, where Sonar Sensor beams the ultrasound waves. a little counterweight must be used to keep the string tense. counterweight must not be heavier than the weight of the floating cork (reduced by the weight of water of the volume of the cork below water). While one can calculate these using Newton's and Archimed's laws, etc. I just went trial-by-error on it.
  4. the Sonar Sensor: measures distance to the basket. If placed below the basket (example implementation), the calibrated measurement has to be subtracted (the more distance the less water in the tank), while if placed above (facing down), it has to be added (the more distance measured, the more water in the tank) to the calibration level of the tank.

A little video of the test implementation in action:

A few notes:

as a consequence, in this lab implementation the water level changes in a small range of ~12mm's. Enough for a proof of concept. :)