WeatherStation – Getting Code & Adapting It

Do you like this post? A regular project like the PlaneSpotter Color takes many hours of my free time to develop and maintain. Would you offer me a beer for my hard work if I was your neighbour? Modern technology called teleportation makes it easy to send me a beer. Just click here. Thank you!

[maxbutton id=”2″] [maxbutton id=”3″]

Please make sure that you succeeded in all the steps described here before you continue with the following instructions.

Installing all the libraries

Since the first version of this tutorial I have changed some parts of the code and turned it into a library. As a matter of fact not one library but three! But don’t get discouraged, it is easy enough to install them.Go to Sketch > Inlcude Library… > Manage Libraries… and install these three libraries:

Click to zoom


Click to zoom


Click to zoom

Make sure that you always have the latest version of the libraries installed. Users have reported many issues which could be reduced to updating the library. Also make sure that you only have one version of each of the libraries installed.

Open the Weather Station Example

You have now installed the three required libraries. Along with them came example sketches. If you have already worked with the Arduino IDE you might have used other demo sketches before. Now we are going to use the Weather Station template to get started.Go to File > Examples > ESP8266 Weather Station > WeatherStationDemo

Save the new sketch with a good name in a location you will remember;-), but leave it open.


Wunderground API Key

In order to display up-to-date weather information we’ll need to call a service. I recently switched from to To get the Wunderground API key go to and pick the “Stratus Developer” plan. Then get your API key from this page:

Click to zoom


If you should forget your key you can always come back and get it here. Or re-generate it just as I did after creating this screenshot;-)

Configuring the Weather Station

Now comes a bunch of configuration options:
  • Let’s start with the Wifi Settings. Replace yourssid with the name of your Wifi network and yourpassw0rd with its password. I had problems with a network that contained a dash (“-“) in the SSID. If you’re having problems consider this hint…
  • Next is the update interval. In the default it is set to 600 seconds or 10 minutes in other words. In my experience this is a good value, because you don’t have unlimited requests in your free Wunderground API account…
  • Now to the display settings. If you attach the display as I show on the next page you don’t have to change anything here. D3 and D4 are the pin names of the NodeMCU module. If you get compilation errors about them make sure that you have set your board to NodeMCU V1.0. If you have one of course;-). If you have another board just replace them with the proper pin number, e.g. “5” or “6”.
  • Use Time Client Settings section to adjust your local time zone offset compared to UTC time zone. It allows also half an hour offset, thanks to the user who made me implement that… (Ignorance is a bliss until you get confronted with it…)
  • In the Wunderground section you can now use the API key you received in the previous section. Also set the country and city of the place you want to show. To figure out which values work you can modify this URL: and replace APIKEY with yours and “CA” and “San_Francisco” with your state or country and city.
  • For the moment ignore the ThingSpeak settings. We will use them for a later extension…

Now we are almost ready to get the weather station running on the ESP8266 for the first time. But we need to wire the display to the NodeMCU first… Read the next chapter after the break…

[maxbutton id=”2″] [maxbutton id=”3″]