Single-channel temperature monitor with output to control a relay powering a propagator heater element.
Requires:
- The GPIO Library (Already on most Raspberry Pi OS builds).
- The Flask web server. Install command:
- sudo apt-get install python3-flask
- A Raspberry Pi.
- Hardware with MAX31855 temperature monitors.
- Hardware to control a heater element. In my case this was a propagator with a faulty control unit re-wired to drive the relay from the Raspberry Pi.
Installation:
- Copy files to a folder on the Raspberry Pi.
- Edit /etc/rc.local to autorun application:
- sudo nano /etc/rc.local
- Add: python /home/pi/.../propagator.py where ... is the location of your file.
- Edit config.xml to define your system hardware. The defaults match my hardware.
Recommendations (to make life easier):
- Set a static IP address.
- Define a hostname.
- Create a fileshare.
- Install VNC for full headless access.
See wiki.
Added log of min and mix propagator temperature measurements
Added timed temperature schedule, e.g. to allow different day/night temperature profile
Removed ability to set the temperature from the web page
Added proportion of time heater is on and air temperature to log
Modified display to use the last value measured for heater control
Added calibration for main sensor
Added store and display of heater state
Added ability to set temperature and right back to file (so that after restart the set temperature is unchanged)
Added read of temperature from text file
Corrected code to run threading
Updated config to match my hardware build
Initial trial code.
Supports one temperature monitoring channel. While I have re-used code from a multi-channel temperature logger, it is not currently intended that this code drives more than one propagator however it is likely that the way the code has been written that it would work.
MAX31855 driver modified from https://github.com/Tuckie/max31855.