Hi, @waspie !
First of all i'd like to say about value "85" - according to DS18B20 datasheet page 6, note after table 4.1: *The power-on reset value of the temperature register is +85°C.
Your code looks fine and similar to my mains-powered DS18B20 sensor (because we used same example).
I have some thoughts:
you may have power problems:
a. from logs i see that you have 1 sensor, but you left defined #define MAX_ATTACHED_DS18B20 16 . If (suddenly) you would have 16 sensors - when you ask them for conversion they would consume 16* 1.5mA(max at 5v) = 24mA which is above recomended 20mA for atmega pin
b. you are powering from battery: DS18B20 oficially requres minimum of 3 v (as for datasheet). People say that with lower voltage it may have strange readings or even do not work at all
c. you are powering from battery through pin: is voltage raise fast enougth before start reading? is voltage drop low enought so voltage supplied to ds18b20 is >=3v?
i'd suggest you to measure voltages (but multimeter won't show you short drop-outs when start conmsuming) and try to feed VCC of DS18b20 directly from power source. If not possible - at least measure voltage and try to add some wait() after powering up pin (or also before measure start or after sleep).
When running from 3v, what frequency of atmega processor is? If it is 16mHz - that it is not in safe operating area for that voltage. you should run 8 mHz. (>=2.4v for 8mHz and >=3.78v for 16mHz)
Also i suggest you try to change sleep(conversionTime); with wait(conversionTime); and check if it will change anything (especially when ds18b20 directly powered from source). Also try with fresh batteries.
If nothing helped, then for "85" value simple solution will be
if (temperature != 85)
send();
because it is very rarely that people need to measure 85 degrees of Celsius at home...
~~ ~~
For advanced battery-powering i highly recommend to read this. Also you can find there about frequency vs voltage.
And for internal battery voltage reading:
i don't remember where i found it: here1 or here2 or somwhere else..
but you may want to get more accurate readings by measuring and setting Internal Reference Voltage value and using it in the code, and give it some time to stabilize and/or use some type of averaging.