I currently have 15x DS18B20 sensors hooked up to an ESP32 and displaying the data on an IOT board. The sensors are placed in a column of wet soil and I am using conductive pipes to heat/cool the soil inside this column.
In the first 2 weeks of using them, everything was working fine. In the third week, I decided to cover up all the mesh-like holes on the column using bubble wrap (to improve the insulation). This new setup was working great for a few days until one sensor started to behave erratically (ie. it would read the correct temperature and then suddenly jump to -5 degrees and then come back to the normal temperature). I continued using it for a few days and then 12 out of the 15 sensors started to act the same way (see picture below).
Normally, I would say that I f*cked up my sensor with moisture trapped inside the column. But two very strange things happened:
12 of the sensors are behaving erratically, but in a NEAR EXACT 'erraticness'
I shut off my system for 3 days and just turned it back on, now only 4 out of the 15 sensors are being erratic. The rest are reading fine again...
It is typically 1 faulty probe that causes the others to malfunction (but this probe is not damaged, it is that with all 15 probes, one is weakened by the shared structure, and it causes the fault for the others; there is at least a mix of addresses ; for the measurement offset, I don't understand). They are therefore wired together, in a star configuration I suppose. The CRC check on the data sent by each probe (integrated in the OneWire library) does not detect the fault : did you check this CRC in your code?
How is the reading done: 15 conversion commands sent to the 15 probes, wait 700...1000 ms, then read the 15 temperature values, or the same thing but probe by probe?
Maybe decrease the value of the pullup resistor on the OneWire pin? I went down to 560 ohms (but on an arduino; I forgot the output power of the esp pins, but less than 1K ohms, it must be possible).
Are there any connections (solder, connector) on the farthest probe extensions?
or maybe it's the program (not the probes) : do you wait long enough for the conversion time? I wait at least 1000 ms. Otherwise you have to test the end of conversion, but it's tedious, and adding 300 ms to 700 ms is easier!
edit : I forgot that with esp32 you don't have to worry about the code, you just have to read the temperatures of the different probes in a file.