I got a USB thermometer from eBay called TEMPer. I found some code which creates a driver and reporting app for which, with some patching, I used in a little cronjob. The code can be found at SlackBuilds.org, and seems to work OK on Slackware 13.1. It does, however, output temperatures which are generally 9.3 Celsius higher than the actual temperature, so the figure below has erroneously high temperatures.
Below is a plot of last month’s temperature data from the TEMPer.
I wrote a little Octave/MATLAB script which takes the raw data from the cronjob output and does a frequency analysis with the FFT tools in Octave/MATLAB. I use the frequency domain to lowpass filter the raw data (the blue line) with a cutoff at 1/7 per day to smooth the data (the green line). Comparison of this filtered line with some regional data from a meteorological station shows pretty good agreement:
Meteorological data from http://www.southamptonweather.co.uk/wxgraphs.php for the same time period as the graph above. |
The line of interest is the green line in the lowest panel. The duration of the two plots is the same, but the y-axes differ in scaling.
There are a number of interesting trends in the two data sets. Both graphs decrease for the first 5 or 6 days followed by a relatively slow increase in temperature which peaks at ~12 days before present (the 15th). From the 15th onwards, temperatures decrease until the 17-18th, where the temperature begins to rise again, until the 22nd, where the graphs diverge. The meteorological data continue on their upward trend, however the TEMPer data suddenly drop 2-3 Celcius.
The reason for this divergence is we turned our heating off around the 21st. Following this static shift of a few degrees, the two graphs track the same trend, but the TEMPer data is now lower.
Finally, the huge temperature spike in the TEMPer data for the last two days or so is from friends visiting and the heating being put back on for two late nights.
I’ve got a longer time series from the internal sensors on the PC, but hopefully this USB thermometer will give me less CPU-load-dependent temperatures.