Arduino Filament Dryer Box With Temperature & Humidity Control
by podgy31 in Design > Software
20 Views, 0 Favorites, 0 Comments
Arduino Filament Dryer Box With Temperature & Humidity Control
Keep your 3D printing filament dry and ready with this Arduino-controlled filament dryer box. It uses a 12V cartridge heater to hold the tub at temperature, a fan controlled by humidity, and a 16x2 LCD showing live readings — all in a 3-tier stackable box.
- Heater holds 45–55°C (bang-bang control with 10°C hysteresis)
- Fan kicks on when tub humidity exceeds 20%
- LCD shows heater temp, tub temp, tub humidity, and heater/fan status icons
- Fully open-source: https://github.com/Plmangion1/arduino-filament-dryer
⚠️ This project uses mains-powered components (12V PSU) and a cartridge heater. Wire safely and ensure your enclosure is heat-tolerant.
Supplies
- Arduino Uno
- Keyestudio 4-channel relay module (SRD-12VDC-SL-C)
- DS18B20 waterproof temperature probe (heater/heatsink sensor)
- DHT11 or DHT22 temperature + humidity sensor (tub sensor)
- 16x2 LCD with I2C backpack (PCF8574T)
- 12V 70W cartridge heater (6x20mm)
- 12V fan (120x25mm)
- External 12V power supply (5A or higher)
- Stackable storage box (3 tiers)
- Wiring, terminals, heatsink
Wiring
Pin assignments:
| Signal | Arduino pin |
|----------------------|-------------|
| DS18B20 heater probe | D2 |
| DHT tub sensor OUT | D3 |
| Relay IN1 (heater) | D4 |
| Relay IN2 (fan) | D5 |
| LCD SDA | A4 |
| LCD SCL | A5 |
Power:
- Relay VCC and both relay COM terminals → 12V supply positive
- Arduino, relay GND, 12V supply GND → common ground
- Arduino 5V → relay logic, DS18B20, DHT11, LCD
- Heater → Relay1 NO terminal
- Fan → Relay2 NO terminal
Important: The COM–GND jumper on the relay board logic header must stay in place.
Upload the Firmware
Libraries needed (install via Arduino Library Manager):
- OneWire
- DallasTemperature
- DHT sensor library (Adafruit)
- Adafruit Unified Sensor
- LiquidCrystal_I2C
Download the sketch from GitHub:
https://github.com/Plmangion1/arduino-filament-dryer/blob/master/filament_dryer.ino
Upload to your Arduino Uno and open Serial Monitor at 9600 baud to verify sensor readings before boxing it up.
Control Logic
Heater: OFF at 55°C, back ON at 45°C — driven by the DS18B20 on the heatsink.
Fan: ON when tub humidity > 20%, OFF when tub humidity ≤ 19% — driven by the DHT sensor inside the tub.
LCD display:
[flame] H:40.0C [fan]
T:22.0C 45%
Flame icon = heater ON/OFF. Fan icon = fan ON/OFF.
Assembly
- Tier 1 (bottom): Arduino Uno + wiring
- Tier 2 (middle): 4-channel relay board
- Tier 3 (top): I2C LCD display on the lid
Mount the DS18B20 probe on the heatsink (outside the tub). Mount the DHT sensor inside the tub. Route wiring between tiers and glue/cable-tie in place once tested.