Project No.1 : Contact Water Level Detector Using NE555

It's my first hobby project after a couple of month of electronics inactivity. I build this project back in 2018. I was busy with job hunting for a while, but then finally have a chance to solder something again after returning back home. The idea is to make a water level detector using 3 conductor/probes to sense water level of a reservoir or water tank. It can be useful, especially for a rain water reservoir that's usually not transparent and a hassle to check because of the height of the tank or the reservoir location is not easily accessible without a ladder.
The probes are conductors, can be copper or aluminium, with different length,  adjusted to suit the reservoir or water tank and the desired sense level e.g. for a 2 meter water tank, then L1 = 1.5 m ; L2 = 1 m ; L3 = 0.5 m, to indicated 3 water level : almost empty, half full/half empty, and full/almost full. 
Figure 1 is the schematic of the prototype circuit, using NE556 IC which consist of two NE555s in DIP14 package. The first NE555 (U3:B) is configured as astable multivibrator, with R3, R4, and C3 give the output frequency of ...Hz. It's driving transistor Q3 that connected to the probe L2.  
Fig 1. Circuit schematic 
The other half of NE556 (U3:A) is configured as a monostable multivibrator, with the probe L1 connected to the trigger pin 6, with R5 and C1 gives the output pulse duration of approximately ....ms. The output of U3:A drives a darlington of Q2 and Q1 transistors(why? I don't know either, I can't remember my reasoning at the time, one transistor should be enough but, meh.)that drives a 5V buzzer. The probe L3 connected to circuit ground. 9V battery connected to a 7805 5V linear regulator provided the power to the circuit.
When the water on the tank is full, the 3 probes are immersed in water, effectively shorting L1, L2, L3, so the buzzer doesn't sound. If the tank is half full, so only L1 and L2 are connected trough water, the buzzer will gives a beeping sound every 2 second or so. If the tank is almost empty, then only L1 or no probe is immersed in water so the buzzer will always stays on, as an alarm that the tank is almost empty/empty. 
Fig 2. Prototype Circuit Build on Protoboard
I have to admit that this circuit is not efficient, or elegant. I could use mostly discrete component, get rid of the 556 timer and it'll probably cost less, but in my defense, this was the first time I get to solder something again after many many moons, so the design choice is really questionable, at best. But it served its purposed as a soldering practice, and it works, so I think it's still forgivable.