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.