The main purpose of a refrigerator is to keep stable low temperature in the general compartment and even lower temperature in the freezer. The temperature inside and outside of the refrigerator is one of the most important sources of sensor data for the diagnostic process. Ideally, we would like to know the temperature at each time instance and at each point in the refrigerator and in the environment. This setup is, of course, ideal and unfeasible in practice, so we have to sample the space at several discrete points.
To measure the temperature we use the absolute champion of low-cost temperature measurement: the DS18B20 semiconductor sensor. The DS18B20 costs less than USD 3, has integrated Analog to Digital Converter (ADC), and even provides a unique laser-engraved identification code for easy location. The operating range is from to which is well-above our requirements. The resolution is 12-bit with an accuracy of . We believe that the accuracy is often better than the one advertised in the data-sheet.
The DS18B20 is relatively slow and it may take up to 750 ms to convert a temperature measurement. On the positive side, the DS18B20 needs only two wires as it can be powered via the data-line. In our application we use external 5V power supply from the Arduino MEGA 2560 voltage regulator. Multiple DS18B20 can be chained in series. The only think that we need to connect a chain of DS18B20s to the Arduino digital I/O is a pull-up resistor of .
A instrumented refrigerator is shown in the photo below.
We managed to wire very thin wire outside of the refrigerator without drilling it (we used the whole for the refrigerant pipe).
The photo below shows the freezer sensor. The sensor is in a waterproof casing.
Finally, we mount two external sensors on top of the refrigerator: