This Instructable describes an station to measure Indoor Environmental Quality (IEQ). This is a measure of comfort that is impacted by several factors such as
  • indoor weather including temperature, humidity (pressure would have been possible as well)
  • noise level
  • indoor air quality.
The initial goal of this project was to monitor IEQ in my baby's room. However, such an IEQ station can be used for various applications, such as checking if all your rooms are well-ventilated and with proper temperature regulation. And I'll show a variation that you can take outdoor to make a weather station !

Such a project is composed of several steps, a chain along which the information is carrier over different platforms, from sensors to user interface. Although there are plenty of tutorials on internet, I found that they tended to focus on one step or the other. Therefore with this Instructable, my goal is to show how these different bricks fit together from A to Z.

I hope it'll inspire and help you build your own project. As always - if you like this Instructable, Votes, Favs, and Comments are much appreciated !

Step 1: Environmental Datalogging Information Chain

Several steps are to be considered for a datalogging project. The logical chain is :

1) Sensors: which values are of interest, which sensor to choose ?
2) Platform: where are the sensors connected?
3) Logging: where is the data stored?
4) Communication: if the answer to 3) is not "locally", then how is the data transmitted?
5) Display: how is the data presented to the user in an understable form?

The next steps cover these questions and show the answers I have implemented :

2) Platform : Arduino
3) Datalogging on Thingspeak
4) Variation a) Communicating in direct serial communication to the computer, with USB cable
     Variation b) Bluetooth communication with computer
     Variation c) Bluetooth communication with android smartphone
5) Web display from Thingspeak
<p>hi..while using esp8266 when typed AT+CIPSTART=4,&quot;TCP&quot;,&quot;;,80</p><p><br>OK<br>Linked<br>AT+CIPSEND=4,66<br><br>&gt; GET/update?key=xxxxxxXIK0UCMZV&amp;field1=14<br><br>OK<br>Unlink<br>i am unable to send data to the thingspeak.com<br>help me with this - See more at: <a href="http://www.esp8266.com/viewtopic.php?f=8&t=8400#sthash.p50CWj6o.dpuf" rel="nofollow"> http://www.esp8266.com/viewtopic.php?f=8&amp;t=8400#s...</a></p>
<p>great project. I agree on the reliability of the DHT11, sometimes it just jumps 4 degrees. I have it next to a BMP180 (pressure+temperature) and that in fact shos a much more stable output that is closer to what i actually measure with a thermometer</p>
<p>Thanks for the feedback and info. Will keep in mind</p>
<p>Just as illustration: the top left 'temperatuur' is from the DHT11. The blue line at the bottom right is the BMP180. They are right next to eachother. The DH11 is far off and is all over the place. </p>
<p>I suggest using dht22 rather dht11. Dht22 is still affordable but beter in accuracy</p>
<p>i could, but I got the BMP180 cheaper than the DHT22 :-)</p>
Thanks for the great write up! Its awesome!
Hi, you just made a part of the project I thing to use. But I just discovered this board that could help all of us by allowing to have a Arduino (Due) on the main board on which a linux could be executed and then use it as a home server.<br> <a href="http://www.udoo.org/" rel="nofollow">http://www.udoo.org/</a><br> <a href="http://www.udoo.org/features/" rel="nofollow">http://www.udoo.org/features/</a><br> <a href="http://www.udoo.org/getting-started/" rel="nofollow">http://www.udoo.org/getting-started/</a><br> <br> How to adapt your Indoor Environmental Quality station to implement it on a Arduino Due ?<br> <br> Sincerely thanks and have a nice day,<br> <br> Miguipda ;-)
I forgot this link : <a href="http://www.udoo.org/features/processors-communication/" rel="nofollow">http://www.udoo.org/features/processors-communication/</a>
It's cool, you could certainly consider the Arduino part similarly to mine, and use the linux part to implement web communication. Furthermore, you'd have local storage. So yeah, I think it is a great platform. But I have not considered how to implement it in details, sorry.
Ok. <br>Now a question. <br>Ok all of this allow us to get environmental information. <br>But how could we add the way to activate a fan during a time (allowing to change the delay) when a specifiv value arrived. <br>By example if the humidity level exceed a defined variable (60 or 70 or 80%) then the fan to extract the air to outside must be activated. <br>And we could also add for some other excess (like CO2, like T&deg;). <br> <br>Sincerely thanks.
I suppose a simple IF - read Arduino port on humidity - THEN - write the port commanding the fan, would do it ?<br><br>I am not sure I understand your problem. Is it on the power supply by the Arduino ? If yes, then you might want to use a transistor
Hi, <br> <br>by considering the arduino is powered by solar system (then battery) we may consider the fan could be connected to the same battery with a normally closed relay but becoming open (allowing power) to power the fan. <br> <br>But my more interesting question is to allow people who use your system to decide when the fan (or something else by using a relay) could be activated following the desired condition. <br> <br>Example a variable always to 0. This variable will be changed following the desired condition. Then if I desire the fan could be activated if the humidity is higher than 70% OR the CO2 exceed another value then the initial variable will be set to a value that could activate the fan for a specific time. I means if I just activate the fan when humidity is higher than 70% then I want the fan switch on during 15min. But when humidity and CO2 exceed the limitation the fan must be switch on during 30 min. That means the initial variable (starting to 0) will be increment from 0 to 1, 2, ...) following the factor of duration the fan will be start on. Then the time will become 15 min (minimal value) * initial variation = duration of the fan is switch on then switch off and the initial variable set back to 0. <br> <br>As I still did not tried using Arduino I do not know if this is possible. <br> <br>Could you help us by creating this usefull tool ? <br> <br>Sincereluy thanks and have a nice day, <br> <br>Miguipda ;-)
Cool ideas ! They seem relatively easy to implement. However, I think you should try yourself ! Arduino is all about learning, and having a project is the best way to be motivated to learn.
Your project is amazing.!! <br>we can now reduce the cost of Wifi and update data on cloud via Smartphone. <br>I am also working on Home automation project using bluetooh and smartphone. <br> <br>i will be incorporating your ideas in my device equipped with temperature and humidity sensors.!! <br> <br>www.pluggx.weebly.com <br> <br>Thank you
Great! Happy to help. Keep a kit for me on the side for when you're rich and famous
Hi Don... great project! I posted this on the ThingSpeak blog - http://community.thingspeak.com/2013/05/indoor-environmental-quality-station/ - good luck!
Thanks man. The community was useful to me, happy to contribute back

About This Instructable




More by donmatito:Arduino bot Android remote control Indoor Environmental Quality station +Bluetooth +Thingspeak Plush toy, singing with Mommy's voice 
Add instructable to: