ThingPulse / esp8266-weather-station

ESP8266 Weather Station library supporting OpenWeatherMap, Aeris and other sources
MIT License
1.07k stars 363 forks source link
arduino arduino-library esp8266 openweathermap openweathermap-api openweathermap-client thingpulse weather-information weather-station

ThingPulse ESP8266 Weather Station

PlatformIO Registry PlatformIO CI

This code works best with the NodeMCU V2 ESP8266 module and an 0.96" OLED display. To get you up and running in no time we created a kit which contains all the necessary parts: https://thingpulse.com/product/esp8266-iot-electronics-starter-kit-weatherstation-planespotter-worldclock/

By buying this and other kits from us you are funding maintenance and development of this library. Thank you!

ThingPulse ESP8266 WeatherStation Classic Kit

Service level promise

This is a ThingPulse prime project. See our open-source commitment declaration for what this means.

Install and configure Arduino IDE

Make sure you use a version of the Arduino IDE which is supported by the ESP8266 platform. Follow the tutorial on our documentation platform.

Install libraries in Arduino IDE

Install the following libraries with your Arduino Library Manager in Sketch > Include Library > Manage Libraries...

Prepare the software

Setup for PlatformIO

If you are using the PlatformIO environment for building

Available Modules

Why Weather Station as a library?

I realized that more and more the Weather Station was becoming a general framework for displaying data over WiFi to one of these pretty displays. But everyone would have different ways or sources for data and having the important part of the library would rather be the classes which fetch the data then the main class. So if you write data fetchers which might be of interest to others please contact me to integrate them here or offer your code as extension library yourself and call it something like esp8266-weather-station-. We will gladly list it here as third party library...

Upgrade Notes

Version 2, January 2020, removes WU support, see below

Replace Wunderground with OpenWeatherMap as weather data provider

The weather information provider we used so far (Wunderground) recently stopped their free tier without previous notice on May 15, 2018. This release adds support for a new provider with a free tier for weather information: OpenWeatherMap.com. The basic demo (WeatherStationDemo) has been adapted to use this new API through the OpenWeatherMapCurrent and OpenWeatherMapForecast REST clients.

Sadly OpenWeatherMap provides less information than Wunderground did (or still does). If you are missing attributes in the response documents then please contact the OpenWeatherMap team.

ESP8266 OLED Library upgrade

The ESP8266 OLED Library changed a lot with the latest release of version 3.0.0. We fixed many bugs and improved performance and changed the API a little bit. This means that you might have to adapt your Weather Station Code if you created it using the older 2.x.x version of the library. Either compare your code to the updated WeatherStationDemo or read through the upgrade guide

Deprecation notes

Announcement Module Removal
2024-09-19 OWM requests by city name and city ID, see their documentation
2018-06-13 all Wunderground related code, see our blog for details January 2020, version 2.0.0