Would you mind sharing more technical review of what you created?
From my experience: ESP32/RP2040 work without additional circuitry which works with most fans, but for protection, you want to add level shifters. Not all fans pull up the PWM pin to 3.3V, the spec allows for 5V.
Shameless plug, hopefully this is allowed here.
I built something like that, that allows fan control via WiFi. First I built it only for myself, but since the spare boards from PCBA quickly sold, I decided to keep it stocked.
Short gist: 12V Input, ESP32S2, ESPHome-based. Has 4 PWM-fan outputs, onboard temperature & humidity sensor and Qwiic expansion port.
The ESPHome code & schematic is on Github: https://github.com/zeroflow/wifi-fancontroller
If you want one, it's available on Elecrow for $35,99: https://www.elecrow.com/wifi-fancontroller1.html
If you want to build it by yourself, the schematic is in the hardware folder. And if you don't want to use ESPHome - there is no firmware lock, you find the pin assignment on the product page and can write your own firmware if you so desire.
We work in very hot greenhouses, so fans (and peltiers) are essential. And proper thermal sensors. I check 4 different ones. Esp. needed is also a humidity sensor, because we don't want it to cool down below the dew point.
It's PWM, controlled via mraa. mraa_pwm_write()
bobsterlobster•2d ago
An Arduino Nano generates the 25kHz PWM signal, and a companion Windows application reads CPU temp and sends the duty cycle over serial. The Arduino firmware is open source (MIT).
gzread•1h ago
johndough•53m ago