https://github.com/synox/openweathermap-spark-lib
DISCONTINUED: openweathermap.com implementation for Spark-Core
https://github.com/synox/openweathermap-spark-lib
Last synced: 12 months ago
JSON representation
DISCONTINUED: openweathermap.com implementation for Spark-Core
- Host: GitHub
- URL: https://github.com/synox/openweathermap-spark-lib
- Owner: synox
- License: cc0-1.0
- Created: 2014-03-31T18:51:19.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2016-04-26T13:09:50.000Z (about 10 years ago)
- Last Synced: 2025-04-06T16:39:52.868Z (about 1 year ago)
- Language: C++
- Homepage:
- Size: 12.7 KB
- Stars: 16
- Watchers: 4
- Forks: 9
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Weather Library for Spark-Core
=============
*You should use the web-hook used in the project https://github.com/pkourany/RGBPongClock rather than this library. There it is much easier. There you just need to strip of the stuff you don't need. Good luck.*
This is a simple library to load weather information from openweathermap.com, made for spark core (http://spark.io) (Arduino compatible).
It's free, you just have to sign up for an api-key at: http://openweathermap.org/appid
> This library should be considered **alpha** tested software. Please report any problems, I am happy to help.
## Installation
* You have to download the ``HttpClient.cpp``/``HttpClient.h`` files from [HttpClient library](https://github.com/nmattisson/HttpClient) to your project.
* As well download the Parser library https://github.com/bblanchon/ArduinoJson with the ``.cpp`` and ``.h`` files.
* Download the files ``.cpp``/``.h`` files from this project page.
If you are building locally, change the file ``build.mk`` and add the ``.cpp`` files.
## Usage
See the following code, replace the location and the api key.
```c++
#include "openweathermap.h"
#include "HttpClient.h"
Weather* weather;
HttpClient* httpClient;
void setup() {
httpClient = new HttpClient();
weather = new Weather("London,UK", httpClient,
"INSERT your api key here!");
weather->setCelsius();
// or weather->setFahrenheit();
}
void loop() {
weather_response_t resp = weather->cachedUpdate();
if (resp.isSuccess) {
Serial.print(resp.temp_low);
Serial.print("-");
Serial.print(resp.temp_high);
Serial.println(resp.descr);
}
}
```
There is also a non-cached method, if you want to handle caching yourself:
```c++
weather_response_t resp = weather->update();
```
Also see the example in the project directory.
## Weather data
Currently the library loads the high and low temperature for today, including a short description. You can see the list of Condition-Codes at: http://openweathermap.org/wiki/API/Weather_Condition_Codes
### Can I extend it to include other data?
Sure! Look at the data: http://api.openweathermap.org/data/2.5/forecast/daily?q=London&mode=xml&units=metric&cnt=2
then change the method ``Weather::parse`` and extend the ``weather_response_t``.
## How could I help? (TODO)
* test in Spark web ide
* make two distribution files (cpp and h) including everything, to make it easier to include in a project
Have fun! Share!