10" Rack 1U WiFi Climate Controlled Fan Shelf using ESPHome with Home Assistant integration and OLED Display
Obliczymy ostateczną cenę na podstawie wybranego pliku. Sprawdzisz ją i zaakceptujesz przed płatnością.
Zapisane na tym urządzeniu.
This is a 1U Fan Shelf for 10" Racks. It uses ESPHome and a Raspberry Pi Pico 2 W to control the fans with PID control.
- Ocena
- 0 / 5
- Polubienia
- 25
- Pobrania
- 38
- Wydruki
- 0
- Wyświetlenia
- 571
- Oceny
- 0
Aktualizacja u źródła:
Informacje o modelu
- Źródło
- Printables
- Kategoria
- Electronics
- Licencja
- Creative Commons — Attribution — Noncommercial — Share Alike
Summer is coming and I wanted to add a fan shelf to my 10" rack to keep temperatures under control since adding some new equipment.
I wanted the fans to be temperature controlled, and since I am already using Home Assistant, the easiest way for me to do this was using a microcontroller supported by the ESPHome ecosystem.
I found this superb project on github for a climate controlled enclosure fan that served as the basis for the electronics: https://github.com/patrickcollins12/esphome-fan-controller
This ESPHome config reads temperature from a sensor and uses a PID control mechanism to try to maintain a fixed temperature by modulating the fan speed as needed. With all ESPHome projects there is full integration with Home Assistant for monitoring, and to control and set parameters.
Usually ESPhome is targetting ESP32 microcontrollers, which I have a few spare, but I knew space would be tight for the electronics and the 4 x 40mm I wanted. The problem with ESP32 dev boards is that they dont fit great on breadboards, making prototyping challenging - so I went with a Pi Pico 2 W, which is also supported by ESPHome but is thinner, allowing easier prototyping on a breadboard.
For ease to create the final device I went with a breadboard PCB that supports both 3v3 rails for the pi pico, display and temp sensor, and 12v rails for the 12v 40mm PC case fans. This allowed me to go from breadboard to soldered PCB very easily. I used this PCB: https://www.ebay.co.uk/itm/133530666074
BOM for the build:
Sunlu matt black PLA filament
4 x 40mm 12v PWM case fans - I used ARCTIC S4028-6K - you can get a 5 pack from amazon https://www.amazon.co.uk/dp/B09RK5DS9P
Raspberry Pi Pico 2 W (but a Pico W would also work I believe)
1.3" I2C 128x64 OLED display - I used these from amazon: https://www.amazon.co.uk/dp/B09Z2CB7H3
I2C temperature and humidity sensor - there are lots of models to chose from. I went with a SHT30-D from amazon: https://www.amazon.co.uk/Fasizi-SHT30-D-Temperature-Humidity-Breakout/dp/B09Z2FQJKS
Mottramlabs breadboard PCB with built in 12v to 5v and 3v3 stepdown converter: https://www.ebay.co.uk/itm/133530666074
Dont forget to set the jumpers correctly for 12v and 3v3 rails. Also note that the 12v and 3v3 rails share the same ground, which is needed for this build.12v PSU with barrel connector for power
2.54mm SIL male headers for the display and temperature sensor wiring
2.54mm SIL female headers if you prefer not to solder the Pi Pico to the PCB
4 x PWM fan headers - I got these: https://www.ebay.co.uk/itm/232601413009 or you could just use 2.54mm SIL headers
Wires for breadboard
Dupont wires for OLED and temp sensor
Cable ties
4 x M3 x 8-10mm countersunk screws and nuts for the OLED display
4 x M2 x 4mm screws for the PCB
Print settings:
0.2mm Layer Height
5 perimeters
25% gyroid infill
I rotated the model 40 degrees to fit easily on my bed, so I changed the fill angle to 85 decrees
Circuit and Wiring - see photo for the layout I used.
Two GPIOs are used for the I2C bus (only I2C0 is supported by ESPHome)
One GPIO for fan PWM - all 4 fans use the same PWM signal
Four GPIOs to read the tacho signal from each fan for RPM measurements
3v3 power for the Pico, display and temp sensor
12v power for the fans
Additional ground connections to the pico close to used GPIOs
There are two lugs either side of the display for cable management using cable ties - I also wrapped the fan cables around the fans for better cable management.
ESPHome Config:
See the attached zipped YAML
For much more info see https://esphome.io/ and the project by Patrick Collins here: https://github.com/patrickcollins12/esphome-fan-controller
Credit to Flywheel Mistress for their OLED display model, which I used in my model as the basis for the display mount: