Some tropical fish, such as bettas, need to live in warm water. So, just put them in a coffee pot, right?
No. That will cook the fish, not warm it. So Derek Trombello created a way to control the heating element:
The temperature is sensed using an NT03-50169 500 ohm temperature sensor R1 in a standard voltage divider configuration. This is fed to the MSP's built-in ADC and, using a look-up table (calculated using values found in the device datasheet plugged into python scriptcreateTemperatureLookup.py), is converted to a temperature in Fahrenheit. When the temperature drops below a preset limit (74° in this case), transistor T3 is switched on which in turn activates relay K1. This is the coffee pot's built-in relay and energizes the heating element under the warming plate. As a side-effect, an LED (D2) is turned on to indicate that the heater is on.
When the temperature rises to above the preset of 78°, transistor T3 is switched off, turning off the heating element. There is a ¼" layer of aquarium rocks placed on the bottom of the carafe, so these release heat for a while after the element is turned off, keeping the water warm and continuing to raise the temperature for a little while. I have found that the temperature usually rises to about 84° before beginning to drop back down.
I wanted to use the coffee pot's original built-in dual 7-segment LED display to continually display the temperature. The original display used some sort of house number for which I couldn't find any pin out data. I did manage to trace the pin out myself, but it wasn't conducive to multiplexing so I found another display module that perfectly fit within the original window. The pin count needed for this is kept low by combining a BCD-to-7-Segment decoder IC and multiplexing. In this way, only six pins are needed to drive the 14 individual segments of the display. Each digit is updated fast enough that there is no flicker at all.