Abstract
You probably know that sweat helps cool your skin on a hot day because of evaporation. But do you think you can use evaporation to cool a building? Evaporative cooling systems could provide a more environmentally-friendly alternative to traditional air conditioning. In this engineering project you will build and try to optimize your own model evaporative cooling system.
Summary
Previous experience with Arduino is recommended. See our How to Use an Arduino page.
A kit is available from our partner Home Science Tools®. See the Materials section for details.
No issues
Objective
Build and test a model automatic evaporative cooling system.
Introduction
Evaporation occurs when some molecules at the surface of a liquid "escape" and transfer to a gaseous state. In order to escape the rest of the liquid, a molecule must be moving fast enough (it must have enough energy). As more and more faster-moving molecules escape the liquid, they leave behind the slower-moving, lower-energy molecules that have a lower temperature. This means that the process of evaporation can cool the liquid and anything else the liquid is in contact with - like human skin! That is why our bodies sweat to help us cool down on hot days.
Even without modern science or electricity, ancient civilizations knew about evaporative cooling and used it to help keep cool. Figure 1 shows a device used by ancient Egyptians for evaporative cooling - a porous jar filled with water and wrapped in a coarse cloth. The porous jar and rough cloth give lots of surface area for the water to evaporate. These simple, low-tech devices are still in use today!
Figure 1. An Egyptian jar used for evaporative cooling.
More modern systems use electricity and fans to force air to flow over water (Figure 2). This helps increase evaporation in areas with limited natural airflow. These systems present a potentially more environmentally friendly alternative to traditional air conditioning systems, which use a lot of electricity and require liquid refrigerants that can be harmful to the environment. One downside to evaporative cooling systems, however, is that evaporation also makes the air more humid. Eventually, the air gets so humid that it becomes saturated with water, and no more water can evaporate. This means that evaporative cooling systems generally work better in dry climates than climates that are already very humid.
Figure 2. An evaporative cooler in India.
In this science project, you will build your own model evaporative cooler using an Arduino. You will program the Arduino to behave like a thermostat - a device that automatically controls temperature. You might have a thermostat in your house to control the heat, air conditioning, or both. A basic thermostat uses simple on/off control to maintain temperature near a set point. For example, you might set the temperature to 72°F when the air conditioning is on in the summer. When your house starts to get hot, and the temperature exceeds 72°F, the air conditioning will turn on. When the house cools down a few degrees, the air conditioning will shut off until the temperature rises too much again, and the cycle repeats. For comfort, a thermostat should generally keep the actual temperature as close as possible to the set point and not let it oscillate too much. However, if the set point is very low, or the building is poorly insulated, the air conditioning will have to turn on more frequently, requiring more energy consumption.
To make a thermostat you will need both a fan and a temperature sensor. While you could use a temperature sensor of your choice, the circuit diagram and example code in this project will use the TMP36 temperature sensor. The TMP36 is an analog sensor that converts temperature to voltage. This voltage is read by the analog-to-digital converter (ADC) of your Arduino. Watch the following video to learn more about the TMP36 and how to use it. Note that the TMP36 is sensitive to electrical noise and fluctuations in the Arduino's 5V power supply. As described in the video, there are extra steps you can take to help get better readings, including using the 3.3V supply to power the sensor instead of 5V, using the Arduino's internal 1.1V analog reference voltage instead of 5V, and directly grounding the sensor to an Arduino GND pin instead of using a shared ground on the breadboard.
To make your evaporative cooler, you will also need to control a small cooling fan with your Arduino. Watch this video to learn how.
Now, get ready to design and test your own evaporative cooling system!
Terms and Concepts
- Evaporation
- Liquid
- Gaseous
- Energy
- Temperature
- Surface area
- Refrigerant
- Humid
- Saturated
- Thermostat
- Set point
- Temperature sensor
- Analog
- Voltage
- Analog-to-digital converter (ADC)
Questions
- How does evaporative cooling work?
- What are some advantages of evaporative cooling? Disadvantages?
- How does the energy efficiency of evaporative cooling compare to traditional air conditioning systems?
Bibliography
You can find all of our Arduino tutorials on this page:
- Finio, B. (n.d.). How to Use an Arduino. Science Buddies. Retrieved June 6th, 2024
Learn more about the engineering design process:
- Science Buddies Staff (n.d.). Engineering Design Process. Science Buddies. Retrieved June 6th, 2024
A basic TMP36 tutorial:
- Fried, L. and DiCola, T. (2024, May 7). TMP36 Temperature Sensor. Adafruit. Retrieved June 6th, 2024
This page is about a slightly different temperature sensor, but the same concepts about getting more accurate readings apply to the TMP36:
- marco_c (2018, February 4). Reading LM34, LM35, LM355 (LM3x) Temperature Sensors Accurately. Arduino, CNC, software and other ramblings. Retrieved June 22, 2024
Materials and Equipment 
Recommended Project Supplies
-
Electronics Kit for Arduino, available from our partner Home Science Tools®.
The kit includes the following parts that you need for this project:
- Arduino-compatible microcontroller board
- Note: This project will work with the Arduino UNO R3, UNO R4 Minima, UNO R4 WiFi, and compatible third-party boards.
- USB cable
- Breadboard
- Jumper wires
- Arduino-compatible microcontroller board
- Additional circuit parts (not included in the kit, must be purchased separately). Note: you only need one of each part for this project, but they are not typically available for individual sale on Amazon. You can buy parts individually from electronics vendors like SparkFun and Adafruit.
- Windows or Mac computer. See this page if you have a Chromebook. Your computer will need:
- Access to the Arduino IDE, either installed local version or web-based editor. Watch this video for a comparison of the two options.
- USB port. The Science Buddies kit comes with a USB-A to C cable. The "C" end plugs into the Arduino, and the "A" end plugs into your computer. You will need an adapter or different cable if your computer only has USB-C ports. Watch this video to learn about the different types of cables and adapters.
- Other supplies:
- Cardboard box (roughly the size of a shoebox or slightly smaller)
- Scissors, box cutter, or hobby knife
- Clear packing tape and/or clear plastic wrap
- Pen or pencil
- Small, waterproof, shallow tray or container that will fit in the box with the Arduino and breadboard
- Paper
- Water
- Heat lamp
- Thermometer
Disclaimer: Science Buddies participates in affiliate programs with Home Science Tools®, Amazon.com, Carolina Biological, and Jameco Electronics. Proceeds from the affiliate programs help support Science Buddies, a 501(c)(3) public charity, and keep our resources free for everyone. Our top priority is student learning. If you have any comments (positive or negative) related to purchases you've made for science projects from recommendations on our site, please let us know. Write to us at [email protected].
Experimental Procedure

This procedure is divided into four sections:
- Assemble your circuit: you will build your circuit on a breadboard.
- Test your circuit: you will upload code to your Arduino and make sure that your circuit works properly.
- Build an enclosure: you will cut holes in a cardboard box to serve as a model building for your evaporative cooling system.
- Test your evaporative cooling system: you will test your system and try to find ways to improve its performance.
Assemble Your Circuit
Assemble your circuit on a breadboard, as shown in Figures 3 and 4. Orient the breadboard so the writing is upright when facing you. You can also access a Tinkercad Circuits simulation here. Note: depending on where you bought your breadboard, the left-right orientation of the positive (+) and negative (-) buses on the breadboard may be reversed from what is shown in the figures.
- Put the MOSFET (labeled NMOS in Figure 3) in the breadboard with its three pins in separate rows. The large metal tab on the back of the MOSFET should face to your left, and the writing on the front should face to your right.
- Connect the MOSFET's gate pin (the leftmost pin when the MOSFET is facing you) to Arduino pin 10.
- Connect the MOSFET's source pin (the rightmost pin when the MOSFET is facing you) to the breadboard ground bus.
- Connect the breadboard ground bus to one of the Arduino's GND pins.
- Connect your cooling fan (represented by a DC motor in the diagrams).
- Connect the negative (black) wire to the MOSFET's drain pin (the middle pin).
- Connect the positive (red) wire to the breadboard's power bus.
- Connect the breadboard's power bus to the Arduino's 5V pin.
- Connect the TMP36 temperature sensor (labeled TMP in Figure 3). Put the sensor in the breadboard with each pin in its own row. The rounded side of the sensor should face to your left, and the flat side with writing on it should face to your right. Connect the sensor's pins directly to the corresponding Arduino pins with jumper wires - do not use intermediate breadboard connections.
- Connect pin 1 (the leftmost pin when the writing on the sensor is facing you) directly to the Arduino's 3.3V pin.
- Connect pin 2 (the middle pin) directly to Arduino in A0.
- Connect pin 3 (the rightmost pin) directly to a separate Arduino GND pin, not the breadboard ground bus.


Test Your Circuit
- Download evaporative_cooling.ino. Read through the commented code so you understand how it works. Note: if you are using an Arduino UNO R3 or equivalent, you will need to change lines 25 and 29. See comments in the code.
- Upload the code to your Arduino.
- Open the serial monitor in the Arduino IDE (Tools → Serial monitor). You should see the analog-to-digital (ADC) converter reading, the equivalent voltage in both volts and millivolts, and the temperature in both °C and °F.
- It is normal for the readings to fluctuate slightly. If the readings do not change at all or something seems wrong (for example, the voltage is always zero), double check that your temperature sensor is wired correctly.
- Gently pinch your fingers around the black plastic part of the temperature sensor. Watch the serial monitor to make sure the temperature goes up.
- By default, the fan should automatically turn on when the temperature exceeds 80°F. It should turn off when you release the sensor and the temperature drops back below 80°F.
- If your sensor does not get hot enough to exceed 80°F, try lowering the
threshvalue (the setpoint temperature at which the fan should turn on) and re-uploading your code. - If your fan still does not turn on, double-check that the MOSFET is wired properly.
- If your sensor does not get hot enough to exceed 80°F, try lowering the
Build an Enclosure
As shown in Figures 5-8, cut holes in a cardboard box to serve as an enclosure for your experiment. The box acts as a model for the building or room you want to cool. Make sure your Arduino, breadboard, and small tray that will hold water all fit under the box before you continue. You will need to cut four holes:
- An observation window so you can see inside the box (Figure 5). Cover this window with clear tape or plastic wrap so air cannot get through.
- One for the cooling fan (Figure 6). Trace the outline of the fan on the side of the box and then carefully cut it out with a knife. The fit should be snug so you can press the fan into the hole without it falling out. Use tape to hold the fan in place if necessary. Make sure the fan is pointed such that it will blow air into the box, not suck air out.
- An exit hole for air on the opposite side of the box from the fan (Figure 7).
- A small hole for the Arduino's USB cable to pass through (Figure 8).
- Mount a heat lamp directly above the box (Figure 9).





Test Your Evaporative Cooling System
Once you have everything set up, you can test your model evaporative cooling system and try to optimize the design to cool the interior of the box as much as possible. A data table like Table 1 may be useful for recording your data (you can add more rows as needed).
- Set up your experiment in an area where the ambient temperature will stay as constant as possible (for example, do not put it in front of a window where it may be exposed to direct sunlight, or near a heating or cooling vent). Set up a separate external thermometer to measure ambient temperature in the room. The thermometer should not be under the heat lamp. Monitor the ambient temperature periodically throughout your experiment and record any changes.
- Unplug one of your cooling fan's power wires so it will not run for now.
- Place the cardboard box over your Arduino. Watch the serial monitor for a few minutes to make sure the temperature is stable. Write down this steady-state temperature. It should be close to the ambient temperature in the room.
- Turn the heat lamp on. Watch the temperature change in the serial monitor. Wait for the temperature to stop changing (remember that small fluctuations are normal), then write down the new steady-state temperature with the lamp on.
- Based on your measurements in steps 3 and 4, you may need to adjust the
threshvariable in the code. Halfway between ambient temperature and the temperature with the heat lamp on is a good place to start. - Test your system without any water. Reconnect the power wire for your cooling fan. Watch the temperature in the serial monitor.
- Does the fan turn on automatically when the temperature exceeds your threshold value?
- Does the temperature start dropping when the fan runs?
- Does the temperature get low enough for the fan to turn off? If not, what is the new steady-state temperature?
- Add a tray of water in front of the fan and repeat step 6. If the temperature gets low enough for the fan to turn off automatically, can you decrease the
threshvariable and try again? - Fold a piece of paper into a zig-zag shape (Figure 8) and place it into the tray of water. The paper will soak up the water, increasing the surface area available for evaporation. Repeat step 6. Does the box get colder? How low can you push the
threshvariable before the fan will no longer turn off? - Now, try to optimize your design. Can you experiment with different paper "fin" designs? How do the shape and surface area of the paper affect cooling? What about airflow patterns through the box? Can you change the size or location of the air exit holes? Does this have any impact? There are many more things you can try - see the Variations section for more ideas.
| Conditions | Temperatures | ||||
|---|---|---|---|---|---|
| Heat lamp | Fan | Water | Ambient | Set point | Steady-state |
| off | off | none | |||
| on | off | none | |||
| on | on | none | |||
| on | on | tray only | |||
| on | on | tray with paper fins | |||
| ... | |||||
Table 1. Example data table.
Ask an Expert
Global Goals
The United Nations Sustainable Development Goals (UNSDGs) are a blueprint to achieve a better and more sustainable future for all.
Variations
- Can you test materials other than paper to help with evaporation?
- What if you place a membrane or sheet perpendicular to the air flow instead of parallel to it?
- Can you alter the program to monitor what percentage of the time the fan is on? How would you create a balance between comfort (achieving a low temperature) and energy consumption (how often the fan has to run)?
- If you set a target temperature that is too low, the fan will just run continuously without the system ever reaching the desired temperature. Can you program an "energy saver" mode that limits how long the fan can run, even if the target temperature has not been reached?
- If you purchase a "PWM-compatible" fan, then you can run your fan at variable speed using the Arduino's
analogWritecommand instead ofdigitalWrite. Can you write a program that runs the fan at a variable speed to maintain a more constant temperature instead of constantly switching between on and off? - Can you add buttons or a potentiometer to let the user adjust the target temperature without needing to edit the code?
- Can you add an LCD screen to your system so you do not need to use the serial monitor? Just like a real thermostat, the LCD screen can display information like the set point temperature, actual temperature, and fan status or speed.
- Imagine the cardboard box as a house. Are there other things you can change about the box's design to help keep it cool? What about changing its shape, color, or insulation? Do these things affect how much heat is absorbed from the heat lamp?
- Eventually, all of the water in your tray will evaporate. Can you add a pump to your project to pump water into the tray from a larger reservoir?
Careers
If you like this project, you might enjoy exploring these related careers:
Contact Us
Our kits are developed in partnership with Home Science Tools®. If you have purchased a kit for this project, Home Science Tools® is pleased to answer any questions.In your email, please follow these instructions:
- Include your Home Science Tools® order number.
- Please describe how you need help as thoroughly as possible:
Examples
Good Question I'm trying to do Experimental Procedure step #5, "Scrape the insulation from the wire. . ." How do I know when I've scraped enough?
Good Question I'm at Experimental Procedure step #7, "Move the magnet back and forth . . ." and the LED is not lighting up.
Bad Question I don't understand the instructions. Help!
Good Question I am purchasing my materials. Can I substitute a 1N34 diode for the 1N25 diode called for in the material list?
Bad Question Can I use a different part?
Contact Support














