I started this project to see how accurate a simple weather station made with cheap parts would be in comparison to major weather outlets(news, weather.com, etc.).
My intentions are to make 2 identical units and put one at my brothers house and one at my house and collect the data via Adafruit IO. Eventually they will encompass more than just temp and humidity.
The picture is the current version, which will be drastically changing as soon as I get parts in. Right now it's labeled with 55 & 56 because those are the IP's I assigned to each. Using the IP numbers also helped to know what was reporting to Adafruit. You can see that I'm using DHT11's, which after my week long testing session with them, I do not recommend. They are both 5 degrees apart from each other at all times and neither is ever actually on target with what the actual temperature is.
I should point out that I'm not currently following the standards set for weather station data retrieval. I know that there are certain standards but until I have both units giving me accurate readings in the same setting right next to each other, I'm not going to bother with it.
This is by no means a finished project. There will definitely be more additions to this and I will post more when I get there!
Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.
Step 1: What You'll Need to Start
A temperature sensor. As seen in the pictures, I'm using 2 DHT11's that I bought from a Chinese company. They're cheap but I wouldn't recommend them because they aren't very accurate. Neither of the 2 that I have ever have the same readings with the temp or humidity. I have some DHT22's on the way and a variety of other temperature sensors that I intend on testing for accuracy.
For the purposes of this instructable I'm just going to discuss the DHT11, however, the pinout diagram for the DHT22 is the same. If you have something else like an LM35, you may need to google how to hook it up (I believe that the LM35 uses an analog input to connect to, of which the Huzzah ESP8266 has only 1 of so plan accordingly).
A breadboard - regular or half size. I used two Huzzah's so I used my regular sized breadboard to hook it all up. You can probably get away with a half size if you're only using 1 Huzzah and 1 sensor, but the Huzzah also has to connect to the breadboard so it will probably get crowded quick.
If you plan on putting your weather station outside you'll need a separate power supply. I used a common breadboard power supply using the 5.5v outputs and a 9v wall wart to power it. While I was in the hook up/testing stage I started noticing that the usb power wasn't enough for all four components I had going. Once I switched it to the breadboard power supply I noticed a turnaround with the data and things started making more sense, without any wifi drop outs too.
Adafruit IO account - Get one here. Also you can view my current weather dashboard.
Step 2: Wiring It Up and Coding
From the Fritzing schematic, the DHT11 pinout diagram and the picture of my breadboard you should be able to wire it up easily. The Fritzing schematic didn't have the same type of breadboard power supply that I have, which basically supplies power to both sides of the breadboard simultaneously. You'll want to power the Huzzah and the DHT11 with 5.5v.
If this is your first venture into the Huzzah ESP8266 or any ESP8266 you'll find there are two ways to get the code onto it. The first way involves command line programming, which I tried and was successful, but I found it to be a little more tedious than the alternative of setting up the Arduino IDE to do it. There are plenty of resources concerning both methods. The best place I found was the Learning Section on Adafruit.
I've attached a "blank canvas" Arduino IDE code meaning, you will need to read through all the lines of code and change the things that need to be changed. Also, after you've registered with Adafruit IO, you won't need to do anything else just yet. Just get the code onto the Huzzah, run it and check the serial monitor to make sure it's working properly. One of the cool features of Adafruit IO, that I found accidentally, is that if you start sending feed info to your account that doesn't exist, it gets set up and created automatically for you. So if your code is correct you will automatically have temperature and humidity feeds getting data sent to them. Then you just have to set up your Dashboard, which is easy because they guide you through it.
On my Dashboard I have gauge widgets for current temperature and humidity and line chart widgets that show a 5 hour temperature history. There is a blue + you click to add a widget. Just select the one you want, choose a feed to connect (which will conveniently already be there and working if you followed the last paragraph), set the parameters and you're all set.
Step 3: Looking Ahead
So far I've had my current set up outside for a week and I haven't had any dropouts. I'm getting data, but due to the low quality of the DHT11's it's not very accurate. As I stated in the begining both are off from reliable sources by a few degrees in each direction and both of the DHT11's are off from each other by 5-6 degrees all the time. I plan on posting future updates with other various temperature sensors that I'm planning on testing and posting new code and info on any other sensors I throw into the mix. Enjoy.