Automatic Aroma Diffuser (v2)

Last week the prime goal was to revise my design thoughts on automatic aroma diffuser and make a bit amended version for a distant client, again using a bunch of readily available inexpensive components. I had one night to redesign the concept and make the concept ready for a trial run.

Essential Oil Diffuser

Now you can find more on this post about the aroma vapor engine design idea. Note that your most primal sense, smell, has the power to affect your mood almost instantly. An automatic aroma diffuser is the most effortless and effective way to instil aromatic fragrances into your surroundings. So, try it out and have fun.

Word of advice: Essential oils are concentrated plant extracts that retain the essence of their natural source. They are inhaled (or diluted and applied to the skin) to treat a number of ailments. Aroma Diffusers creates a cloud of aroma vapor. Although essential oils in aroma diffusers are not heated to a high enough temperature to cause troubles it can still trigger an allergic reaction to someone!

Aroma Diffuser Blueprint

In this version of my aroma diffuser, the aroma vapor engine consists of a heater wire and a cotton ball soaked in glycerine and essential oil (5:1). The heater wire (a piece of nichrome wire) is coiled around the cotton ball and controlled by an Arduino. When the heater wire heats up there is a cloud of soothing smoke.

I think I got some 30-gauge nichrome wire from Amazon a few months ago.

Below you can see a snap of the glowing nichrome wire taken during a quick test.

Nichrome Wire Live

For use in the initial build, I cut off a piece of the nichrome wire with a resistance of roughly 5Ω when rolled and use an independent 5V/2A power supply to excite the hot wire. Not to mention, a power MOSFET is included between the hot wire and the microcontroller (see below).

IRL520 Mosfet Datasheet

The code I used is a bit modified cyclic timer sketch suitable for most Arduino (and Digispark) boards. It switches the vapor on for 6 seconds and off for 12 seconds (you can tweak it of course). Also the LED (D13) on the Arduino board goes on or off when the vapor does. During testing, my Arduino board was powered up by a 6F22 9V battery.

Here is the code:

const int drivePin =  13; //AROMA Arduino
//const int drivePin = 1; //AROMA Digispark
unsigned int driveState = HIGH;
long idleTime = 12000; //OFF TIME_see text
long activeTime = 6000; //ON TIME_see text
unsigned long previousMillis = 0;

void setup() {
  pinMode(drivePin, OUTPUT);
  driveState = HIGH;
  digitalWrite(drivePin, HIGH);

void loop() {
  long currentMillis = millis();
  if ((driveState == LOW) && (currentMillis - previousMillis >= idleTime))
    driveState = HIGH;
    previousMillis = currentMillis;
    digitalWrite(drivePin, HIGH);
  else if ((driveState == HIGH) && (currentMillis - previousMillis >= activeTime))
    driveState = LOW;
    previousMillis = currentMillis;
    digitalWrite(drivePin, LOW);

Obviously, you can use a ready-made 5V relay module (high-trigger input) instead of the MOSFET circuit demoed before. This link will direct you to the WOKWI simulation page.

Aroma Diffuser Arduino Relay Version
Warning! RISK OF FIRE⚠ 
Exposed heater wires can lead to costly fire disasters. So, always remember to turn off your workbench power supply that powers the nichrome wire after you are done experimenting, and do not place anything over the heater wire (and/or in its close proximity)even when not in use!
Nichrome Heater Wire Closeup

Aroma Diffuser & PTC Heater

Almost everything looks great, but handling the aroma vapor engine is a bit of work, because you need to use fresh cotton ball each time, and it takes some time to get everything ready for the next operation.

Therefore, I would like to incorporate a PTC heater (3.7 to 5V) for my next version as it is more convenient to use in portable heating systems. These special heaters come in different styles, the one I have is the 12V type. I have not used that part properly in any design yet, I will give it a try soon (see this post

3V7 to 5V PTC Heater

As a side note, PTC (Positive Temperature Coefficient) heater is an electrical resistance heater. If a constant voltage is applied. PTC heater produces a large amount of heat when its temperature is low and a smaller amount of heat when the temperature rises (its resistance increases with temperature), until it reaches its peak level (equilibrium point) at which the temperature stays relatively stable. Since the temperature regulates itself at the desired maximum, the chances for overheating are significantly scaled down (read more

In Closing

Nothing special to get you excited, but below you will find a too lazy snap captured during the early stages of this aroma diffuser experiment. That is all!

Leave a Reply

Your email address will not be published. Required fields are marked *