Healthy, Smart & Natural Air Cleaner With Arduino, WIFI and Blynk





Introduction: Healthy, Smart & Natural Air Cleaner With Arduino, WIFI and Blynk

About: Born in the Alps, I love travelling, paragliding, trekking and, of course, designing projects. :) I learned a lot from open source project on the last few years, i am very happy to inspire new people with my...

UPDATE: 30/06/2016 Sucess tests inside a confined box! Step 11

Hi, and welcome to this Instructable!

We hear a lot about pollution problems today. As I was doing some research about the effect of bad air for our health, I discovered some statistics about how bad is the indoor compared to the outdoor air. Our apartment is commonly 2 to 5 time more polluted than outside!

Sure, it's quite hard to significantly affect the quality of the air outside, but what about the one in your apartment? Are there any machines absorbing air on one side and rejecting it clean on the other? The answer is yes!

In the 80th, NASA made some interesting articles about how some plants have the abilities to clean the air from certain particles. The most surprising was the fact that the cleaning process doesn't go through the leafs... but through the roots! Too sad the common plant pots aren't really designed to make the air go through the soil.

That's how I imagined this plant pot with one of my friend. We tried to make it well designed, efficient, affordable and even connected! This way, you can easily make one for your home or work place and try to reduce those bad elements in your everyday life.

Step 1: How Does It Work

So basically, the question is : how do we force air to go through the soil of our flower pot?

There are probably several answers to this question... For this project, we decided to use a fan to create an air depression under the pot. If the air under the soil has a lower density than the one from above, it will naturally flow through the dirt. To do this, we made a decorative pot surrounding the flower pot and we designed it to have the most confined area possible between both pots.

As you can see on the pictures, the fan is throwing air out of the decorative pot so the pressure in the area between both pots is lower than outside.

If we just wire a fan inside and glue several part to avoid air leakage, we can say that's pretty much it for a natural indoor air cleaner!

But, as this was only theoretical we didn't want to stop the project here... We trust the NASA a lot, but how can we be sure that the system is actually functioning and not only consuming electricity? By adding sensors! (and I love playing with new sensors :p)

We added to our system a MS1100 sensor that is able to detect Formaldehyde, Toluene and several others unhealthy particles commonly found in indoor air. We also added a DHT11 to detect humidity and temperature, and gathered general data about the environment.

To easily read and manage these data, we added a ESP8266 wifi chip linked to the Blinky application. This way, we can directly read the curves from any wifi device.

Step 2: Part List

When I am working on a project, I like to build things that are as cost efficient as possible, while ensuring good quality. So even those on tight budget can afford to build their own.

To build the cleaner pot we need :

  • 3D printer access
  • Mini Fan 0$, it's typically the kind of component you can find easily for free, as they are present in many devices. I took mine in an old laptop from the tip. Just be careful with the size and particularly the thickness (better less than 20mm).
  • Power supply 3$, once you have your Fan, you can adapt the power supply with it. I think most of them will work on 5V or 12V. A 1A should be enough for most Fan, but taking a 2A is always more secure and not much more expensive (specially if you use a MS1100 sensor which needs a bit of energy as well). for compatibility with the plug, I always use 2.1/5.5mm.
  • Wire

Add sensors and communication (optional)

  • MS1100 formaldehyde sensor 23$, this component is quite expensive, but it's the only one we could find to detect the particles we wanted.
  • DHT11 1$ Humidity and temperature sensor.
  • Blynk app 0$ As long as you don't put too much widgets.

If you are using an Arduino board without USB plug like me, you will also need a FTDI board to load the program on your micro-controller.

If you are not using a 5V fan, you will need an adapted power supply (no more than 5V). In this case you will also need a 5V regulator to set the Arduino and the sensors.

Step 3: A Little Bit of Chemistry

Over the last few years, our indoor air quality has become worst, commonly contaminated by VOCs (volatile organic compound). Often, we think outdoor air quality is worse than indoor air quality, but recent studies have shown that indoor pollution is up to 2-5x time higher than outdoor pollution.

We often hear about Formaldelyde as typical chemical compound for indoor pollution, but it's not the only one: Benzene, Toluene, Trichroloethane, Ammonia...

How do they contaminate indoor air? By evaporation from clothes, furniture, plastics, carpets, paint, solvent...

Formaldehyde: found in paper bags, paper towels, table napkins and synthetic fibers.

Benzene: used in plastics, rubber, detergents, tobacco smoke, furniture wax and paint.

Trichloroethylene: found in printing inks, varnishes, adhesives and paint removers.

For example, Benzene is classified as carcinogenic for human.

On long term, VOCs can cause plenty of different diseases. But some plants are known as cleaning up indoor air, like these ones : Anthurium Andraeanum, Spathiphyllum, Sansevieria Trifasciata, Nephrolepis, Dracaena...

Step 4: The Air MS1100, a Really Uncommon Gaz Sensor!

As I love interacting with sensor, this part is probably the most interesting for me. A project like this is a great way to discover new interactions, and I never played with Gas sensors before!

For the development, we decided to focus on two aspects : having an accurate proof that the air is actually cleaner, and adding some common sensors for the plant and home comfort.

As my friend Sebastien was identifying the molecules we wanted to detect, we realized that there isn't much common sensors detecting those VOC molecules. Furthermore, we weren't able to find much informations on what to choose either... After a bit of work, we identified that the MS1100 seemed to detect most of the particles we needed. It's a 25$ sensor, which is 10 times more expensive than most gas sensors, but it was our only option... So we decided to try it! :)

The second problem was to find data about the sensor : no tutorial at all about it! So we had to work on our own! The only real information we could find was a 4 pages Datasheet (PDF attached). But this was just about the sensor and not the board we bought (which seemed to have analog and digital output).

When we received the board, we were lucky to identify a lm2903 comparator, wired with a potentiometer. We deduced that the digital output was only a trigger to raise an interruption when the sensor reached a certain level (calibrated by the potentiometer). Not really necessary for us, as the small constraint of our system and the presence of a ADC on board, allowed us to quickly read the analog pin.

Once it's plugged, the sensor warms up and the analog output stabilizes after few minutes. We tried to blow on it but there was absolutely no reaction! Second test: we tried to blow some gas coming from a nail painting bottle and... miracle! the sensor went crazy and raised more than 4 times from it's original value. :)

Step 5: How to Make the Recycling Fan Ready

To build a project, I think it's interesting to use some recycling part when you can. Small fans are typically something you can find easily.

For this project, as most of the components work under 5V (except the ESP8266), the best is to find one with the same tension. It also has to be as thin as possible (20mm for the V1 pot, a bit larger with the V2). I opened several devices like laptops, Xbox or old video-projector to find the most easy to adapt. It work with 5V and 400mA (actually it was more 300mA after testing). I decided to remove the protective metallic part (which wasn't actually a good idea :p), but it will really depend on what you can find.

This solution is still a bit noisy, I have to think about a more quiet way for the V2.

Step 6: Electronic : Wiring

When we have the 5V fan and the MS1100 sensor, building the circuit is rather simple. The power supply is a 5V 2A bought on Ebay with a 5.5x2.1mm plug. I had some Arduino nano board and a FTDI board from Sparkfun, so I used it to transfer the program. Then the Arduino could work on its own.

The ESP8266 works on 3.3V, so we had to add a regulator. The RX/TX pin are (supposed to be) tolerant on 5V, so I plugged them directly and it seemed to work fine.

I didn't use any PCB to support and plug the components, so they are directly wired together. This solution is simpler but you have to be very patient while cutting your wire and soldering the tiny pieces.

Step 7: Software

The software was tested on an Arduino Uno and Arduino nano (16MHz). I tried to write a maximum of comments to be easily understandable.

Here are the main features :

  • The software is compatible with the ESP8266 (using UART) and the version 0.3.4 of Blynk application library
  • It read the data from the MS1100 on Analog 0 and from a DHT11 (original code here) on digital Pin 2
  • The sensors data are read every 2 seconds. If the DHT11 does not read any data, nothing is sent to the ESP8266
  • Some Virtual slots are created to communicate with Blynk over WIFI : Humidity values (virtual slot 4) Temperature values (virtual slot 5), MS1100 values (virtual slot 6), a LED trigger (virtual slot 7) to alert if the MS1100 is rising above a defined limit.
  • To have a better control over communication, I added a switch to the Blynk interface to control the LED 13

Step 8: Playing With Blynk

When you have a project using sensors, I find it really nice to have feedback of the values directly on your smartphone or tablet. This way, no need for additional screen, USB serial connection or LEDs...

That's what the Kickstarter Blynk project is about! It allows you to install a smartphone app and connect it directly to your project through WIFI or Bluetooth (on BETA test). You can then read the data from your sensors and even write to activate anything you have plugged in. In this project, I used the free version which allows you to create a first interface with 3 graphics.

I will not write another Instructable on how to use it, you can easily find some good advice here.

WARNING, Following this tutorial did not take much time to make everything work together, but I lost time because of the Blynk version! You have to use the 0.3.4! Older and newer version didn't seem to work right...

Step 9: 3D Design

The design of the flower pot was made with Autodesk Fusion360 by my friend Sebastien Lagoutte. The STL files are under common creative licenses : Creative Common Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0).

The flower pot has been design in 3 parts: the inner plant container, the outer decorative container, and a closing top part.

The inner plant container has a common design but different functions: holes on the bottom allow water evacuation and also air circulation through the soil. On the version 2, some new holes were added behind the fan.

The outer plant container design was designed to hide and integrate the fan and electronics. That's why the design presents 3 flat areas. The pattern of the holes for the fan has been repeated in the other face for aesthetic purposes. Isolated areas have been added to protect electronics from water and humidity.

The air circulation through the soil is effective if the volume between both containers is closed. That's why the top part covers inner and outer containers.

Step 10: Print the Project

The 3 parts have been printed with an Ultimaker 2. But you can print with any 3D printers.

The largest part dimension: 21*19*14 centimeter (W,D,H)

3D printing settings are the same for the 3 parts.

You can use the slicer of your choice: Cura, Slic3r, Makerware, Simplify3D...

Print settings:

Rafts and Supports: No (Designed for no raft and supports)

Resolution: 0.200mm

Infill: 20%

Shell Thickness: 0.8mm

Top/Bottom Thickness: 0.8mm

Print speed: between 30 and 50mm/s (depend of the printing quality you want)

The flower pot has been printed in white PLA and the Top part in green PLA.

PLA is biodegradable, so it's not the best for flower pot application. But ABS filament is toxic during printing with some VOCs dispensed in the air (like Benzene). I didn't made an indoor air cleaner to add pollution during 3D printing process ^^.

To protect the interior of 3D printed parts, you can use Titebond-3 wood glue. After application, your 3D printed pot will be waterproof, but also heat and solvent resistant.

You can also use Colorfabb filament NGen or XT as an alternative to PLA filament.

Step 11: Test 1, on a Box Without the Plant

Here you have the test I did on a box without the plant for one hour. We can see on the graph the VOC are dropping from 337 to 290 while the experience is running. The drop is 47 VOC

  • The graph start at 39, it was before I add the nail product on the box.
  • The graph start to rise, it's when I closed the box with the nail product
  • 4 minutes later, the VOC is 351. I then had to open the box to remove the product.
  • Once the value stabilize, I start the real experience at 337.
  • Then the value started to drop very slowly.

You also have all the print screen I took from the Blynk app to build the graph.

The temperature is acting weirdly in the box, I guess it's because the fan is blowing some air in the small area, it's probably difficult for the sensor to calibrate...

Step 12: Test 2, on the Box With the Plant

Here is the second test, this time with the plant. In one hour the VOC dropped from 323 to 224 so 99 VOC!

With the plant system, the VOC particles are disappearing twice faster! (99 instead of 47).

So during the hour, the plant cleaned a part of the particles!

Step 13: How to Improve the Project

This is the 1st version (and second inside pot version) of this project, so there are of course many possible improvements:

  • The transfer of air between the Fan and the inside pot doesn't seem to be really optimized. We made a second design to give more space behind the Fan. It allowed to create a better depression and to reduce the noise as well. Also, holes were added behind the Fan.
  • The Fan comes from a laptop, it's pretty nice because it's thin and working on 5V but it's a bit noisy. We have to figure out an alternative solution to be more silent.
  • The components are a bit uneasy to wire and fit. A mother board design adapted to fit on the pot would be a better alternative.
  • A was also thinking on adding some RGB LED to control with Blynk. The plant could also become a mood light. There would be almost nothing to do on the program as the interface is already controlling the LED on pin 13.

Step 14: Conclusion

We hope you all enjoyed this Instructable.

As you can see on the last step, there are many ways to improve this little device... If you have any ideas or any questions, we will be glad to work with other people on making it more reliable and efficient.

Automation Contest 2016

Second Prize in the
Automation Contest 2016

3D Printing Contest 2016

Runner Up in the
3D Printing Contest 2016



    • Creative Misuse Contest

      Creative Misuse Contest
    • Oil Contest

      Oil Contest
    • Clocks Contest

      Clocks Contest

    21 Discussions


    4 months ago

    Greate project! I can't wait to finish it as air in my country is terrible.. Anny chances of publishing improved inside pot version?

    1 reply


    Sorry. I didn't plan any 2.0 version yet. Too many things to do right now... :(

    Hi Jeanoy,

    I can't find the things that have to be solved the below problems so how could it be solved

    hi jeanot, the code which u have put up,has generated an error

    "C:\Documents and Settings\army\My Documents\Arduino\s\aircleanr.ino:1:17: fatal error: ESP8266 hard_ser.h: No such file or directory



    compilation terminated.

    exit status 1

    Error compiling for board Arduino pro/pro mini."

    can u please instruct me what to do ?

    1 reply


    I guess you didn't install the necessary libraries in your Arduino Folder. To use an ESP with Arduino and Blynk your are going to need to download and install ESP8266_HardSer.h, BlynkSimpleShieldEsp8266_HardSer.h (see at the beginning of the code, the #include .h means the necessary libraries to compile the code).

    I think SimpleTimer.h is already in the Arduino IDE, but you will see at the compilation.

    Download those libraries and check "how to install library in Arduino" if you are not sure how it works...

    Euuh, it's been a while now, but I would say something around 14 hours for all the parts...

    hi jeanot, the code which u have put up,has generated an error

    "C:\Documents and Settings\student\My Documents\Arduino\s\s.ino:1:17: fatal error: dht.h: No such file or directory

    #include <dht.h>


    compilation terminated.

    exit status 1

    Error compiling for board Arduino/Genuino Uno."

    can u please instruct me what to do ?

    1 reply


    Are you sure you downloaded the right code?? I don't have a "#include <dht.h>" in it.

    You need to download it in the software section, and add the ESP8266 driver on the Arduino.

    Hi Jeanot, was wondering how many sq ft does the cleaner purify?

    1 reply


    Sorry for the late answer, I wasn't home last few weeks :)

    It's a bit hard to say, it will really depend on the Fan, the size of the plant, the quantity of dirt... i am not even sure on how to test this :s

    If I find an idea I keep you in touch ;)

    this is just great. amazing testing protocol as well, thank you for taking the time to create this project and sharing it.!!

    are you familiar with my work.?

    1 reply


    Yeah, I have been on several of your projects before starting mine, very nice :)

    Thank you as well, it seem that you share way more projects than me ;)


    2 years ago

    Nice project. Just I do not understand why using Arduino. Why not Wemos D1 mini for example?

    1 reply

    It would work as well!

    But this project will maybe evolve with more complex sensors. So in this case I like to keep a standard Atmega328.

    If you want to build this project, you could also use a ESP8266 (-12) only, it would work! I don't know how you can keep the compatibility with Blynk though.. But some library probably exist!


    Did you try to see how particles number decrease but without your system ? This comparison could give you its real efficiency. That's a matter of fact that plants and soil can depollute, mushrooms are the best. What do you think about using canabis sativa, two birds with one stone !

    2 replies

    I finished the tests on step 11 and 12, I tried with and without the plant... it seem to work very well :)


    I ll run some test tonight, ^^ I have some new test ideas :)

    As some expensive depollution project exist with this plant technology, it should work. Except if we have some air leak on the system, but it should be all right :p

    Hi, nice project. Please send me your login account on we will give you free energy for this tutorial.

    Regards, Dmitriy.

    1 reply

    Great thank you!

    I was discovering the Blynk app with this project, and I have to admit it's really nice to use ;-)