回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

数字气象站 简单

头像 DeadWalking 2023.11.05 466 1

【项目介绍】

      新课标中附录2推荐了一个跨学科主题学习案例——在线数字气象站,作为小学阶段内容,在还没完全接触物联网技术阶段,采用数字气象站的方式对学习内容进行简化处理。
 

       天气信息的数据在小学自然中也有提及,各种季节最直接的反应着气象信息。可以从简单的气象观测了解,再进入各种仪器记录,最后引出不同传感器的使用。
 

       随着对数据的积累、对比,尝试从数据中反馈出天气的预测及走向,进而改进每天及日常的穿着、是否佩戴口罩、是否适宜外出运动等作出判断。在学习过程中布置长周期作业,更细致观察身边的数据。同时数字气象站的制作也是对身边的算法的实践与验证。只有在合理的算法帮助下,设备才能有效长期运行,并记录相应数据。
 

        借助mind+1.8可视化面板,不仅可以做数据可视化内容的学习,同时也可以对气象数据进行长周期记录。通过计算机直接记录的方式让学生体验信息科技的便捷,养成数据管理和价值挖掘的习惯。
 

         而在整个制作调试与记录过程中,也体现了计算思维规划作用,感受跨学科知识在设计制作、反思改进等环节中的应用。

 

【项目演示】

IMG_0391.JPG

 

【制作过程】

行空板 *1

SHT31温湿度传感器*1

pm2.5传感器*1

传感器通过4P线和主控板连接。

 

【项目总结】

参考云雀气象仪基础应用教程06:露营小助手,将露点温度和体感内容加入到气象站中,用这两个内容更直观体现当前的数据。
 

露点温度Td=空气温度-(100-空气湿度)/5
 

(注意将空气湿度取小数)
 

   科普露点温度:露点温度指空气在水汽含量和气压都不改变的条件下,冷却到饱和时的温度。形象地说,就是空气中的水蒸气变为露珠时候的温度叫露点温度。露点温度本是个温度值,可为什么用它来表示湿度呢?这是因为,当空气中水汽已达到饱和时,气温与露点温度相同;当水汽未达到饱和时,气温一定高于露点温度。所以露点与气温的差值可以表示空气中的水汽距离饱和的程度。气温降到露点以下是水汽凝结的必要条件。

   当温度小于露点温度时,空气中水分迅速凝结为小水珠,形成雾。当露点温度大于24时,闷热感明显,当露点温度大于28时会非常酷热,空调续命。
 

    程序未完成,还有冬天体感寒冷部分等天冷测得数据后修改调整。

 

【资源】

screenshots-数字气象站.mp-1698542331479.png

 

 

材料清单

  • 行空板 X1 链接
  • Gravity: PM2.5空气质量传感器 X1 链接
  • Gravity: SHT31-F数字温湿度传感器 X 链接
代码
#  -*- coding: UTF-8 -*-

# MindPlus
# Python
from pinpong.libs.dfrobot_gravity_pm25 import DFRobot_GravityPM25
from pinpong.libs.dfrobot_sht31 import SHT31
from pinpong.extension.unihiker import *
from pinpong.board import Board,Pin
from pinpong.board import Board
from unihiker import Audio
from unihiker import GUI
import time


Board().begin()
u_gui=GUI()
u_audio = Audio()
p_sht31 = SHT31(0x45)
p_gravitypm25 = DFRobot_GravityPM25()
u_gui.draw_image(image="logo.JPG",x=0,y=0)
u_gui.draw_text(text="数字气象站",x=80,y=20,font_size=20, color="#0000FF")
W=u_gui.draw_text(text="",x=15,y=70,font_size=18, color="#000000")
S=u_gui.draw_text(text="",x=15,y=100,font_size=18, color="#000000")
L=u_gui.draw_text(text="",x=15,y=130,font_size=18, color="#000000")
T=u_gui.draw_text(text="",x=15,y=158,font_size=18, color="#000000")
Q=u_gui.draw_text(text="",x=5,y=192,font_size=15, color="#000000")
Z=u_gui.draw_text(text="",x=5,y=215,font_size=15, color="#000000")
H=u_gui.draw_text(text="",x=15,y=265,font_size=18, color="#000000")
B1=u_gui.draw_rect(x=1,y=68,w=238,h=235,width=4,color="#00FFFF")
L1=u_gui.draw_line(x0=1,y0=195,x1=240,y1=195,width=2,color="#0000FF")
L2=u_gui.draw_line(x0=1,y0=255,x1=240,y1=255,width=2,color="#0000FF")

while True:
    LuDianWenDu = round((p_sht31.temp_c() - ((100 - (float(p_sht31.humidity()))) / 5)),2)
    if (LuDianWenDu < 18):
        TiGan = (str("舒适"))
    if ((LuDianWenDu > 20) and (LuDianWenDu < 24)):
        TiGan = (str("炎热"))
    if (LuDianWenDu > 24):
        TiGan = (str("闷热"))
    if (LuDianWenDu > 28):
        TiGan = (str("酷热"))
    W.config(text=(str("温度") + str((str(p_sht31.temp_c()) + str("(℃)")))))
    S.config(text=(str("湿度") + str((str(p_sht31.humidity()) + str("(%)")))))
    L.config(text=(str("露点温度") + str((str(LuDianWenDu) + str("(℃)")))))
    T.config(text=(str("体感") + str(TiGan)))
    Q.config(text=(str("PM2.5指数") + str((str(p_gravitypm25.gain_particle_concentration_ugm3(p_gravitypm25.PARTICLE_PM2_5_STANDARD)) + str("(ug/m3)")))))
    Z.config(text=(str("噪音:") + str((str(u_audio.sound_level()) + str("(dB)")))))
    H.config(text=(str("光线强度") + str((str(light.read()) + str("(lux)")))))
    time.sleep(10)

评论

user-avatar
  • 伦**

    伦**2024.03.12

    太6了!!!

    0