Martin's corner on the web

DIY Internet connected smart humidifier

I worked on creating a Internet connected humidistat last week using my open source WiFi relay project as platform. We observe quite dry air at our house, I suspect this is due to the fact that we use fan coils for heating/cooling. Humidity levels at home are usually below the 30% mark, which poses a health risk along with uncomfortably dry air. I’ve found these interesting charts that got me convinced I need to do something:

healthy-moisture-rangeLow humidity helps spread virus/bacteria over air.

The comfortable zone for humans depends on the temperature, here is what it looks like for most of us:



We own a ultrasonic humidifier, but it has no setpoint, just on/off with intensity setting. Also, I’d like it to work only in certain times, not all of the time, so that called for using the WiFi thermostat scheduling function, only re-worked to take the humidity as to determine on/off state rather than temperature:

I realize there are homes with exact opposite problem, i.e. humidity is too high. For that reason I have a “Dry” function to use with  air drier as well so the relay will function using opposite logic i.e. activate when humidity is exceeded.


The project uses a DHT22 temperature sensor mounted to the side of the enclosure for better ventilation and reliable reading:



I threw in a ultra-cheap I2C OLED status display to get a visual reading. Milling the box so that the OLED shows was pretty nasty, hated it. I cut a piece of paper and placed it on top of the cover, below the transparent lid to cover up for the lousy milling job:

The humidistat switches on and off the humidifier as needed, the humidifier itself is plugged in to a plug in the relay. The humidifier auto detects when water is out and stops, so I didn’t have to care about that.

Last I attached an external antenna, not that I needed it for this particular project, but just wanted to test the range improvement. It turns out the ESP8266 has balun and adjusts when external antenna is connected. Range indeed is better, I’d say at least by 30%. Even without the external antenna, I get coverage from the entire house, house surroundings. With the external antenna I could get coverage in a tool shack at the far end of the garden.

You can pump the readings to Thingspeak for visual analysis and eye candy, this is available to enable from the main menu.

The source code for the project is available on GitHub. The hardware is available to purchase in my shop.


In conclusion, the project is a beautiful illustration of Internet connected thing that adds value to our daily life.



3 thoughts on “DIY Internet connected smart humidifier

  1. Pingback: ESP8266 powered web server + LED control + DHT22 temperature/humidity sensor reading | Martin's corner on the web

  2. Fabio


    First, congratulations for this great design!
    I’m doing some tests and would like to change the DS18B20 and Relay 1 IOs. I tried to put the sensor in GPIO12 and could not, or Relay 1 in GPIO5 did not work either.
    Using NodeMCU I could already use this configuration.

    Could you help me where I need to change the code to use the sensor and relay other pins?

    Thanks in advance.