Introduction: DIY Hair Dryer N95 Breather Sterilizer

According to SONG et al. (2020)[1], 70° C heat produced by a hairdryer during 30 minutes is enough to inactivate viruses in an N95 breather. So, it's a feasible way for regular people reuse their N95 breathers during day-to-day activities, respecting certain constraints like: the breather must not be contaminated with blood, the breather must not be broken, etc.

The authors state that the hairdryer should be turned on and let on heating for 3, 4 minutes. Then, a contaminated N95 breather must be put inside a ziplock bag and submitted to 30 minutes of heat produced by the hairdryer. After this time, viruses would be effectively inactivated on the mask, according to their studies.

All the actions stated above aren't automated and there are constraints that can deteriorate the sterilization process like heating temperature too low (or too high). So this project aims to use a hairdryer, a microcontroller (atmega328, available at Arduino UNO), a relay shield and a temperature sensor (lm35) to build an automatic Mask Sterilizer based on SONG et al. findings.


1x Arduino UNO;

1x LM35 Temperature Sensor;

1x Relay Shield;

1x 1700W Dual Speed Hair Dryer (Taiff Black 1700W for reference)

1x Breadboard;

2x male-to-male jumper cables (15 cm each);

6x male-to-female jumper cables (15 cm each);

2x 0.5m 15A electrical wire;

1x female electric connector (according to your country standard - Brazil is NBR 14136 2P+T);

1x male electric connector (according to your country standard - Brazil is NBR 14136 2P+T);

1x USB Cable type A (to program Arduino);

1x Computer (Desktop, Notebook, Any);

1x Vise;

1x Pot lid;

2x Rubber Bands;

1x Hardcover Spiral Notebook;

1x Ziploc® Quart Size (17.7cm x 18.8cm) bag;

1x Adhesive tape roll

1x 5V USB Power Supply

Step 1: Automatic N95 Breather Sterilizer Modeling

As stated before, this project aims to build an automatic sterilizer based on SONG et. al (2020) findings.
The following steps are necessary to achieve it:

1. Heat hairdryer for 3 ~ 4 minutes in order to achieve 70°C of temperature;

2. Let hairdryer on for 30 minutes while pointing it to the N95 breather inside a Ziploc® bag in order to inactivate viruses on the breather.

So, modeling questions were formulated in order to build a solution:

a. Do all hairdryers produce 70°C temperature after heating for 3 ~ 4 minutes?

b. Does/Do hairdryer(s) keep a constant 70°C temperature after 3 ~ 4 minutes of heating?

c. Is the temperature inside Ziploc® bag equals to the temperature outside it after 3 ~ 4 minutes of heating?

d. Does the temperature inside Ziploc® bag increase at the same rate as the temperature outside it?

In order to answer these questions the following steps were taken:

I. Record heating curves from two different hairdryers for 3 ~ 4 minutes in order to see if both can achieve 70°C

II. Record hairdryer(s) heating curves (LM35 sensor must be outside Ziploc® bag at this step) for 2 minutes after 3 ~ 4 minutes of initial heating.

III. Record temperature inside Ziploc® bag for 2 minutes after 3 ~ 4 minutes of initial heating and compare it with data registered in step II.

IV. Compare heating curves registered at steps II and III (inside and outside temperatures related to Ziploc® bag)

Steps I, II, III were did using an LM35 temperature sensor and an Arduino algorithm developed to inform periodically (1Hz - through USB Serial communication) temperature registered by LM35 sensor in function of time.

The algorithm developed to record temperatures and the recorded temperatures are available here [2]

Step IV was realized through data recorded in steps II and III as well through two Python scripts which generated heating functions to describe heating inside and outside Ziploc® bag as well plots from the data recorded at both steps. These Python scripts (and libraries required to run 'em) are available here [3].

So, after doing steps I, II, III, and IV it's possible to answer questions a, b, c, and d.

For question a. the answer is No as it's possible to see, comparing data registered from 2 different hairdryers in [2] that one hairdryer is able to achieve 70°C while other can only achieve 44°C

To answer question b, the hairdryer which cannot achieve 70°C is disregarded. Inspecting data from the one that's able to reach 70°C (available at file step_II_heating_data_outside_ziploc_bag.csv [2]) the answer to b is also no because it can't keep a constant 70°C temperature after the initial 4 minutes heating time.

Then, it's needed to know if temperatures inside and outside Ziploc are equal (question c) and if they increase at the same rate (question d). Data available at files step_II_heating_data_outside_ziploc_bag.csv [2] and step_III_heating_data_inside_ziploc_bag.csv [2] submitted to curve fitting and plotting algorithms in [3] provide answers to both questions, which are both no because the temperature inside Ziploc® bag reached a maximum of 70 ~ 71°C while the temperature outside reached a maximum of 77 ~ 78°C and Ziploc®'s bag inside temperature increased slowly than its outside counterpart.

Figure 1 - Curvas de Aquecimento Fora e Dentro do Involucro shows a plot of outside / inside Ziploc® bag temperatures in function of time (orange curve corresponds to inside's temperature, blue curve to outside's one). As it's possible to see, inside and outside temperatures are differents and also increase at different rates - slowly inside Ziploc bag than outside. The figure also informs that the temperature functions are in the form of:

Temperature(t) = Environment Temperature + (Final Temperature - Environment Temperature) x (1 - e^(temperature increase rate x t) )

For the temperature outside Ziploc® bag, the temperature function in terms of time is:

T(t) = 25.2 + 49.5 * (1 - e^(-0.058t))

And for the temperature inside Ziploc® bag, the temperature function in terms of time is:

T(t) = 28.68 + 40.99 * (1 - e^(-0.0182t))

So with all this data (and other empirical results) at hand, the following can be stated about this DIY N95 Sterilizer modeling process:

-Different hairdryers can produce different temperatures - Some won't be able to achieve 70°C while others will surpass this reference a lot. For the ones which can't achieve 70°C, they must be turned off after the initial heating time (to avoid useless waste of energy) and some error message should be prompted to the sterilizer's operator informing this issue. But for those who surpass 70°C degree reference, it's needed to turn the hairdryer off when the temperature is above a certain temperature (70 + superior margin) °C (in order to avoid damages to the N95 breather's protection capacity) and turn it on again after N95 cooled to a temperature under (70 - inferior margin) °C, to continue sterilization process;

-The LM35 temperature sensor can't be inside Ziploc® bag, because the bag needs to be sealed in order to avoid room contamination with viruses strains, so, LM35 temperature should be placed outside the bag;

-As the temperature inside is lesser than its outside counterpart and demands more time to increase, it's mandatory to understand how the cooling (decreasing) process happens, because, if the internal temperature takes more time to decrease than external temperature, so, there's a causal relationship between increasing/decreasing process of inside/outside Ziploc®'s bag temperature and thus it's possible to use the external temperature as a reference to regulate the entire heating/cooling process. But if don't then, another approach will be needed. This leads to a 5th modeling question:

e. Does the temperature inside Ziploc® bag decrease slower than outside?

A 5th step was taken to answer this question and temperatures obtained during the cooling process (inside/outside Ziploc® bag) were registered (available here [4]). From these temperatures, cooling functions (and their respective cooling rates) were discovered for cooling outside and inside Ziploc® bag.

The outside Ziploc® cooling function bag is: 42.17 * e^(-0.0089t) + 33.88

The inside counterpart is: 37.31 * e^(-0.0088t) + 30.36

With this in mind, it's possible to see that both functions decrease in an equal way (-0.0088 ≃ -0.0089) as Figure 2 - Curvas de Resfriamento Fora e Dentro do Invólucro shows: (blue/orange is outside/inside Ziploc® bag respectively)

As the temperature inside Ziploc® bag decreases at the same rate as the temperature outside it, the outside temperature can't be used as a reference to keep the hairdryer on when heating is needed because outside temperature increases faster than inside temperature and when outside temperature reaches (70 + superior margin) °C inside temperature would be lesser than the necessary temperature to sterilize the breather. And through time, the inside temperature would experience a diluted decrease in its medium value. So, it's necessary to use the inside temperature function in terms of time to determine the necessary time to increase it's temperature from (70 - inferior margin) °C to at least 70°C.

From an inferior margin of 3°C (and consequently, a starting temperature of 67°C) in order to reach ≃ 70°C, it's required to wait at least 120 seconds, according to inside Ziploc® bag's temperature function in terms of time.

With all the answers to the modeling questions above, a minimally viable solution can be built. Of course, there must be features and improvements which couldn't be approached in here - there's always something to be discovered or improved - but it's that all elements elicited are able to build the necessary solution.

This leads to the elaboration of an algorithm to be written at Arduino, in order to achieve the established model.

Step 2: Automatic N95 Breather Sterilizer Operation Algorithm

Based on requirements and modeling questions elicited in step 2, algorithms described in above picture were developed and are available to download at

Step 3: Uploading Code to Arduino

  1. Download Arduino Timer Library - [5]
  2. Download N95 hairdryer sterilizer source code -
  3. Open Arduino IDE
  4. Add Arduino Timer Library: Sketch -> Include Library -> Add .ZIP Library and select file, from the folder where it was downloaded
  5. Extract file
  6. Open n95hairdryersterilizer.ino file with Arduino IDE
  7. Accept prompt to create a sketch folder and move n95hairdryersterilizer.ino to there
  8. Insert USB Cable Type A into Arduino UNO
  9. Insert USB Cable Type A into PC
  10. At Arduino IDE, with sketch already open, click on Sketch -> Upload (Ctrl + U) to upload code to Arduino
  11. Arduino is ready to run!

Step 4: Wiring Relay Shield to Electrical Connectors

Relay Shield Power Cord Building:

1. Wire groundpin from electrical male connector into ground pin of electrical female connectorwith15A electrical wire;

2. Wire a pin from electrical male connector directly to C borne connector of relay shield with 15A electrical wire;

3. Wire the other pin from electrical male connector into the left pin of electrical female connector with 15A electrical wire;

4. Wire the right pin from electrical female connector directly to NO borne connector of relay shieldwith 15A electrical wire;

Plugging hairdryer into Relay Shield Power Cord:

5. Plug hairdryer'selectrical male connector into Relay Shield Power Cord'selectrical female connector

Step 5: Wiring Relay Shield to Arduino

1. Wire GND from Arduino into negative line of Breadboard with male-to-male jumper cable;

2. Wire 5V pin from Arduino into positive line of Breadboardwith male-to-male jumper cable;

3. Wire digital pin #2 from Arduino into signalpin of Relay Shield with male-to-female jumper cable;

4. Wire 5V pin from Relay Shield into positive line of Breadboard with male-to-female jumper cable;

5. Wire GND pin from Relay Shield into negative line of Breadboard with male-to-female jumper cable;

Step 6: Wiring LM35 Temperature Sensor to Arduino

Taking the flat side of LM35 sensor as frontal reference:

1. Wire 5V pin (1st pin from left to right) from LM35 into positive line of Breadboard with female-to-male jumper cable;

2. Wire signal pin (2nd pin from left to right) from LM35into A0 pin of Arduino with female-to-male jumper cable;

3. Wire GND pin (1st pin from left to right) from LM35 into negative line of Breadboard with female-to-male jumper cable;

Step 7: Attaching Hairdryer to Vise

1. Fix the vise over a table

2. Place hairdryer in the vise

3. Adjust the vise in order to leave hairdryer well attached

Step 8: Preparing Ziploc® Bag Support

1. Pick the hardcover spiral notebook and place two rubber bands in it as shown in first image;

2. Pick a potlid (like the one shown in the second image) or anything that can be used as a support to leave the hardcover spiral notebook in a straight position;

3. Place the hardcovered spiral notebook with two rubber bands at top of pot lid (as shown in third image)

Step 9: Placing Breather Inside Ziploc® Bag

1. Carefully put N95 Breather inside Ziploc® Bag and seal it accordingly, in order to avoid possible room contamination (Image 1);

2. Place Ziploc® Bag at its support (built on previous step), pulling the two rubber bands placed over hardcover spiral notebook (Image 2);

Step 10: Attaching Temperature Sensor to Ziploc® Bag Outside

1. Attach the LM35 sensor outside Ziploc® Bag with a little adhesive tape, as shown above;

Step 11: Placing N95 Breather and Its Support in Correct Position

1. N95 Breather should be at 12.5 cm of distance from the hairdryer. If placed in a greater distance, the temperature won't increase above 70°C and sterilization won't happen as it should. If placed in a closer distance, the temperature would increase well above 70°C, causing harm to the breather. So 12.5 cm is the optimal distance for a 1700W hairdryer.

If the hairdryer has more or less potency, the distance should be properly adjusted in order to keep the temperature close as possible to 70°C. The software at Arduino prints temperature every 1 second, in order to make this adjustment process feasible for different hairdryers;

Step 12: Putting Everything to Work

With all connections from previous steps having been performed, plug Relay Shield power cord electrical male connector into a power outlet and insert USB Cable Type A into Arduino and into an USB power supply (or Computer USB port). Then, the sterilizer will start working just like the above video

Step 13: References

1. Song Wuhui1,Pan Bin2,Kan Haidong2等. Evaluation of heat inactivation of virus contamination on medical mask[J]. JOURNAL OF MICROBES AND INFECTIONS, 2020, 15(1): 31-35. (available at, accessed in Apr. 08, 2020)

2. Santos, Diego Ascânio. Temperature Capturing Algorithm and Temperature Over Time Datasets, 2020. (Available at, accessed in Apr. 09, 2020)

3. Santos, Diego Ascânio. Fitting/Plotting Algorithms and its Requirements, 2020. (Available at, accessed in Apr. 09, 2020)

4. Santos, Diego Ascânio. Temperature Cooling Datasets, 2020. (Available at, accessed in Apr. 09, 2020)