Network cabinet fan controller

I hot a network cabinet that tends to get quite hot inside. The cabinet houses my QNAP nas and managed Netgear switch, which both gives up a decent amount of heat for such a small cabinet.

Because of that I put an arduino in there long ago to control a fan which pulls the hot air out of the top and sucks cold air in around the lid. However, that arduino ended up in another project, and the cabinet was just left with the lid open for an extended amount of time.

For a while I had been wanting to put an arduino in there again, because it does not really need to be anything fancy at all, because all it really needs to do is to monitor the temperature, and regulate the PWM signal to the fan, which already got the PWM control in. But instead of a simple arduino, I ended up putting my core in there instead, and then the project got a bit over-engineered, or at least the software part of it did.

The result, so far, is easy tweaking of PWM limits, temperature range, pins used, averaging of temperature readings, and how often the different things are updated. Since it is also connected to my WiFi, I also made it show the different values it uses to adjust the PWM duty cycle, and for fun I also made it calculate RPM of the fan.

Source code and pictures (at some point) can be found here: