Project Overview
Arduino Nano + USB ultrasonic mist maker: Build a low-cost cool-mist diffuser and expand it into a smart plant humidifier using a capacitive soil moisture sensor and a relay-controlled power switch.
A 5V USB ultrasonic mist maker is a small disc that vibrates at about 113 kHz and turns water into a fine, cool cloud of mist. Drop one into a jar of water and you have an instant aroma diffuser, plant humidifier, Halloween fog machine, or kitchen-counter humidifier for under $5 of hardware.
This guide shows how to power the mist maker safely, build a simple aroma diffuser with mood lighting, and outlines a smart plant humidifier control loop.
- Time: 30 to 60 minutes
- Skill level: Beginner to Intermediate
- What you will build: A USB ultrasonic mist maker diffuser with optional WS2812B lighting and an Arduino-controlled on/off relay for automation
Parts List
From ShillehTek
- Arduino Nano V3.0 - simple control for relay switching and sensor reading
- ESP32 WROOM Dev Board - optional alternative controller if you want WiFi-based automation
- WS2812B LED Strip - ambient mood lighting under the mist
- Capacitive Soil Moisture Sensor V1.2 - soil moisture input for the smart plant build
- 1-Channel 5V Relay - switches mist maker power on/off safely from a microcontroller pin
External
- 5V USB ultrasonic mist maker disc (often sold as a complete module with a driver board and a small cable)
- A jar, vase, or plant pot of clean water
- A 5V/2A power supply
- Essential oils (optional, for the aroma diffuser)
Note: Most USB mist maker kits include a driver board that generates the high-frequency signal for the disc. Control the kit by switching its 5V input power using a relay (or MOSFET), not by trying to drive the disc directly.
Step-by-Step Guide
Step 1 - Understand how an ultrasonic mist maker works
Goal: Learn what the disc is doing and the two rules that prevent early failure.
What to do: Inside the small metal disc is a piezoelectric crystal driven at about 113 kHz. The disc oscillates a few microns at that frequency, generating localized cavitation in the water immediately above it. Cavitation bubbles collapse so violently that water molecules are flung into the air as a fine, cool mist (about 1 to 5 microns droplet size). No heat and no boiling, just mechanical atomization.

What to do: Follow these two rules to keep the disc alive:
- It must be submerged. Run it dry and the crystal can overheat in seconds.
- Use distilled or filtered water. Tap-water mineral deposits coat the disc and reduce efficiency over time.
Expected result: You understand why water level and water quality matter before you start wiring.
Step 2 - Wire the mist maker with a relay (power switching)
Goal: Safely turn the USB mist maker on/off from an Arduino pin by switching 5V power to the driver board.
What to do: Most USB mist maker kits ship with a small driver board. It takes 5V in and outputs the high-frequency drive to the disc. To control it from an Arduino, switch its input power using a relay (or MOSFET). Do not attempt to modulate the high-frequency drive directly.
Code:
USB 5V (+) -> Relay COM
Relay NO -> Mist driver board (+)
USB 5V (-) -> Mist driver board (-)
Arduino D7 -> Relay IN
Arduino 5V -> Relay VCC
Arduino GND-> Relay GND
Expected result: When the relay is activated, the mist maker driver board receives 5V and the disc produces mist (only when submerged).
Step 3 - Build 1: Simple aroma diffuser with mood lighting
Goal: Make a basic diffuser and add WS2812B lighting so the mist glows.
What to do: Drop the disc into a small glass with water plus about 3 drops of essential oil (optional). Wire the relay control input to Arduino D7. Wire a single WS2812B pixel below the glass so the mist glows the color you set.

Code:
#include <FastLED.h>
#define PIXEL 6
CRGB led[1];
void setup() {
pinMode(7, OUTPUT);
FastLED.addLeds<WS2812B, PIXEL, GRB>(led, 1);
digitalWrite(7, HIGH); // mist ON
}
void loop() {
static uint8_t hue = 0;
led[0] = CHSV(hue++, 255, 200);
FastLED.show();
delay(60);
}
Expected result: The mist maker runs and the WS2812B slowly cycles colors so the mist glows.
Step 4 - Build 2: Smart plant humidifier with a soil moisture sensor
Goal: Use a capacitive soil moisture sensor reading to automatically run the mist maker when soil is dry.
What to do: Combine the mist maker with the capacitive soil moisture sensor V1.2. When soil moisture drops below a threshold, run the mist for 30 seconds, wait 5 minutes, re-check, and repeat. The mist can drift down onto the plant’s leaves and topsoil, which helps plants that want higher humidity without overwatering.
Code:
const int SOIL = A0;
const int MIST = 7;
const int DRY = 750; // calibrate
const int OK_ = 500; // stop when above this
void setup() {
pinMode(MIST, OUTPUT);
digitalWrite(MIST, HIGH); // active LOW relay = OFF
}
void loop() {
int v = analogRead(SOIL);
if (v < DRY) {
digitalWrite(MIST, LOW); // ON
delay(30000);
digitalWrite(MIST, HIGH); // OFF
delay(300000); // wait 5 min for absorption
} else {
delay(60000);
}
}
Expected result: When the sensor reading indicates dry soil, the Arduino turns the mist maker on for 30 seconds, then waits before checking again.
Step 5 - Build 3: Halloween fog effect
Goal: Use the mist maker to create a denser fog effect for seasonal props.
What to do: Use a bigger basin of water with the mist maker submerged. Place dry ice or cooled water above to help the mist roll downward in dense fog (cold air sinks). Power the mist with a relay-driven Arduino and trigger it with a PIR sensor so fog billows when someone walks past. Add a WS2812B strip underneath for a green or purple glow.

Expected result: You get a visible fog-like effect that can be triggered on demand.
Step 6 - Avoid the common failure: low-water protection
Goal: Prevent disc damage by ensuring the mist maker cannot run when water is too low.
What to do: Running the disc out of water for more than about 10 seconds can kill it. Add a low-water safety using a second probe (for example, a second capacitive sensor or two exposed wires) so the relay cannot close if the water level drops below the probe. When the probe is not in water, it does not conduct and the mist shuts off.
Expected result: If the water level drops too far, the system prevents the mist maker from running dry.
Conclusion
A low-cost USB ultrasonic mist maker plus an Arduino and a relay can produce several practical effects, including a simple aroma diffuser, a plant humidifier, and a decorative fog effect. By switching 5V power to the mist maker driver board and keeping the disc submerged, you get reliable on/off control without touching the high-frequency drive.
Inspiration credit: DIY Ultrasonic Humidifier Night Lamp on Instructables.
Want the exact parts used in this build? Grab them from ShillehTek.com. If you want help customizing this project or building something for your product, check out our IoT consulting services.


