Arduino开发平台使用ESP8266获取和风天气的第三方库。
此库用于ESP8266(NodeMCU)物联网开发板通过HTTPS协议获取和风天气API所提供的免费天气信息。使用此库可以省去繁杂的HTTPS请求以及JSON解析部分,使用几行代码即可获取有效信息,大大简化了开发步骤。
注:
- 由于信息的安全性要求不高,故HTTPS请求中设置了不进行身份校验;
- 只涉及常人经常关注的信息如
温度
、风力
、降雨
等,其它一般人不关注的信息如露点温度
等并未解析;
-
注册和风天气并获得key,详见 https://dev.heweather.com/docs/start/get-api-key;
-
安装ESP8266扩展程序,详见 https://github.com/esp8266/Arduino;
-
安装ArduinoJson库,详见 https://github.com/bblanchon/ArduinoJson;
-
安装gzip解压库 https://github.com/tignioj/ArduinoUZlib
其他说明:
-
城市代码 https://github.com/heweather/LocationList
excel表
Location_ID
,亦可通过城市搜索获取 ; -
和风天气开发者官方文档:https://dev.heweather.com/;
-
安装本库
1)下载压缩包或克隆;
2)解压并复制到项目文件夹下的libraries目录下;
3)重启Arduino IDE。
-
example目录中列出了使用的基本结构和所有函数示例,为主要参考文档;
WeatherNow weatherNow; // 建立weatherNow对象
weatherNow.config(UserKey, Location, Unit, Lang); // 配置请求信息
weatherNow.getServerCode(); // 获取API状态码
weatherNow.getLastUpdate(); // 获取服务器更新天气信息时间
weatherNow.getTemp(); // 获取实况温度
weatherNow.getFeelLike(); // 获取实况体感温度
weatherNow.getIcon(); // 获取当前天气图标代码
weatherNow.getWeatherText(); // 获取实况天气状况的文字描述
weatherNow.getWindDir(); // 获取实况风向
weatherNow.getWindScale(); // 获取实况风力等级
weatherNow.getHumidity(); // 获取实况相对湿度百分比数值
weatherNow.getPrecip(); // 获取实况降水量,毫米
WeatherForecast WeatherForecast; // 建立WeatherForecast对象
WeatherForecast.config(UserKey, Location, Unit, Lang); // 配置请求信息
WeatherForecast.getServerCode(); // 获取API状态码
WeatherForecast.getLastUpdate(); // 获取服务器更新天气信息时间
// 以下i取值为 0,1,2,分别代表今天,明天和后天
WeatherForecast.getLastUpdate(i); // 获取预测日期的时间
WeatherForecast.getTempMax(i); // 获取最高温度
WeatherForecast.getTempMin(i); // 获取最低温度
WeatherForecast.getIconDay(i); // 获取天气图标代码
WeatherForecast.getTextDay(i); // 获取天气状况的文字描述
WeatherForecast.getWindDirDay(i); // 获取风向
WeatherForecast.getwindScaleDay(i); // 获取风力等级
WeatherForecast.getHumidity(i); // 获取相对湿度百分比数值
WeatherForecast.getPrecip(i); // 获取降水量,毫米
WeatherForecast.getUvIndex(i); // 获取紫外线强度指数
AirQuality AirQuality; // 建立AirQuality对象
AirQuality.config(UserKey, Location, Unit, Lang); // 配置请求信息
WeatherForecast.getServerCode(); // 获取API状态码
WeatherForecast.getLastUpdate(); // 获取服务器更新天气信息时间
AirQuality.getServerCode(); // 获取API状态码
AirQuality.getLastUpdate(); // 获取服务器更新天气信息时间
AirQuality.getAqi(); // 实时空气质量指数
AirQuality.getCategory(); // 实时空气质量指数级别
AirQuality.getPrimary(); // 实时空气质量的主要污染物,优时返回值为NA
Weather24h Weather24h; // 建立Weather24h对象
Weather24h.config(UserKey, Location, Unit, Lang); //配置请求信息
String getServerCode();
String getLastUpdate();
String getFxDate(int index);
int getTemp(int index); // 获取24小时温度
int getIconDay(int index); // 获取24小时天气图标
String getTextDay(int index); // 获取天气描述
int getHumidity(int index); // 获取湿度
float getPrecip(int index); // 预测降雨量