MATLAB Appdesigner 设计天气预报小程序

Weather_capturer_v3是一个基于MATLAB2020bAppdesigner开发的天气查询系统,通过API获取实时天气数据,提供七日天气预测和邮件推送功能。该应用旨在帮助用户获取准确的天气信息,以适应日常生活和工作的需求。
摘要由CSDN通过智能技术生成

名称:全国各城市天气查询系统

简称:Weather_capturer_v3

版本:1.3

开发环境:MATLAB 2020b内置Appdesigner

基本功能:通过访问天气网站API获取天气数据,显示当日天气信息,并绘制七日内天气预测曲线图;借助邮箱的SMTP协议通过第三方平台向用户邮箱发送天气信息。

项目背景:天气状况对人们的日常工作生活有着广泛而直接的影响。恶劣的天气条件(如暴雨、雪暴、大雾等)可能导致交通堵塞、交通事故和交通工具延误。同时某些行业和工作可能对天气更为敏感,建筑、农业、户外施工等行业可能会因为天气条件不佳而不得不暂停工作。准确的天气预报不仅对个人的日常生活和出行安排至关重要,也对农业、交通、能源、旅游等社会经济活动产生深远的影响。综上所述,准确的天气预报查询服务是必要的且有意义的,这也是Weather_capturer_v3的开发初衷。

适用范围:Weather_capturer_v3旨在向广大群众提供全国各城市天气查询服务,并且可以分析预测未来七日天气变化趋势,包含基本天气信息、今日降雨量、气象预警、湿度、能见度、气压、日出日落、紫外线等,适用于一切需要天气查询服务的人群。

Weather_capturer_v3运行界面如图:

d8074b733ac540949075dfbda1c851f4.png

城市编号可以在中国天气网等网站查询获得,这里我们以广州为例,经查询广州的城市编号为101280101,输入广州城市编号如图:

d90ab884fd524d398eabc05fa59e5a20.png

点击02e6e4329c4241399e9d13978f75a9ef.png 按钮,等待数据处理约1~2秒,Weather_capturer_v3运行结果如图:

e495afd1627146e1aae940d914932646.png

在App界面左侧的table直观地显示了所查询城市的最新天气基本信息,包括国家地区、城市编号、城市名、当前气温、今日最高气温、今日最低气温、更新时间、空气质量指数、空气质量等级、空气质量建议、口罩建议、外出建议、PM 2.5含量、PM 10含量、PM 2.5等级、PM 10等级、CO含量等;在App右侧的四个坐标区分别显示了未来七日气温变化曲线、未来七日空气质量变化曲线、未来七日空气湿度变化曲线以及当天24h气温变化柱状图。

我们在2b5ea29ae7104d0a853de06bd93ccf24.png 处输入用户邮箱,该用户邮箱将接受Weather_capturer_v3提供的所查询城市的天气基本信息,这里以我自己的QQ邮箱演示,如图:

da4c28d9655e423d8dd03fe53cef11b1.png

点击dd057dc926014230be455da805b6a1b9.png 按钮,用户邮箱会接收到天气信息邮件,如图:

907145ca88ee424cb5301a80e61a8a06.png

至此,Weather_capturer_v3功能展示部分便告一段落。

App设计视图介绍

bafbdd5549064eb78c46c56776f5749d.png

Weather_capturer_v3的设计视图比较简洁,布局十分干净清晰:设计视图左侧为一Table表格组件,用于显示所查询城市基本天气数据;右侧为四个坐标区组件分别用于显示未来七日气温变化曲线、未来七日空气质量变化曲线、未来七日空气湿度变化曲线以及当天24h气温变化柱状图;下方为两个用户文本编辑组件用于接收用户输入,以及两个Button组件用于调用回调函数;上方的label标签组件用于App名称。

App重点代码介绍:

MATLAB获取天气数据有两种方法:第一种就是爬虫的方法,解析HTML页面的内容,并用正则表达式去匹配我们想要爬取的天气数据;第二种是通过天气预报网站提供的API,直接获取结构化数据,省去解析HTML页面内容这一块,Weather_capturer_v3采用的便是该种方法。

中国天气网提供的API接口:

url = 'http://www.weather.com.cn/data/sk/101110101.html'

不过实测这个接口已经不再提供免费服务。

专业七日天气接口:

url='http://v1.yiketianqi.com/api?unescape=1&version=v9&appid=xxxxxxxx&appsecret=xxxxxxxx&cityid='

免费七日天气接口API 未来一周天气预报api (tianqiapi.com)可以直接去该网站注册账号,获取API请求连接)

fa4d16945c3841458d6a865f89d2e738.png

该接口提供7日天气数据,半小时左右更新一次,实况天气最快5分钟更新,包含基本天气信息、湿度、每日小时预报、6大生活指数、pm2.5、pm10、o3、no2、so2、是否需要带口罩、外出适宜、开窗适宜、是否需要打开净化器等,可按地名、城市编号、IP查询。

回调函数:(1)

调用天气网站API接口获取天气数据代码:

548905c9a1114317acacea872b9c20a9.png

要绘制7日天气数据曲线图,首先要对天气数据进行整理,因为从天气网站API接口获取的天气数据为Struct结构体,数据值为字符串类型,是没有办法直接使用的,必须对数据进行删选转换:

1d406c3cd754492a9adf38c2844f1131.png

将整理后的数据进行绘图处理,这里要注意绘图效果美观和逻辑严谨:

d4b6be3fc549444c83d7f75f88155c06.png

 

回调函数(2)

要实现向用户邮箱发送邮件的功能,我们首先要准备一个开通SMTP服务的邮箱作为本地服务器的发件邮箱。SMTP (Simple Mail Transfer Protocol)协议用于支持使用电子邮件客户端发送电子邮件:

7c4a06d81814406b95f105989d33cb7f.png

编写MATLAB 邮件发送函数,需要一个开启SMTP服务的邮箱作为服务器代理邮箱,这一步很容易,网上有大量开启SMTP协议的教程(注意获取授权码):

5af307977e0d4948a823aaefd96913d6.png

开发心得:

Weather_capturer_v3的开发工作大概花费了一周的时间,整个App的功能和结构都很简单,代码也没有什么复杂的地方,但是由于我对MATLAB的Appdesigner并不熟悉,而且还要兼顾平时其余课程和科研任务,这对我这个初学者来说还是有一定难度的。

在程序设计阶段,我从网上查询了大量资料以及一些博主写的blog,这些对Weather_capturer_v3的开发工作起到了非常重要的帮助作用,在App功能实现的过程中我学到了很多,收获颇丰,内容包括不限于不少MATLAB函数的使用、如何调用网站的API接口或者或页面源代码写个简单的爬虫、Appdesigner的基本功能与基本结构等。

MATLAB(Matrix Laboratory)是一种强大的数学计算软件,广泛应用于工程、科学和数学领域,它提供了丰富的工具箱,用于解决各种问题,包括线性代数、信号处理、图像处理、控制系统等。通过学习MATLAB,我们能够提升数学建模的能力,可以用它来解决实际问题,进行数据分析和可视化,从而更好地理解和解释数学概念。同时,学习MATLAB可以帮助我们提升编程技能,学到如何编写脚本和函数,处理数据结构,进行条件判断和循环等。在工程领域,MATLAB被广泛用于解决各种问题,如信号处理、图像处理、控制系统设计等,通过学习MATLAB,我们可以更有效地解决和分析工程问题,提高工程实践的能力。

(完整代码会附上下载链接)

【免费】MATLABAppdesigner设计天气预报小程序:全国各城市天气查询系统Weather-capturer-v3资源-CSDN文库

欢迎大家交流分享!

9e46eceefd3146329dc70dce032aea46.gif

 

  • 29
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值