I have trouble with my DFRobot capacitive soil moisture sensor
By default analogRead gives value 0, if I put it in the water it only goes up to 6 but if I touch it with my finger value goes up to 150. I tried 2 arduino boards and 2 sensors but none of them worked.
one thing you may want is a 3d printed stand which allows you to put the sensor in at the same soil depth every time (or each sensor as the case may be).
I designed one a few years ago as a demo for building 3D printed parts in VR.
here is the model:
Best thing for calibration I have found (despite the wiki, which is good) is to use soil. Get some as dry as you would want your crop to be in. If rocky or silty ground, I dig a small depression and screen rocks out. they will scratch the solder mask and cause corrosion or create voids which prevent good measurement. fill the hole in with the screened dirt and lightly compact. Use the printed base to make sure the sensor is at a known depth. take a few readings and average them and use that as your lowest range.
then water the soil around the sensor and let it soak in until it is looking good for your plant. take some more measurements and use that as the high end of the range.
the sensor should not be powered all the time as it will eventually corrode out. Best to switch it's power with a fet, but it also only draws 5ma so you could get away with powering it from another pin. just dont tell anyone on the arduino forums I said that.
I have also found they are a little bit temperature sensitive though hard to tell if this is a result of surface evaporation. Best to cover with some shade cloth.