首先我们需要一个可以调用返回天气信息的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的数据,并在屏幕上显示出来直观的数据。