当我们想获取天气情况时,可以借助心知天气这个平台来获取最新情况,下面我将用串口助手与usb-ttl模块来一步一步获取
注册账号
我们用浏览器打开此网站:https://www.seniverse.com/
点击右上角进行注册账号
紧接着添加一个产品
此时你已经拥有自己的产品了,下面就可以从心知天气上获取到天气情况了
你也可以进入这个网站
https://seniverse.yuque.com/books/share/ded1e167-e35c-4669-8306-cf65c6e01dc0/start,获取到其他的信息
下面将使用USB转串口模块来使用AT指令获取天气情况
测试AT指令
AT
响应:
OK
若是没有回应 OK,检查一下引脚连接情况
1. 配置 WiFi 模式
AT+CWMODE=1 //1:作为客户端 2:作为服务器
响应 :
OK
2.复位
AT+RST
响应
.
.
ready //最后一行
3.连接网络
AT+CWJAP=“SSID”,“password”
响应 :
WIFI CONNECTED
WIFI GOT IP
OK
4.禁止多连接
AT+CIPMUX=0
响应
OK
5.连接服务器
心知天气 IP:api.seniverse.com 端口:80
AT+CIPSTART=“TCP”,“api.seniverse.com”,80
响应:
CONNECT
OK
6. 使能透传模式
AT+CIPMODE=1 //0:禁止 1:使能
响应:
OK
7. ESP8266 设备向心知天气服务器发送数据
AT+CIPSEND
响应:
OK
>
在此模式下可以获取天气情况
我们向心知天气服务器发送以下内容:
GET https://api.seniverse.com/v3/weather/now.json?key=your_api_key
&location=beijing
&language=zh-Hans
&unit=c\r\n
your_api_key: 是你控制台中的私钥
beijing:待查询的城市
zh-Hans:语言
心知天气会给你返回以下内容:
{"results":[{"location":{"id":"WX4FBXXFKE4F","name":"北京","country":"CN","path":"北京,北京,中国","timezone":"Asia/Shanghai","timezone_offset":"+08:00"},"now":{"text":"晴","code":"1","temperature":"23"},"last_update":"2022-05-20T23:12:26+08:00"}]}
此时我们已经成功从网上获取到了我们想要的天气情况了。
8. 退出发送数据
在透传发送数据过程中,若识别到单独的⼀一包数据 “+++”,则退出透传发送
- 如果使⽤用键盘打字输⼊入 “+++” ,可能耗时太⻓,不被认为是连续的三个 “+”,建议使
⽤串⼝⼯具一次性发送 “+++”,并请注意不要携带空格或换⾏符等不可⻅字符 - 之后,请⾄至少间隔 1 秒,再发下一条 AT 指令
“+++“ 退出透传发送数据,回到正常 AT 指令模式。此时, TCP 连接仍然是保持的,可以再发 AT+CIPSEND指令,重新开始透传
9. 退出透传模式
AT+CIPMODE=0
响应 :
OK
10.断开服务器连接
AT+CIPCLOSE
响应:
CLOSED
OK
代码实现在我的仓库中,有兴趣的可以下载看看:github