Embedded Systems Project

Closed-Loop Humidity Control System

During my Embedded Systems coursework at NAU, I worked on a two-part humidity control project where we built both a humidifier and a desiccant dehumidifier. The overall idea was to create a system that could theoretically provide full humidity control by adding moisture when the environment was too dry and removing moisture when the environment was too humid.

This project gave me hands-on experience with microcontrollers, sensors, displays, relays, MOSFETs, power supplies, buck converters, fans, heaters, and physical system design. It was a good example of how embedded systems combine software, electronics, and mechanical design into one working system.


Project Overview

The first part of the project was an automated humidifier. The system used a humidity sensor to read the current humidity, an OLED display to show the current humidity and setpoint, push buttons to adjust the target humidity, and a relay to switch ultrasonic atomizers on and off. The control logic used hysteresis so the atomizers would not constantly cycle on and off when the humidity was close to the setpoint.

The second part of the project was a desiccant dehumidifier. Instead of using a compressor or refrigeration loop, the system used desiccant material to absorb moisture from the air. A heater and fans were used to help regenerate the desiccant and move air through the system. This made the design simpler and helped support the idea of a complete humidity control system.

Together, the humidifier and dehumidifier showed how a microcontroller-based system could monitor humidity, compare it to a user-defined setpoint, and control external hardware to move the environment toward the desired humidity range.


Tools and Skills Used

ESP32 Arduino C/C++ Embedded Systems DHT11 Sensors OLED Display Relay Control MOSFET Control PWM Hardware Debugging

What I Worked On

For this project, I worked on the embedded control side as well as the physical hardware integration. I helped develop the control logic for reading humidity data, displaying the current humidity and setpoint, adjusting the setpoint with buttons, and switching external components on and off based on the measured humidity.

A major part of the project was figuring out how to make the electronics and physical system work together reliably. The humidifier required relay control for the atomizers, while the dehumidifier required higher-power control for the heater and fans. This meant paying attention to power requirements, grounding, component ratings, and how the microcontroller interacted with external devices.



System Features


Humidifier Design

The humidifier was designed to increase humidity when the measured humidity dropped below the target range. The system used a DHT11 sensor to measure temperature and humidity, an OLED display to show the current humidity and setpoint, two push buttons for setpoint control, and ultrasonic atomizers to produce mist.

The final humidifier design used an ESP32 DevKit V1, a 2-channel relay, a 5V 3A power supply, and ultrasonic atomizers. The system was designed around adjustable setpoint control and hysteresis to prevent constant switching. The final presentation showed that the system could update the display in real time and switch the atomizers at the correct humidity thresholds.


Microcontroller

Used an ESP32 DevKit V1 to read sensor data, handle button input, update the display, and control humidifier output.

Humidity Sensing

Used a DHT11 sensor to measure humidity and temperature for feedback-based control.

Display and Input

Used a 0.96 inch OLED display and two push buttons to show readings and adjust the target humidity level.

Output Control

Used relay control to switch ultrasonic atomizers on and off based on the humidity setpoint.


Dehumidifier Design

The dehumidifier was designed as the other half of the humidity control system. Instead of adding moisture, it removed moisture using desiccant material. The system used humidity sensors to monitor the air, a desiccant wheel to absorb moisture, fans to move air through the system, and a heater to help regenerate the desiccant.

This part of the project was more physically challenging because it required building and integrating the mechanical parts of the system. The desiccant wheel, radiator, fan layout, heater control, and air path all had to work together. The final system successfully responded to humidity changes, updated the display in real time, turned the heater on and off at the correct thresholds, and removed humidity using the desiccant wheel.


Desiccant System

Used silica bead desiccant material to absorb moisture from the air and support continuous dehumidification.

Heater and Fans

Used a heater and fans to move air through the system and help regenerate the desiccant material.

Power System

Used a 24V 8A power supply with buck converters to provide the different voltages needed by the controller, motor, fans, and heater.

Motor and PWM Control

Used motor control and PWM signals to manage moving components and airflow behavior.


Project Accomplishments


What I Learned

This project taught me that embedded systems are not just about writing code. The software can be correct, but the system can still fail if the power supply is not strong enough, the wiring is wrong, the relay logic is reversed, or the external components draw more current than expected.

The humidifier helped me learn more about sensor feedback, setpoint control, displays, and relay-based output control. The dehumidifier helped me learn more about higher-power control, MOSFET switching, fans, heaters, buck converters, and mechanical integration.

Overall, this project helped me become more comfortable building systems that connect software to real physical hardware. It also gave me a better understanding of how embedded systems can be used to monitor and control real-world environments.


Back to Projects