About Me Weekly Assignments Final Project Student Agreement

Final Project

Smart Diffuser

Winters in New England are incredibly dry. There is often little moisture in the air, and most buildings are heated, further reducing humidity. As someone who experiences cronic nosebleeds, this means that every winter I get nosebleeds two or three times a week. I've found that essential oil diffusers humidify the air, making nosebleeds less likely. However, diffusers operate pretty stealthily, so knowing when they run out of water requires constant monitoring. Additionally, it is difficult to remember to turn on your diffuser until it is too late. The solution? A Smart Diffuser!

A Smart Diffuser is like a normal diffuser, but requires less effort on the consumer's part. Attached to the 3D printed shell is a hygrometer, which is constantly measuring the room's humidity. This will connect to a Graphical User Interface (GUI) to allow the user to input a range of humidity percentage at which the diffuser should automatically turn itself on and off. There will also be an on/off button that overrides the automatic humidity-based feature. A Smart Diffuser is more practical than a traditional diffuser because it keeps the room a comfortable humidity level without requiring as much effort and monitoring on the user's part.

What's Been Done Before?

Looking into past Fab Academy projects, I found that Katya Diaz made a Smart Diffuser as well. It also has the same name as mine, so I will probably need to figure out a new name for mine. Our designs do have different features. Katya's diffuser used an LED strip as a light and could be turned on and off by clapping. She 3D printed the shell of her diffuser and suggested using 30% infill, advice I will defanitely be taking. Additionally, Katya used magnets instead of screws, which is brilliant.
Here is a link to Katya's page: Smart Diffuser

What I Will Design

There are a number of components that I will need to design to complete this project. To start off, I will need to design the plastic shell of the diffuser. It needs a water chamber, a removable top, and a additional chamber for the atomizer board and motor. The most plausable way to do this is likely designing a model in Fusion 360, then 3D printing each part.
After that, I will need to power the atomizer and connect it to the hygrometer. This means I will need to design PCB boards for the atomizer and the hygrometer, as well as something to connect them to the computer the GUI is on (although I may look into wireless technologies so it doesn't need to be connected to the computer incessantly).I plan on doing all electronics design on KiCad.
I will need to create a box to store all of the components in, so I would like to use lasor cut a box composed of living hinges to transport and hold the diffuser.
Finally, I plan on designing a GUI in Tkinter (using Python). This will contain buttons to turn the diffuser on and off, as well as an input box for both high and low humidity levels.

Materials and Components

Most of the materials I will need for my project are already in my campus's Fabrication Lab, but I will need to buy some additional parts elsewhere. Nevertheless, here is a running list of components required to build the diffuser:
Atomizer to vaporize water: I don't have this yet. Because I would need a board that creates high frequency pulces, I will need to buy a premade board and create another to interface with it. I found one I will purchase for $9.89 at this link: Atomizer Link
Wood to lasor cut box: I will use some of the scrap wood in the Fab Lab on campus
Filament to print plastic shell: There are multiple colors and types of filament available in the lab
PCB Board: I have some left over from prior projects Hygrometer: I have an Arduino Humidity and Temperature Sensor Microcontrollers, capacitors, resistors, and other electronic components for my boards: I will solidify exactly what I will need once I finalize the electronics designs, but I do plan on using AtTiny1616s for the microcontrollers
I will need wires to connect the borads that are communicating with each other. Alligator clips are an option, but feel a bit sloppy, so I will need to look into more aestetically pleasing methods of connecting the boards.
LEDs: If I finish all other parts of the board, I may add an LED strip that changes colors.

So far my only expense is the atomizer, which is pretty inexpensive, but I do plan on forgetting important components and needing to purchase more.

Parts, Systems, Processes and Evaluation

Evaluation of my final project will be based on functionality of the product. This means that the four primary techniques needed to create the board are working and properly executes. These four parts are:
1. The 3D printed plastic body I designed using CAD software
2. A laser cut box made with 2D CAD software
3. Hygrometer and diffuser communication: this includes electronics design, serial communication, input devices and output devices
4. A GUI Menu connecting to the diffuser

Potential Issues and Additional Questions

Admittedly, I am anticipating that anything and everything that can go wrong will go wrong. One of my primary concerns is the fact that I am designing and using electronic parts that will be stored adjacent to a water chamber. Water and electricity don't tend to mix nicely, and I am concerned that a water leak will either destroy the boards or electricute someone. I also am a nervous about communication between the boards. Serial communication is one of my weaker skills, and I expect there will be many unforeseen problems. There will be many wires connecting boards as well, and I will need a way to keep the wires neat and not susceptable to water damage that is also not an eyesore.



For my Graphical User Interface, I am using tkinter,, which is part of Python.

The purpose of this is to take user input of their desired humudity range, which will then send that data to the microcontroller to inform the hygrometer. It also has an on/off button to override the humidity sensor.

I started by writing the code for the low and high range.

This code creates an input box for the user to give their low and high desired humidities to inform the hygrometer

After that, I made the on and off buttons.

Here is a link to the final code:

Python Code Link

The GUI has serial communication with the main board, which is coded in Arduino. Here is the link to that code:

Arduino Code Link


My current plan for the electronics is to have a central board that has seperate connections to the hygrometer, diffuser, and computer.

Here is a link to the board design:

PCB Design Link

3D Printed Shell

I used Fusion 360 to model the plastic shell of the diffuser. My first attempt at this was done during CAD week, but it counl use some work.

CAD Week Link

I ended up having to design and print a second shell to hold the electronics shell, because I was unable to make the laser cut box. Here are the files to the two shell designs:

Electronics Shell Design
Water Chamber Shell Design

Box and Vinyl Cutting

My lab's laser cutter broke (to clarify, I was not the person who broke it), so I 3D printed the compartment to store electronics (see above) and vinyl cut the name of the product to achieve the final required form of fabrication.