DFR0300-H not reading properly
Embeco 2026-01-25 04:56:27 245 Views1 Replies I am new to this, so I might be making a dumb error here:
I am trying to read the EC value of my water. I know I have rather hard tap water, but I am not getting any values unless I go very high on the EC value.
If the sensor is dry, I get a reading of 0.075V (that is at 5V in and 0db attenuation).
If I put it in tapwater, I get the exact same 0.075V.
If I put salt in the tapwater, I get a higher reading (depending on the amount of salt, but I got 0.250V before).
If I put it in the included calibration liquid, I am getting 0.373V.
I am using a ESP32 chip (and I have to, that's a limitation, unfortunately) and I am aware, that I need to calibrate, but if the returned voltage is the exact same, no calibration in the world can fix it, right? So my question is: Am I missing something easy? Could my ESP32 be the problem? Is my sensor defective?
I appreciate any hints you could give me!
For completeness sake, here is my sensor config yaml on the ESP32:
- platform: adc
pin: 34
name: "EC-Sensor"
id: water_ec
update_interval: 10s
unit_of_measurement: "mS/cm"
attenuation: 0db
accuracy_decimals: 3
filters:
- median:
window_size: 15
send_every: 5
- calibrate_linear:
- 0.075 -> 0.0
- 0.373 -> 11.40
Hi there,
No dumb error at all—it’s just a sensor range mismatch!
Your Gravity conductivity sensor (K=10)(DFR0300-H) is designed for high-conductivity liquids (10–100 mS/cm) (e.g., seawater, concentrated salt water). Tap water (even hard water) only has 0.05–1 mS/cm, far below the sensor’s lower limit, so the voltage stays unchanged. Your sensor and ESP32 are likely working fine.
For tap/drinking water, switch to the K=1.0 sensor (DFR0300) (supports 0–20 mS/cm, recommended 1–15 mS/cm).
niu.yixuan 

