Ultrasonic essential Oil diffuser
-
Hi,
my wife like to use essential oil in the house, but basic humidifier use a lot of water and increase the ambiant humidity in the room.
I notice also that the smell of the oil is not really intense.So the idea, modify a cheap ultrasonic humidifier and create an oil diffuser without dealing with water.
The start, a cheap Donut humidifier 6$ on ebay.
then, I decide to build a wood enclosure with a removable top for easy oil bottle changing and put everything together.
The top is maintain by 2 small magnet, and the ceramic caps just touch the top of the Bottle wick.
Regarding the Sketch, Its like a dimmer, V_status for the On/Off state, V_percentage for the frequency.
/** * The MySensors Arduino library handles the wireless radio link and protocol * between your home built sensors/actuators and HA controller of choice. * The sensors forms a self healing radio network with optional repeaters. Each * repeater and gateway builds a routing tables in EEPROM which keeps track of the * network topology allowing messages to be routed to nodes. * * Created by Henrik Ekblad <henrik.ekblad@mysensors.org> * Copyright (C) 2013-2015 Sensnology AB * Full contributor list: https://github.com/mysensors/Arduino/graphs/contributors * * Documentation: http://www.mysensors.org * Support Forum: http://forum.mysensors.org * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * version 2 as published by the Free Software Foundation. * */ //################# // INCLUDE //################# #include <SPI.h> #include <MySensor.h> #include <Time.h> //################# // OPTION //################# #define DEBUG #define MIN_DELAY 10 #define MAX_DELAY 90 bool Diffuser_status; uint8_t Diffuser_Freq; int delaytowait; unsigned long lastUpdate; int nbseconds = 0; //################# // CHILD ID //################# #define CHILD_ID_DIFFUSER 0 //################# // PIN DEF //################# #define DIFFUSER_PIN A3 //################# // VAR //################# MySensor gw; //################# // Messsage Settings //################# MyMessage IntensityMsg(CHILD_ID_DIFFUSER, V_PERCENTAGE); MyMessage StatusMsg(CHILD_ID_DIFFUSER, V_STATUS); void setup() { gw.begin(incomingMessage, AUTO, false); pinMode(DIFFUSER_PIN, OUTPUT); digitalWrite(DIFFUSER_PIN, HIGH); //################# // Info //################# gw.sendSketchInfo("Difuser", "1.0"); //################# // Send Presentation //################# gw.present( CHILD_ID_DIFFUSER, S_DIMMER ); Diffuser_status = gw.loadState(5); Diffuser_Freq = gw.loadState(8); gw.send(StatusMsg.set(Diffuser_status ? true : false), true); gw.wait(200); gw.send(IntensityMsg.set(Diffuser_Freq),true); } void loop() { unsigned long now = millis(); gw.process(); if (now - lastUpdate > 1000) { nbseconds++; lastUpdate = now; } float delaytowaittmp = ((MAX_DELAY - MIN_DELAY) / 100.0) * Diffuser_Freq; int delaytowait = delaytowaittmp; if ((Diffuser_status == true) && (nbseconds > delaytowait)) { digitalWrite(DIFFUSER_PIN, LOW); delay(100); digitalWrite(DIFFUSER_PIN, HIGH); delay(100); digitalWrite(DIFFUSER_PIN, LOW); delay(100); digitalWrite(DIFFUSER_PIN, HIGH); delay(100); nbseconds = 0; }else if(nbseconds > delaytowait) { nbseconds = 0; } } void incomingMessage(const MyMessage &message) { if (message.type == V_STATUS || message.type == V_PERCENTAGE) { int req_status = -1; int req_percentage = -1; if (message.type == V_STATUS) { req_status = message.getBool(); Diffuser_status = req_status; gw.saveState(5, Diffuser_status); } if (message.type == V_PERCENTAGE) { req_percentage = message.getByte(); Diffuser_Freq = req_percentage; gw.saveState(8, Diffuser_Freq); } } }
Now, you can have good smell in every room for some dollars when you arrived from work, when you start cooking, when going to sleep or entering in your Bat Cave !
-
Wow, I didn't see that actuator coming.
-
...think we need a new sensor type: V_ESSENTIAL_OIL_DIFFUSER
-
@fifipil909 That's outstanding work!
I never knew these ultrasonic essential oil diffusers existed.
for version 2 you need to add a sensor for when the oil is depleted!
What sort of current does the ultrasonic humidifier demand?
-
The enclosure is very nice too.
Hand made ?
-
@gregl yes, I think about add a level indication by using a simple ldr and a led, shouldn't be complicated to archeve.
regarding the ceramic caps, a lot of them you can find on ebay use 40 Vac at 1.6Mhz. so not so easy and finding a 8:1 transformer working at this frequency to make a small DC to AC converter is not that easy.
after some search, I find some other caps like exactly the same there is on this "donut" humidifer. they are working at a much low frequency, 113khz to be exact.
http://fr.aliexpress.com/item/20mm-113KHz-ultrasonic-atomizer-transducer-atomizing-part/32273063940.html?spm=2114.44010308.4.177.0Amsoy
Regarding the voltage, I found some caps working at 5vpp but the donut caps seems to working arround 50v.
I don't have any idea how they boost the voltage to that pick.here is some scope:
Mofset Gate :
Caps input:
the sinus wave it's really durty, but seems to be enough to vibrate the caps.donut IC :
if someone have some idea of what is this black component on the right side. seems to be the one that boost the voltage up to 60v.
@tripy yes everything handmade. my friend carpenter help me to glue together some piece of wood plate like this : http://planete-bois.com/plans-de-travail/28-plan-de-travail-chene-lamelle-colle-aboute.html I manage the rest with a router and a drill press.
-
"what is this black component on the right side"
id say its a simple transformer. how many leads go into it? ( photos a bit blurry )
-
@fifipil909 I assume the black component is a coil. There are many simple circuits which can generate a high voltage with a coil/ transformer or capacitors and diodes.
Some noisy examples
-
There is 3 leads.
I did try to make better pic.
-
Wow... you're resourceful persion. i want build this but it difficult for me
-
Hi,
It's hard to say right now.
It can be interesting to know how do you control the On/Off.Those Ceramic caps don't like to be used without any liquid and can be damaged very quickly if there are dry.
But normally there is a build in switch off circuit if no liquid is detected.Can you tell me more how to you modify the electronic to control it with Mysensors ?