The power supply looks great! I'm quite tempted to give it a go - one of those Nokia LCDs and a rotary encoder would make a really nice compact variable voltage supply :) Also I reckon you could connect GND via a 1 Ohm (or less!) resistor, and could then measure and display the current drawn....
As for fan control, triacs are probably best as @allObjects says. You could use something like this which has the opto-coupler for driving built-in, which makes everything much safer.
You've then got to detect zero-crossings, but if you used an old-style (transformer-based) AC wall-wart power supply you get a lower voltage and can detect it quite safely. For low-noise switching, as the fan has quite a bit of mass, you could simply choose either to power the fan or not power it every 50Hz (during the zero crossing). It's nice and easy and avoids all the timing issues (although those can be overcome if needed ;).
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
The power supply looks great! I'm quite tempted to give it a go - one of those Nokia LCDs and a rotary encoder would make a really nice compact variable voltage supply :) Also I reckon you could connect GND via a 1 Ohm (or less!) resistor, and could then measure and display the current drawn....
As for fan control, triacs are probably best as @allObjects says. You could use something like this which has the opto-coupler for driving built-in, which makes everything much safer.
You've then got to detect zero-crossings, but if you used an old-style (transformer-based) AC wall-wart power supply you get a lower voltage and can detect it quite safely. For low-noise switching, as the fan has quite a bit of mass, you could simply choose either to power the fan or not power it every 50Hz (during the zero crossing). It's nice and easy and avoids all the timing issues (although those can be overcome if needed ;).