The purpose of this project is to monitor the temperature insdide a deep freeze, sound an audible alarm if it rises above a threshold of 0F, and provide a simple web interface to share temperature data over the network for integration into home automation system. It's meant to be connected via Ethernet and powered with PoE from a PoE switch or injector in order to avoid potential problems with losing power and being unable to alert if plugged into the same outlet as the freezer.
You'll need to set the IP address in the "Ethernet variables" section of the arduino code to a valid IP scheme for your network. Note that the octets are all separated by commas rather than periods:
byte mac[] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05 };
IPAddress ip(1,2,3,4);
IPAddress dns(1,1,1,1);
IPAddress gateway(5,6,7,8);
IPAddress subnet(255,255,255,0);
You can adjust the threshold temperature on line 84 by changing the 0 to another temperature:
if (temperatureF > 0) {
- A regular old arduino or clone
- An arduino ethernet shield with the W5100 chip
- A DS18B20 temperature sensor, ideally on a long waterproof lead wire
- Any buzzer of suitable voltage, KS0018 is a convenient package
- A PoE splitter
- Your choice of enclosure, a plastic project box is recommended
- A 3 pin connector for making the temperature probe detachable from the enclosure. Aviation connectors are good here.
- A panel mount ethernet coupler for making the netwrok cable detachable from the enclosure
- A set of magnets for attaching the project box to the side or back of the freezer
- Optionally, an LED indicator and reset button for the outside of the project box
A KiCad schematic is provided.
An example sensor using the REST integration is provided in sensor.yaml and can be copied into your Home Assistant configuration. Two example automations are provided in automations.yaml: one to send an alert when the freezer temperature rises above 0F, the other to send an alert when the sensor is unavailable.