Automatic temperature control for smoker

To keep the temperature of my Ugly Drum Smoker at a constant level, I created a small Arduino Nano powered board.

I connected a temperature sensor to A2 to “read” the temperature.
The Nano controls both a valve (to open/close the airflow to the smoker) and a PWM controlled fan to blow air in the smoker when more heat is needed.

I also added a display to show the current temperature, an encoder to set the required temperature and a seperate ESP8266 module that posts the temperature to a REST endpoint to I can check the temperature via internet.

Electronics schema:

Parts list:

Display : HD44780 20×4 LCD display module blauw backlight
I2C controller for display: I2C LCD interface voor 16×2 en 20×4 displays
Controller: Velleman Arduino NANO compatibel (ATmega328)
Cifi controller : ESP8266 esp-12e
Relais: (2x) RELAIS 2 X OM 6V DC
Transistor: 2x NPN
Resistor: 4x10k,
Temperature sensor: de sensor van de xenos bluetooth kernthermometer
Rotery encoder: https://www.hobbyelectronica.nl/product/rotary-encoder-verlicht-rgb/
Fan: radial koelventilator
Valve: Motorkogelklep

Source:
source for arduino nano: https://github.com/robbertvdzon/smoker
source for esp8266 : https://github.com/robbertvdzon/smoker-web-client