这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 如何通过WIFI模块(ESP8266)获取天气预报?

共2条 1/1 1 跳转至

如何通过WIFI模块(ESP8266)获取天气预报?

高工
2024-11-05 21:00:19     打赏

如何通过WIFI模块(ESP8266)获取天气预报?


高工
2024-11-05 21:03:47     打赏
2楼

用到的AT指令如下:

1. 关闭回显

ATE0

2. 设置为STA模式

AT+CWMODE_DEF=1

3. 设置WIFI名称和密码

AT+CWJAP_DEF=”SSID”,”Password”

4. 开启DHCP

AT+CWDHCP_DEF=1,1

5. 设置为单连接模式

AT+CIPMUX=0

6. 设置为透传模式

AT+CIPMODE=1



2.获取网络时间

获取网络时间的方式有两种,对于较新版本的固件,可以直接通过AT指令来获取。(可以通过AT+GMR指令来查询固件的版本。)

AT+CIPSNTPTIME?

对于较老版本的固件,不支持该AT指令,只能通过自己连接网络服务器来获取当前时间。具体需要的AT指令如下:

1.建立TCP链接

AT+CIPSTART="TCP","www.beijing-time.org",80

2.打开传透模式

AT+CIPSEND

3.收到‘>’符号后,随便发送个数据

4.等待接收数据

接收的数据可以先用网络调试助手来测试,如下,可以看到,数据中包含了当前的日期和时间信息,我们可以先找到字符串中“Data”的位置,再解析后面的数据。数据格式固定,直接按照字符位置解析就行。
需要注意的是,获取的这个时间是格林威治时间,与北京时间相差8个小时。
当然,也可以通过连接其它NTP时间服务器来获取时间,步骤是类似的。

3.获取天气预报

天气的获取就要比时间稍复杂一些,网上有很多可以提供天气预报的服务器,有些可以免费使用,一般都需要注册一个账号,这里以“心知天气”为例进行介绍。步骤如下:

1.注册账号。在该网站注册一个账号:
https://www.seniverse.com/。注册之后就可以通过其开放的API来获取天气预报。有免费版和付费版,区别在于访问频次和获取的天气信息内容不同。如下:

2.查看私钥。在控制台查看账号的私钥,这个在程序中要用。
3.API。有了这个私钥,我们就可以通过API来获取天气预报了,相关的API说明可以在这里查询:
https://seniverse.yuque.com/books/share/f4f9bf1a-d3d9-4a68-8996-950f8c88400e/sl6gvt#d29hl
先用网络调试助手测试一下:
可以看到,通过TCP连接服务器后,发送GET请求就可以收到天气预报数据,接下来就是解析数据了。


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]