2023-10-19 10:45:30 [显示全部楼层]
2354浏览
查看: 2354|回复: 5

[M10项目] 信息科技实验——验证实测温度和天气预报温度的差异

[复制链接]
本帖最后由 hnyzcj 于 2023-10-23 16:36 编辑

【实验目的】
   生活中我们常常会对天气预报中的“气温”预报产生了疑问:身体感受到的气温以及用自己的方式测出的气温,比天气预报中的气温要高或者低……于是老师们就设计了一个课堂环节要验证这样一个结论。
信息科技实验——验证实测温度和天气预报温度的差异图14信息科技实验——验证实测温度和天气预报温度的差异图15
【实验方案】
   通过行空板实时采集温度数据,并通过网络获取和显示城市的气温数据同屏显示进行对比;并在一张折线图中可视化方式显示两组数据的对比。
【教学需求】
(1)实时采集温度、湿度、气压等数据屏幕读取。
(2)通过网络获取当地气温数据。
(3)实现上述两组数据的对比图表。
【解决方案】
对于本地采集屏幕显示数据在前面的课程中已经详细介绍;通过网络获取只需从天气API网站等相关气象网站上抓取下来同步显示在屏幕上;两组数据对比图表通过可视化组件设计一张对比折线图方式展现。以SIoT为数据平台,本地采集建立一个“本地温度”的topic,网络抓取建立一个“预测温度”的topic,最后再建立一个“对比数据”的topic,分别传输三项数据,其中最后一项数据用于制作对比图表。
信息科技实验——验证实测温度和天气预报温度的差异图1

实验目的
验证实测温度和天气预报温度的差异
实验器材
自制数字气象站
实验步骤
步骤一:(教室封闭环境测量)
实测温度______________天气预报温度(大于、小于、等于)
步骤二:(户外有阳光水泥地上测量)
实测温度______________天气预报温度(大于、小于、等于)
步骤三:(户外无阳光水泥地上测量)
实测温度______________天气预报温度(大于、小于、等于)
步骤四:(户外有阳光草地上测量)
实测温度______________天气预报温度(大于、小于、等于)
步骤五:(户外无阳光草地上测量)
实测温度______________天气预报温度(大于、小于、等于)
实验结论
【知识拓展】
气温测量有标准环境
信息科技实验——验证实测温度和天气预报温度的差异图2
气象台测出的“气温”不是大家的体感温度,它代表着自然状态下,不受干扰的标准空气温度。按照世界气象组织规定,测量气温的百叶箱须设在草坪上,离地面1.5米,周围比较开阔,无高大建筑、树木等阻挡风或阳光。百叶箱的四壁用玻璃钢做成百叶窗,不但能够防止太阳直射、地面反射、大风大雨的影响,同时保证空气流通,排除干扰后测得大气真实的温度。

数字化资源
——功能实现技术文档
信息科技实验——验证实测温度和天气预报温度的差异图16
【制作过程】
(1)环境部署
   步骤一:配置行空板
由于课堂教学中,既需要本地采集数据上传SIoT,还需要从网络上抓取。这里天气数据需要通过“接口”获得,本课我们使用“天气API”获取。通过访问天气API网站(https://tianqiapi.com/),获取天气信息。为此我们需要行空板连接热点获取相应IP。成功连接热点后,此时板子获取固定IP为:10.6.124.30。登陆SIOT服务器,建立主题topic分别为:“温度”、“湿度”、“气压”、“预测温度”、“对比数据”。
信息科技实验——验证实测温度和天气预报温度的差异图9
步骤二:登陆注册
首先,访问天气API网站(https://tianqiapi.com/),完成注册和登录;登陆后点击“返回网站主页”然后选择“API文档”查询免费天气接口;免费天气信息在API文档左边栏的“免费基础实况天气”(图中①处),另外,在右边的“请求示例”下方就是要使用的接口网址(图中②处)。

直接复制访问该网址,可以查看到当前所在城市的天气数据,如下图所示。
信息科技实验——验证实测温度和天气预报温度的差异图8
另外,如果你想更换城市的天气数据,只需要在接口网址末尾加上“&city=某城市”,比如,杭州天气的接口网址为:
步骤三:编程环境
   打开Mind+编程软件进入后,将其切换至“python”模式,鼠标点击左下角“扩展”按钮,在官方库页面中添加“行空板”、“MQTT-py”和“Requests”库,在pinpong库页面中添加“pinpong初始化”和“BME280环境传感器”库。
信息科技实验——验证实测温度和天气预报温度的差异图3信息科技实验——验证实测温度和天气预报温度的差异图4


步骤四:编写程序
▲程序初始化(服务器设置和采集界面设置)
从MQTT、pingpong、BME680指令集中拖着指令如下图8所示,程序指令“初始化MQTT”设置如下所示:MQTT平台选择SIoT,SIoT地址为上述行空板子获取的IP地址,SIoT Port端口为1883,用户名为siot,密码为dfrobot。其中服务器端SIoT服务器地址为:10.6.124.30。MQTT订阅消息分别为“温度”、“湿度”、“气压”、“预测温度”、“对比数据”。
信息科技实验——验证实测温度和天气预报温度的差异图5
抓取部分初始化
下面就可以利用“Requests”分类的指令,向天气API发起一个GET请求“” ,再解析请求内容为 JSON格式 将获取数据转化成刚才网页中看到的样子。建立 url、response以及data 、天气图片四个变量来分别储存接口网址、请求响应、天气数据、天气图片。
信息科技实验——验证实测温度和天气预报温度的差异图6
天气图片数据格式应用为字典形式,若返还结果为“晴”,则屏幕对应显示晴天的图片。
▲屏幕初始化及赋值
对象“P”为背景图片;对象W、S、Q分别对应由BME280实时采集到的温、湿度等数据;t_c、t_t、t_w、t_tem、img分别对应从天气网站抓取的城市、日期、天气、温度、及对应的天气情况的图标。

信息科技实验——验证实测温度和天气预报温度的差异图7信息科技实验——验证实测温度和天气预报温度的差异图10
▲主程序部分
屏幕显示部分:
信息科技实验——验证实测温度和天气预报温度的差异图11
数据发送部分:

信息科技实验——验证实测温度和天气预报温度的差异图12
期中“对比数据”的主题中实际上发送两组数据,对于两组不同类型的数据发送,我们进行连接时,用“,”进行隔离。
步骤五:数据对比图表
点击打开在可视化组件,添加2个标签文字,分别修改其组件标题为“实测温度和预测温度”、Topic分别为“siot/温度和siot/预报温度”对应如下图所示;选取折线图组件,修改其组件标题“实测与预报气温对比”、Topic为“siot/对比数据”、折线配置1为“实测数据”、折现配置2为“预报数据”对应如下图所示,

信息科技实验——验证实测温度和天气预报温度的差异图13

关联文档:
     (1)低成本打造移动数字气象站

木子呢  管理员

发表于 2023-10-19 13:45:01

大佬速度真快!
回复

使用道具 举报

Amos Young  中级技师

发表于 2023-10-27 15:32:21

非常好的项目分享
回复

使用道具 举报

rzegkly  版主

发表于 2023-11-2 18:53:50

很好物联网案例
回复

使用道具 举报

DeadWalking  中级技师

发表于 2023-11-14 13:57:09

很实用,对比天气做实验数据!
回复

使用道具 举报

JOVI  高级技师

发表于 2023-11-28 22:53:30

学习了,谢谢分享!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail