ESP8266获取实时天气信息并通过显示屏显示

forget1202RF/无线 2024-05-05 16:41:46 5466阅读 举报


本文介绍STM32+ESP8266如何获取实时天气信息并通过显示屏显示出来。

在写代码之前,我们首先要注册新知天气并获取API接口,当然了大家也可以用其他的天气API,大同小异。

一、注册新知天气

地址:心知天气 - 高精度气象数据 - 天气数据API接口 - 行业气象解决方案 (seniverse.com)


然后注册账号,会收到验证链接到邮箱,登录邮箱点击链接完成注册,然后登录。

登录之后进入控制台,在控制台用依次 产品管理--添加产品--免费版免费申请。



申请完之后,在左侧就可以看到我们刚申请的免费版,点击免费版,就可以看到我们的公钥和私钥,这个很重要,后面要用到。


API接口为:https://api.seniverse.com/v3/weather/now.json?key=your_private_key&location=beijing&language=zh-Hans&unit=c

需要把上面的your_private_key替换成你的私钥,把beijing替换成你的城市,就可以了。还有一种更安全的方式是公钥+私钥签名认证的方式,但是比较复杂,这里就不多做介绍,有需要的可以百度一下。


二、STM32通过ESP8266入网

ESP8266模块可以通过AT指令控制搭配使用源代码API函数开发,总体开发速度快,难度较低。

说明:下面仅列举一些最常用的AT指令及用法,指令的详细参数及使用说明请参考官方文档:ESP8266 AT指令集。

基础指令

AT 测试AT启动

AT+RST 重启模块

AT+GMR 查看版本信息

WiFi功能AT指令

AT+CWMODE 设置WiFi模式(sta/AP/sta+AP)

AT+CWLAP 扫描附近的AP信息

AT+CWJAP 连接AP

AT+CWQAP 与AP断开连接

AT+CWSAP 设置ESP8266 softAP配置

AT+CWLIF 获取连接到 ESP8266 softAP 的 station 的信息

关于WiFi模式这里要说明一下,sta模式下模块相当于客户端,像我们手机平板一样是要去连接路由器的,而AP模式下模块相当于路由器,是发射WiFi被别人连的。ESP8266支持两种模式并存(模块出厂默认的是AP模式) 。另外,扫描WiFi指令 AT+CWLAP 只能在sta模式下使用,否则会报ERRO错误, AT+CWJAP 和 AT+CWQAP 指令也同理。

ESP8266开启sta模式连接WiFi步骤


1.发送 AT+CWMODE=1 指令配置模块为sta模式(参数1,2,3分别对应模式sta,AP和sta/AP)。

2.发送 AT+CWLAP 指令扫描当前附近WiFi,模块会返回可用AP列表。

3.使用 AT+CWJAP=“WiFi名称”,“WiFi密码” 连接到指定的路由器,比如WiFi是 “ESP8266”,密码是“666888”,实际连接WiFi发送的指令就是 AT+CWJAP=“ESP8266”,“666888” 。

返回的“WIFI CONNECTED”说明连接成功,“WIFI GOT IP”代表模块分配到了IP。

4.最后可使用 AT+CWQAP 断开当前连接的WiFi。

获取天气数据:

1.发送指令AT+CIPSTART=“TCP”,“api.seniverse.com”,80,和心知天气建立TCP连接。

2.发送指令“AT+CIPMODE=1”设置成功则返回OK。

3.发送指令“AT+CIPSEND” 开始透传。

4.发送“GET https://api.seniverse.com/v3/weather/now.json?key=私钥&location=城市拼音&language=zh-Hans&unit=c”向网址提出请求。

5.解析返回的数据。

6.退出透传。

7.关闭TCP连接。

解析返回的JSON数据内容:

{"results":[{"location":{"id":"3WEC2MYYCM6J5","name":"SuZhou","country":"CN","path":"Suzhou,Suzhou,Jiangsu,China","timezone":"Asia/Shanghai","timezone_offset":"+08:00"},"now":{"text":"Cloudy","code":"4","temperature":"28"},"last_update":"2024-05-05T09:45:00+08:00"}]}

上面比较有用的信息是城市的名字:苏州 天气情况:多云  温度28度。

然后我们就可以通过显示屏把这些数据显示出来了。















标签: #ESP8266#

版权声明:
作者:forget1202
链接:https://www.dianziwang.net/p/f9086198054c7.html
来源:RF/无线
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以点击 “举报”


登录 后发表评论
0条评论
还没有人评论过~