Lucky Resistor has written up documentation on his fan controller project:
The fan controller described on this project page, controls one or more PWM controlled 12V PC fans. It uses the input from two precise DHT22 based temperature sensors. The MCU is an Arduino Uno, which is powered using a 12V power source. On top of the Arduino Uno, there is the Adafruit data logger shield — and on top of that is an Adafruit LCD shield. The software is a simple, custom written PID controller.
More details at Lucky Resistor’s project page.
A tiny PID controller project from Ethan Zonca:
Therm is a very small PID controller with an OLED display, thermocouple interface, and USB port. It can switch an external solid-state relay for driving large loads, or a transistor for driving small loads. When attached to a computer, it enumerates as a USB serial port for easy control and logging of data. The design is based around a STM32F0 microcontroller and the MAX31855 thermocouple-to-digital IC (note: an RTD version of therm is in the works).
Project info at Protofusion site.