您当前的位置:首页 > 电脑百科 > 软件技术 > 软件技术

基于8266实现无线获取天气预报

时间:2022-05-12 16:13:14  来源:  作者:正点原子原子哥

基于8266实现无线获取天气预报

使用ESP8266或者其他网络模块获取网络数据(天气,时间等),还是挺简单的,下面我们两个部分来讲解无线以及有线网络如何获取天气预报信息。

 

01.查找目标服务器

首先找到一个服务器,该服务器具备获取天气预报等相关接口,例如:

心知天气:
https://www.seniverse.com/login

丫丫天气:http://www.yytianqi.com/

等服务器,这里我们就以丫丫天气为例来制作本次的实验。


02.配置服务器

打开丫丫天气服务器网页,该网页地址为http://www.yytianqi.com/,打开之后点击右上角注册账号,如下图所示:

基于8266实现无线获取天气预报

 

点击注册之后,我们必须填写邮箱,密码以及手机号码相关信息,如下图所示:

基于8266实现无线获取天气预报

 

注册完毕之后,登录账号,如下图所示:

基于8266实现无线获取天气预报

 

上图中的key密钥是我们所需要的,我们先把密钥拷贝到记事本中。


03.丫丫天气服务器相关接口信息

打开上方的API介绍我们就知道如何获取服务器的相关信息了,如下图所示:

基于8266实现无线获取天气预报

 

上图中,API通用格式http://api.yytianqi.com/接口名称?city=城市ID&key=用户key就是我们使用无线或者有线网络所发送的数据包,而这个数据包的接口名称是下方的字符串,如下图所示:

基于8266实现无线获取天气预报

 

API通用格式的城市是根据该页面下方的图来获取,每一个城市都一样的ID,如下图所示:

基于8266实现无线获取天气预报

 

最后我们讲解一下该服务器的请求模式以及返回结果,如下图所示:

基于8266实现无线获取天气预报

 

从上图可知:我们可以请求三种模式,第一种使用程序的ID获取,第二种使用城市的IP获取,第三种是获取城市的经纬度信息。本次的实验我们使用第一种获取方式。

 

上图的下面的内容就是服务器返回的结果,所以我们的代码必须移植JSON包来解析,根据返回的字符串来获取数据包的信息。


04.ESP8266配置TCPClient客户端流程

ESP8266配置TCPClient流程如下图所示:

基于8266实现无线获取天气预报

 

上述就是MCU发送到ESP8266的AT指令,这里我们无需过多的讲解,下面我们讲解如何使用串口发送指令或者数据到ESP8266相关函数:

TCPClient配置源码编写:

基于8266实现无线获取天气预报

 

上述的源码主要配置ESP8266为TCPClient客户端以及连接wifi,最后开启透传模式,注意:我们连接的服务器地址为api.yytianqi.com,而端口号为80。

检测应答函数编写:

基于8266实现无线获取天气预报

 

上的源码就是检查发送ESP8266指令是否成功,这里我们使用串口3发送。

发送指令函数编写:

基于8266实现无线获取天气预报

 

上述函数是发送ESP8266指令函数,如果返回“OK“,则发送成功。

发送数据函数的编写:

基于8266实现无线获取天气预报

 

上述的源码是发送数据的函数,我们可以定时发送HTTPS数据包到丫丫天气服务器中获取相关的信息。


05.网络调式助手模拟实验

首先在百度搜索“域名解析”,我们把api.yytianqi.com域名解析成IP地址,如下图所示:

基于8266实现无线获取天气预报

 

打开网络调式助手以TCPClient方式连接服务器,如下图所示:

基于8266实现无线获取天气预报

 

根据上图所示,我们发送给HTTPGET请求,该数据包为

GEThttp://api.yytianqi.com/observe?city=CH010100&key=xxx,

注意:xxx为平台注册的密钥。点击发送该数据包就获取到相应的信息,如下图所示:

基于8266实现无线获取天气预报

 

根据上图的返回信息,我们可以对比官方提供的返回结果数据包对比,如下所示:

{


"code":1,
"msg":"Sucess",
"counts":2362, //访问的剩余次数。
"data":{
"cityId":"CH010100", //城市id
"cityName":"北京", //城市名称
"lastUpdate":"2016-03-0917:10:00", //实况更新时间
"tq":"多云", //天气现象
"numtq":"01", //天气现象编码
"qw":"5.0", //当前气温
"fl":"微风", //当前风力
"numfl":"0", //当前风力编码
"fx":"无持续风向", //当前风向
"numfx":"0", //当前风向编码
"sd":"10.0" //相对湿度,直接在此数值后添加%即可


}


}

根据上述的源码和上图对比,我们就知道各个字符串代表什么内容。

在我们编写之前,我们必须移植cjSON库,我们可以调用这个库提供的函数获取数据包的信息,如下所示:

定义一个接收数据的结构体:

基于8266实现无线获取天气预报

 

根据字符串解析数据包的内容:

基于8266实现无线获取天气预报

 

此函数的第一个形参是接收丫丫天气服务器的数据包,而第二个形参表示我们存储数据包解析的内容,比如我们调用函数:

numtq=cJSON_GetObjectItem(data,"numtq")解析数据包的"numtq"字符串的内容,numtq变量就会保存天气现象的编码的数据,其他类似操作。

对数据包解析的内容存储在结构体:

基于8266实现无线获取天气预报

 

注意事项:

发送一次HTTPGET请求时,服务器返回相应的内容并断开连接,所以我们不断请求获取必须重新连接并发送数据。



Tags:获取天气   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
基于8266实现无线获取天气预报
基于8266实现无线获取天气预报使用ESP8266或者其他网络模块获取网络数据(天气,时间等),还是挺简单的,下面我们两个部分来讲解无线以及有线网络如何获取天气预报信息。 01.查找...【详细内容】
2022-05-12  Search: 获取天气  点击:(511)  评论:(0)  加入收藏
▌简易百科推荐
如何在Windows 10中查看电脑的名称?这里提供详细步骤
你想在有多台计算机组成的网络上查找你的计算机吗?一种方法是找到你的电脑名称,然后在网络上匹配该名称。下面是如何在Windows 10中使用图形和命令行方法查看你的计算机名称。...【详细内容】
2024-04-10  驾驭信息纵横科技    Tags:Windows 10   点击:(6)  评论:(0)  加入收藏
移动版 Outlook 解锁新技能,可验证登录 OneDrive 等微软服务
IT之家 4 月 9 日消息,微软公司近日发布新闻稿,宣布用户可以使用 Outlook 手机应用,轻松登录 Teams、OneDrive、Microsoft 365 以及 Windows 等微软账号服务。移动端 Outlook...【详细内容】
2024-04-09    IT之家  Tags:Outlook   点击:(7)  评论:(0)  加入收藏
Win10/Win11和 macOS用户反馈:谷歌云服务“捆绑”系统 DNS 设置
IT之家 4 月 6 日消息,谷歌公司承认旗下的 Google One 订阅服务中存在问题,在 Windows 10、Windows 11 以及 macOS 系统上会更改系统 DNS 设置,变更为 8.8.8.8 地址。Google On...【详细内容】
2024-04-08    IT之家  Tags:Win10   点击:(11)  评论:(0)  加入收藏
电脑卡顿怎么重装系统,快看这篇
电脑卡顿时,重装系统确实是一种可能的解决方案。以下是重装系统的详细步骤:备份重要数据:首先,你需要将电脑中的重要文件和数据备份到外部存储设备(如U盘、移动硬盘或云存储)中,以...【详细内容】
2024-04-04  科技数码前锋    Tags:重装系统   点击:(5)  评论:(0)  加入收藏
如何检查电脑的最近历史记录?这里提供详细步骤
如果你怀疑有人在使用你的计算机,并且你想查看他们在做什么,下面是如何查看是否有访问内容的痕迹。如何检查我的计算机的最近历史记录要检查计算机的最近历史记录,应该从web浏...【详细内容】
2024-03-30  驾驭信息纵横科技    Tags:历史记录   点击:(6)  评论:(0)  加入收藏
关于Windows中AppData的相关知识,看这篇文章就可以了
如果AppData文件夹占用了你电脑上的太多空间,则需要清理AppData文件夹。下面是一些帮助你在Windows计算机上进行AppData清理的方法。什么是AppData文件夹AppData文件夹是保存...【详细内容】
2024-03-30  驾驭信息纵横科技    Tags:AppData   点击:(10)  评论:(0)  加入收藏
微软 Edge 浏览器将迎来“内存限制器”功能,用户可自主控制 Edge 内存占用
IT之家 3 月 28 日消息,微软即将为其 Edge 浏览器带来一项实用新功能,据悉该公司正在测试一项内置的内存限制器,这项功能可以让用户限制 Edge 所占用的内存,防止浏览器超出内存...【详细内容】
2024-03-29    IT之家  Tags:Edge   点击:(21)  评论:(0)  加入收藏
一寸照片的大小如何压缩?四个实测效果很好的方法
一寸照片作为生活中常见的尺寸之一,常用于各类证件照与证明文件的制作。然而,受限于其较为狭小的尺寸,上传及打印过程中很容易出现尺寸超限的情况。所以,这个时候就需要对其体积...【详细内容】
2024-03-18  宠物小阿涛    Tags:压缩   点击:(20)  评论:(0)  加入收藏
手机投屏到电脑/电视的方法
方法一:Win10自带的投影功能1、将手机和电脑连接同一个无线网络。2、选择【开始】>【设置】>【系统】>【投影到此电脑】3、将默认的始终关闭的选项更改为所有位置都可用。4、...【详细内容】
2024-03-18    老吴讲I  Tags:投屏   点击:(23)  评论:(0)  加入收藏
微软商店怎么卸载应用 一分钟快速看懂!
微软商店怎么卸载应用 一分钟快速看懂!微软公司(Microsoft Corporation)是一家全球领先的科技企业,总部位于美国华盛顿州的雷德蒙德。成立于1975年,由比尔·盖茨和保罗&mid...【详细内容】
2024-02-27  婷婷说体育    Tags:微软商店   点击:(44)  评论:(0)  加入收藏
相关文章
    无相关信息
站内最新
站内热门
站内头条