ESP8266调用心知天气API

2023-05-16

首先我们需要一个可以调用返回天气信息的API,这里以心知天气为例,可以免费注册,虽然功能受限,但对于初学者来说,足够了

 心知天气api:https://api.seniverse.com/v3/weather/now.json?key=your_private_key&location=beijing&language=zh-Hans&unit=c

调用的时候只需要将your_private_key换成自己的密钥即可。具体内容参考心知天气API接口文档。

第一步我们需要准备一个热点可以访问网络,路由器,手机热点均可;

第二步获取即将访问的服务器IP地址。我们在PC端实现,win+r 后输入cmd进入操作终端,输入 ping api.seniverse.com 回车

116.62.81.138 就是我们需要使用的心知天气API

 

第三步配置获取天气信息的AT指令,创建TCP连接

AT+CWMODE=1      设置为sta模式,作为客户端使用

AT+RST    重启模块使模式更改生效

AT+CWJAP="account","password"    连接准备好的AP

AT+CIPMUX=0    设置为单路连接模式

AT+CIPSTART=”TCP”,”116.62.81.138”,80    创建TCP连接    

AT+CIPMODE=1    开启透传模式

AT+CIPSEND    向服务器发送数据,模块收到此指令后先换行后返回“>”,之后AT指令失效

然后发送 GET https://api.seniverse.com/v3/weather/now.json?key=your_private_key&location=beijing&language=zh-Hans&unit=c 即可获取天气信息

以下服务器返回给我们的内容:

{"results":[{"location":{"id":"W
X4FBXXFKE4F","name":"鍖椾含","country":"CN","path":"鍖椾含,鍖椾含,涓浗","timezone":"Asia/Shanghai","timezone_offset":"+08:00"},"now":{"text":"鏅?,"code":"0","temperature":"22"},"last_update
":"2019-10-01T08:25:00+08:00"}]}

中文字乱码是串口助手的设置问题,对比心知天气api正常访问的内容我们就可以大概了解当前地区的天气状况

{"results":[{"location":{"id":"WX4FBXXFKE4F","name":"北京","country":"CN","path":"北京,北京,中国","timezone":"Asia/Shanghai","timezone_offset":"+08:00"},"now":{"text":"晴","code":"0","temperature":"22"},"last_update":"2019-10-01T08:25:00+08:00"}]}

因为心知天气返回的数据是JSON格式,所以我们还需要解析才能得到想要的东西,但通过分析心知天气接口的通用参数,我们也能掌握天气信息,以下是借助转换工具完成JSON格式化

不过这一步完成我们已经实现了和服务器交互,下一步的学习我将解析json的数据,并在屏幕上显示出来直观的数据。

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ESP8266调用心知天气API 的相关文章

随机推荐