This was the first temperature controller. It all started in an brushless motor package that I had from my drone project. there was no screen, just serial communication from the Arduino IDE.
This is the first display iteration of the Climate control system for the fermentation fridge. Its case was a cigar box and the only hardware being used was an arduino uno, 4 Temperature sensors, 2 solid state relays and a LCD screen.
The new version is similar to the first one, except for the added real time clock (to keep track of time for the compressor's cool down period), a prototype boards with JST connectors (so if a component does not work it can easily be replaced) and updated code to run faster. I also added indicator lights to let the user know what solid state relay turned on. The blue light indicates that the compressor is on, the green light represents circulation fan and the red light is the heater. The buttons were added so the user can change the desired set temperature with red and green indicator lights.
This wiring was updated to have quick connect terminals and twisted wires to keep the inside clean looking and it helps protect the sensor signals from being interrupted by electrical noise in the fridge.
These are the relays that turn on and off the heater, fan and compressor.
The sensors are wired to certain pins on the Cat5 cables. These are a good platform for the sensor lines because they can easily get plugged in and take out which makes cleaning easy.
The terminal block is where all the sensor connections and I/O communication exchange. This could been hard wired, but it was an unnecessary soldering job and when it was being developed, troubleshooting was easier to see and fix.
This model was exactly how I envisioned the controller after the MKII, but there was a large technical/learning curve in order to reach this point.
The final design has a more elegant finish and the code was sigifigantly reduced and organized. With the raspberry pi sending commands straight to the Arduino, it can run code in parallel to divide up the tasks. This allows the Py to focus on the GUI for a better user experience.