Picture of The Super Simple Arduino Weather Web Server
From the minds at

Added Heat Index & Dew Point calculations
Added Barometric Pressure Sensor

I wanted to set up a home web server that could monitor indoor and outdoor temperature, humidity levels, and even monitor for indoor freezing or flooding conditions (and other security, appliance or environmental alerts). The approach I took consists of a Arduino and a Ethernet shield, running a tiny web server sketch, and for this example, I'm using the popular DHT-11 Temperature / Humidity module. You can interface this to smoke / heat sensors, CO and other gas sensors, and a whole lot more.

For this example you will need:

Ethernet Shield (this could be done with wifi as well with some code changes)
DHT-11 Temp/Humidity Module
10k Ohm Resistor

Optional: BMP-085 Barometric Pressure Sensor

A internet router and home internet access
Remove these adsRemove these ads by Signing Up

Step 1: The DHT-11 Temperature / Humidity Sensor

Picture of The DHT-11 Temperature / Humidity Sensor
This little 4 pin sensor (only 3 are used) is an inexpensive and common sensor. It's easy to use and connect. Pin 1 connects to +5v, Pin 2 to an Arduino Input (we are using D2 on the Arduino), and pin 4 to Arduino Gnd. Since the Ethernet shield will stack on top of the Arduino, plug the DHT-11 into the same pins on the Ethernet shield.

The ethernet shield uses pins A0, A1, D4, and D10-D13
The DHT-11 is using D2, but can be changed.
The BMP180 uses A4 & A5.

Step 2: The Ethernet Shield

Picture of The Ethernet Shield
This shield from Arduino (the company) gives your Arduino (the board) the ability to communicate over the network, and internet. Write down the MAC address on the back, then plug the shield in, on top of your arduino, and connect a Ethernet cable to your router. 
win8921 days ago
Good project. I'm still confuse how to acess my arduino server with no-IP. I use home network for this situation,but i want acess the arduino from anywhere outside my home network. Anyone know ho to do it?
StephenB81 month ago

I'm trying to do something similar with an Arduino server and a MATLAB based user interface, but I'm stuck on getting the Arduino server to accept incoming name/value pairs for receiving information from the MATLAB interface. Does anybody here know how/if I can do that?

GuilhermeB12 months ago

Thank you so much. Worked fine for me, I just followed all intructions step by step.

Thank you again

eduman4 months ago

Very very bad project... it's not working !

sspence (author)  eduman4 months ago

Not a bad project, just maybe poor execution. Did you download the correct library? What version of the IDE are you using? Are your connections correct? Everything is tested well before uploading, and as you can see, the screenshots prove the project works.

eduman sspence4 months ago
(removed by author or community request)
diy_bloke eduman4 months ago

eduman, with all due respect, if the program states "dht" library and you just install a library with a different name (DHT11) ofcourse the program is not working.
As you say you do not know the DHT library the proper way would be to ask about that first, people will always be willing to help.
Sadly though you install a clearly wrong library and then blame the author.
Just for argument sake.... I downloaded the program and it compiles.
Not everybody is an Arduino expert here, that is why we share our knowledge in these ibbkles,but you will find many more people willing to help if you just stay friendly instead of playing the blame game and start making demands.
"would you know where I can find the correct library" will get you more people willing to do that then "So you send correct library Your program is wrong"

sspence (author)  eduman4 months ago

My program is not wrong. It works fine on my hardware, and with the code I posted.

eduman eduman4 months ago

I'm using 1.0.5

BrentW14 months ago

Doesn't work in IDE 1.06.

sspence (author)  BrentW14 months ago
Have not had a chance to test any of my instructables in version 1.0.6, as it just came out. Am downloading and will post what changes need to be made.
sspence (author)  sspence4 months ago

Ok, just tried it in 1.0.6, and it seems to be workign fine. What failed for you, BrentW1?

eduman4 months ago

It's work now. :) The problem is my "import library". I'm so sorry sspence. I'm so sorry.

Thank you very much :)

sspence (author)  eduman4 months ago

Glad it's now working for you. Could you please delete the negative comments?

eduman4 months ago
(removed by author or community request)
sspence (author)  eduman4 months ago

Looks like yo forgot to install the DHT library, or are using the older IDE. This works fine with 1.0.5

eduman sspence4 months ago
(removed by author or community request)
sspence (author)  eduman4 months ago

Library is available in step 3. Maybe they changed their library since this project was built. I will download their latest and retry.

sspence (author)  sspence4 months ago

I just downloaded their latest library and installed it in the libraries folder. the code in this instructable compiles, uploads, and runs fine. This instructable has always been, and continues to be 100% correct.

eduman sspence4 months ago
(removed by author or community request)
sspence (author)  eduman4 months ago

The library link is listed in step 3.

eduman eduman4 months ago

Where is the your download link for DHT lib.?

sspence (author)  eduman4 months ago

Step 3, Lady Ada.

diy_bloke1 year ago
great project, but are you sure you provided the correct library? I get the "DHT11 was not declared in this scope" error message, together with a hoist of other error messages
sspence (author)  diy_bloke1 year ago
Works ok for me. I'm using 1.0.5
indeed, as i already posted, works in 1.05, had problems in 1.02, so it is the IDE, not your code that has the problem
oddly this error occurred in IDE1.02 worked fine in IDE1.05