Riverbed Profile and Height Sensor

by Stijn in Circuits > Sensors

1046 Views, 7 Favorites, 0 Comments

Riverbed Profile and Height Sensor

resultaat.png

We made this profile and height sensor for the course 'Measurements for Water' from the TU Delft. It can be used to measure the height of the surface area beneath a reference plane. This sensor is designed to measure the height of accumulated sand (or other particles) in a river due to sediment transportation. This is done by measuring the height difference of the moveable rods using capacitors mounted to these rods. The rods are made from PVC pipes and will be hold by slightly bigger PVC pipes mounted to a baseplate.

Supplies

This is a list of all the materials and tools you will need to build the sensor.

Electronics:

  • Arduino
  • Breadboard
  • LCD screen
  • Breadboard cables
  • four 100 pF capacitors
  • sixteen 220 Ω resistors or eight 470 Ω resistors
  • 120 cm coaxial cable

Building materials:

  • 2 m PVC tube, 16 mm (5/8'') diameter
  • 40 cm PVC tube, 19 mm (3/4'') diameter
  • MDF plate, atleast 50 cm by 25 cm and 15 mm thick
  • eight small paper clips
  • Roll aluminum foil
  • Duct tape

Tools:

  • Soldering iron
  • Scissors
  • Hot glue gun
  • Saw
  • Sandpaper or vile
  • 20 mm drill (or smaller, if 20 mm isn't available)

Constructing the Baseplate

Base.png

Before assembling the electronics, we constructed the baseplate of our sensor. All the electronics and the moveable rods will be mounted to the plate.

For our baseplate we have used an MDF plate, which was originally 61 cm by 122 cm and 15 mm thick, and cut off a piece with a width of 25 cm and a length of 61 cm. These dimensions are an indication, but don't necessarily have to be the same. We do recommend a thickness of at least 15 mm to make sure the rod holders can be mounted to the plate.

After cutting the MDF plate we marked the center of the plate and the locations for our 4 rods. We decided on a square grid with 8 cm between each grid line and thus the center of each rod (not counting diagonal). We also marked the location of the breadboard. We drilled holes of 20 mm to make sure that the outer PVC pipes with a diameter of 19 mm would fit through the plate. If it isn't possible to use a drill bit of 20 mm, you could also drill multiple smaller holes with a smaller bit and vile the edges. However, we do not advise this, since it will be harder to fit the PVC pipes.

The 19 mm PVC pipes will be used to hold the smaller moveable 16 mm PVC pipes. We cut four pieces of 19 mm PVC pipe with a length of 10 cm each and sanded the ends. We glued the four pieces in the holes using hot glue, while making sure that the bottom of the pieces was exactly level with the plate.

The last part of this step was to wrap a piece of aluminum foil around the rod holders. We use pieces of 7 cm by 7 cm and taped them to the PVC using clear tape. When doing this, you must make sure that you don't cover the entire area of the foil with tape, since the foil needs to be connected to a paper clip to create an electrical circuit.

Assembling the Electronics and Capacitors

20210913_160607.jpg
20210917_085626.jpg
20210913_144805.jpg

Each capacitor consists of two parts: the rod holders with an aluminum layer and the moveable rods with an aluminum layer. We made four rods of each 50 cm and sanded the ends. Then we covered one end of each rod with a 6 cm by 14 cm aluminum foil sheet and clear tape. Make sure the foil is tightly wrapped around the pipes, because they only narrowly fit in the holders. It is also important that there is room to fit a paperclip directly onto the aluminum foil at the top of the rod, without tape in between the two parts.

Both ends of the capacitors will be connected to the breadboard of the Arduino using wire. Because the wires will create an electrical field themselves resulting in noise, we added a piece of coaxial cable in between the wires. For each capacitor you will need 4 breadboard wires, 1 piece of coaxial cable of max 30 cm, and two paper clips. Solder them together as shown in the picture. We taped duct tape over de soldered parts to make sure the cables won't accidentally connect.

The next step is to add everything to the breadboard as indicated on the Arduino circuit diagram. Instead of two 220 Ω resistors in series you can also use one 470 Ω resistor, which we didn't have on hand. As to be seen on the Arduino circuit diagram there are the colors orange, blue and red given next to the regular black wires. The orange color stands for a crossover between the wires. This helps having an overview of how the setup is arranged. The blue and red color are where the wires are connected through each other with the paperclips through the rods. While the blue color serves as the negative side, the red colored wire is positive. This is done to make it clear as where the conduction happens and where the variables to what is measured is getting their values from. At the right bottom of the screen there are 4 7-segment displays given. This can be interpreted as the I2C LCD display we have used for our sensor. These required the four ports which are leading to the displays on the circuit diagram.

After finishing the circuit, you can tape the paperclips to the in aluminum foil covered PVC pipes. Tape the paperclip on the moveable rod as far as possible at the upper end of the foil, but in a vertical position without sticking out at the top. Tape the paperclip on the rod holder as far as possible at the lower end of the foil. Because we used a strip of foil with a length of 7 cm and the plate is 15 mm, there is still 15 mm room at the bottom of the capacitor. This is room is needed for the cable attached to the paper clip. While taping the paperclips you should make sure that the rods are in the holders. The paperclips at the top will make sure the rods can't fall through the plate entirely.

Arduino Circuit Diagram

arduino.JPG

Finishing the Build and Calibrating

resultaat.png

After connecting all electronics, you can mount them to the base plate using tape. The last step is to add the code to measure the capacity.

The code that is made is based on a few fundamentals: making sure all the connections are defined correctly to have a working setup, having a working LCD signal where we can read all measurements from and calibrating our values, so we have an interpretation of what we are measuring. In this piece of coding picofarad is used as a unit of measurement, which could be further calibrated to height in meters to measure the sediment height. When the pins are initialized to have a working communication between what will be send to the Arduino to execute, there can be made a loop in which the measurements eventually will translate to values to be send to the LCD screen. In this piece of coding that we used it is explained by text what is done to make the code work.

If we would like to further calibrate the values to its common height
difference of the rods, we should calibrate each rod individually due to small deviations which could occur per rod. Another reason to calibrate it singularly is because all the rods may have a slightly different reaction because of its placement to the electrical field around it. Calibration can be done as follows: we take a few test samples, for example with a small object that can be put beneath one of the rods and note their values in picofarad. Because you will value multiple times it is also a good idea to measure with different objects to put below one rod. With all the measurements and values u get it is essential to measure in meter the difference in height of the rod that is used. Once the various test samples are executed, there will be values in meters that correspond to a certain amount in picofarad. Best is to measure bigger or different values with the same method or close to it as it is not certain that the values will be linear every rod. This also due to deviations. Best is to make an estimate of what is measured and use that as reference points so there can be done some interpolating in between. It is some work to start with, but it will pay off as calibrating multiple times give you way more accurate values.