摘要
- 主要是使用ESP8266通过AT指令获取天气状况
- 心知天气:我注册的是免费用户,当然还有付费用户,免费用户可以调用国内 370 个主要城市天气实况,包括天气现象文字、代码和气温 3 项数据未来 3 天天气预报,包括白天天气现象文字及代码、晚间天气现象文字及代码、当天最高温度和最低温度、风向风速6 项基本类生活指数,包括穿衣、紫外线强度、洗车、旅游、感冒、运动指数。但是每分钟只能获取20条
硬件方面
准备一个ESP8266,准备正点原子的串口调试助手(因为这个我感觉挺好用的)
软件方面
1.AT固件烧写(已烧写的可以忽略此过程)
- 具体过程可以参考我的另一篇博客
- 这里的固件就只有一个,地址为0x00000,选择波特率为115200,这里我的8266FLASH是32Mbit
- 操作完成点击START开始烧录
2.注册心知天气
https://www.seniverse.com 注册完成后可以得到自己的私钥
3.AT指令控制8266
AT默认波特率为115200
- 首先测试AT(测试 AT 启动):正常启动就会响应OK
- 设置8266连接模式
AT+CWMODE_DEF=3(1或者3都行)
1. station 模式 (将8266连接至手机或者是路由器)
2.softAP 模式 (将8266设置为热点,手机可以连接)
3.softAP + station 模式(两种模式兼容)
- 将8266连接至路由器或者是手机热点
AT+CWJAP_DEF="WIFI名称","密码"
-------------
- 和心知天气建立TCP连接
AT+CIPSTART="TCP","api.seniverse.com",80
-----------
5. 开启透传模式
AT+CIPMODE=1 设置成功则返回OK
6. 发送数据
AT+CIPSEND
------------
7. 向网站提出请求
GET https://api.seniverse.com/v3/weather/now.json?key=你自己的私钥&location=xian&language=en&unit=c
这里的location可以改为自己的城市(我的是西安)
语言language使用英语(en)
- 多去看看心知天气官网的文档
8.网站返回数据