签到天数: 868 天 [LV.10]以坛为家III
|
ESP8266连接到互联网并通过免费的API接口获取天气JSON数据并解析!
选择免费开放的信息平台:
上知乎看了一下:免费开放天气API接口 ,还是有很多的!
1、中国气象局开放平台网址:smartWeatherAPI(应该比较权威平台),但表示打开网址错误,大家可以看下这个:有道云笔记保存网页 (看这不舒服总比看不了强)。查看网页你会发现,需要填写申请表并发送至邮箱:smartweatherapi@weather.com.cn进行审核,审核通过会回复,我已经填写并发出了,没反应,不知道什么时候可以有回应!只能放弃(网上有人说现在不支持了)。
2、和风天气,注册账号即可免费使用部分数据(一天免费访问量3000,提供的数据也比较多)!最后测试国内城市天气数据中有中文,无法处理!放弃。
api 文档说明:http://www.heweather.com/documents/api
city id list:http://www.heweather.com/documents/cn-city-list
3、心知天气:支持多语言,免费账户可以使用:国内369个地级市+天气实况(温度、天气现象)+3天天气预报+生活指数(6项)+400次访问/小时!OK,就选这个了。
4、OpenWeatherMap、YaHoo天气 等等,不做介绍合适自己用的就行!
心知天气更改新IP - api.seniverse.com,原api - api.thinkpage.cn也可用(最好用新的),使用本文中的程序时,请保证你的ID是付费版 付费版 付费版(第一次注册会有免费试用)!
测试API接口(在浏览器中打开测试网址即可):
上文提到使用心知天气,我们看下心知天气API接口说明:心知天气API;支持城市列表:下载地址(包含收费城市)。当然首先你需要注册,对于我们来说免费即可,学习用途,不做商业用途!如果你需要商用,也可以付费。
我注册了免费账号(也可以自行注册): API密钥:24qbvr1mjsnukavo(仅供学习,每小时400次访问)
● 示例1:获取指定城市的实况天气 -- GET /weather/now.json
请求地址 - https://api.thinkpage.cn/v3/weather/now.json?key=24qbvr1mjsnukavo&location=beijing&language=zh-Hans&unit=c
具体参数:key - API密钥 location - 位置 language - 语言(可选,默认zh-Hans简体中文)unit - 单位(可选,默认c)
返回结果:
{ "results":[{
"location": {
"id": "C23NB62W20TF",
"name": "西雅图",
"country": "US",
"timezone": "America/Los_Angeles",
"timezone_offset": "-07:00" },
"now": {
"text": "多云", //天气现象文字
"code": "4", //天气现象代码
"temperature": "14", //温度,单位为c摄氏度或f华氏度
"feels_like": "14", //体感温度,单位为c摄氏度或f华氏度
"pressure": "1018", //气压,单位为mb百帕或in英寸
"humidity": "76", //相对湿度,0~100,单位为百分比
"visibility": "16.09", //能见度,单位为km公里或mi英里
"wind_direction": "西北", //风向文字
"wind_direction_degree": "340", //风向角度,范围0~360,0为正北,90为正东,180为正南,270为正西
"wind_speed": "8.05", //风速,单位为km/h公里每小时或mph英里每小时
"wind_scale": "2", //风力等级,请参考:http://baike.baidu.com/view/465076.htm
"clouds": "90", //云量,范围0~100,天空被云覆盖的百分比 #目前不支持中国城市#
"dew_point": "-12" //露点温度,请参考:http://baike.baidu.com/view/118348.htm #目前不支持中国城市# },
"last_update": "2015-09-25T22:45:00-07:00" //数据更新时间(该城市的本地时间)
}]
}
● 示例2:逐日预报和你是 -- GET /weather/daily.json
请求地址示例 -
北京今天和未来4天的预报
https://api.thinkpage.cn/v3/weather/daily.json?key=24qbvr1mjsnukavo&location=beijing&language=zh-Hans&unit=c&start=0&days=5
北京昨天天气、今天和未来3天的预报(仅旗舰会员和大客户支持昨天天气)
https://api.thinkpage.cn/v3/weather/daily.json?key=24qbvr1mjsnukavo&location=beijing&language=zh-Hans&unit=c&start=-1&days=5
具体参数:key - API密钥 location - 位置 language - 语言(可选,默认zh-Hans简体中文)unit - 单位(可选,默认c) start - 起始时间(可选,默认0) days - 天数(可选)
返回结果:
{ "results": [{
"location": {
"id": "WX4FBXXFKE4F",
"name": "北京",
"country": "CN",
"path": "北京,北京,中国",
"timezone": "Asia/Shanghai",
"timezone_offset": "+08:00" },
"daily": [{ //返回指定days天数的结果
"date": "2015-09-20", //日期
"text_day": "多云", //白天天气现象文字
"code_day": "4", //白天天气现象代码
"text_night": "晴", //晚间天气现象文字
"code_night": "0", //晚间天气现象代码
"high": "26", //当天最高温度
"low": "17", //当天最低温度
"precip": "0", //降水概率,范围0~100,单位百分比
"wind_direction": "", //风向文字
"wind_direction_degree": "255", //风向角度,范围0~360
"wind_speed": "9.66", //风速,单位km/h(当unit=c时)、mph(当unit=f时)
"wind_scale": "" //风力等级
}, {
"date": "2015-09-21",
"text_day": "晴",
"code_day": "0",
"text_night": "晴",
"code_night": "0",
"high": "27",
"low": "17",
"precip": "0",
"wind_direction": "",
"wind_direction_degree": "157",
"wind_speed": "17.7",
"wind_scale": "3"
}, {
... //更多返回结果
}],
"last_update": "2015-09-20T18:00:00+08:00" //数据更新时间(该城市的本地时间)
}]
}
更多这里不介绍,直接访问天气数据API文档!
ESP8266 获取天气数据(使用nodemcu测试,无需电路,需要网络):
需要使用的库:JSON库
实时天气情况,测试网址:
https://api.thinkpage.cn/v3/weather/now.json?key=24qbvr1mjsnukavo&location=huaian&language=en
在浏览器中打开网址,分析数据:
|
|