I bought a small waterproof DS18B20 based temperature probe. Finally I had a reason to use it: to measure the temperature drop in the joeveo mug which I received 2 days ago. While the theory is sound, it’s one thing to just believe in it or to measure yourself. I pick the latter, especially if it it involves some programming!
Using flot (for now) to make a quick graph, I got a sense of temperature drop in my normal ceramic mug as well as an idea of the drop in an insulation mug. The first graph (ice melting in glass) was using integers for the temperature. The DS18B20 can clearly do better, so the next measurements I did with the floating point NodeMCU firmware.
Here the trivial code:
ds18b20 = require("ds18b20") gpio0 = 3 ds18b20.setup(gpio0) # plot temp over time mytime0 = tmr.time() n = 0 function plot_temp() uart.write(0, "["..tmr.time()-mytime0..","..ds18b20.read().."],") n = n > 4 and 0 or n+1 if n == 0 then print() end end tmr.alarm(0, 10000, tmr.ALARM_AUTO, plot_temp)
Integrate the output into a HTML et voilà: a simple yet good looking graph.
Step 2 is to actually measure the temperature in the joeveo mug.