目录
前言
?大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投入到更重要的就业和考试中去,学长分享优质的选题经验和毕设项目与技术思路。
?对毕设有任何疑问都可以问学长哦!
选题指导: https://blog.csdn.net/qq_37340229/article/details/128243277
大家好,这里是海浪学长微信小程序毕设专题,本次分享的课题是
?基于微信小程序的河南省气象仪器监控保障系统
课题背景与简介
随着气象现代化的发展,气象观测设备日益先 进,安装的范围越来越广,形成了空间分布合理的观 测网络。这些观测站实时收集的气象数据,对天气 预报、灾害天气监测预警等气象服务工作具有重要 的意义,大大增强了对中小尺度灾害性天气的监测 能力,发挥着“千里眼”的作用,减少了由于气象灾 害造成的财产损失,提高了区域的经济效益和社会 效益。由于站点分布广、种类多,给保障工作提 出了很高的要求。保障观测站正常运行,首先要做 好观测站的监控工作,只有及时发现故障站点和异 常数据,才能高效排除故障,提高观测站保障的时效 性、数据的可用性。河南省气象系统目前拥有 的多个监控网站,只能在气象内网中使用,不能在户 外维修时使用。 智能手机的普及,为随时随地监控观测站带来 了可能。手机应用开发主要有传统 APP 开发和微 信小程序开发两种形式。与传统 APP 应用相比,微 信小程序有以下几个优势: 不用安装,即开即用,即 用即走,大大节省了用户的手机内存和运行空间; 微 信小程序基于微信运行,在 iOS 和安卓系统手机上 都可以运行,可以有效缩短开发周期和降低开发费 用、维护费用; 通过分享微信小程序二维码和在微 信里搜索小程序就可使用,方便推广,降低推广难 度。
实现设计思路
一、设计思路
河南省气象局现有的监控网站,数据各不相同。 为满足小程序数据需求,编写数据采集程序,使用抓 取方式从省局网站定时抓取观测站状态数据和观测 数据,分析整理后使用 Http Post 方式上传到部署在 新浪云开发平台上的 Web 服务器里,小程序使用 Http Get 方式调取数据予以展示; 在 Web 服务器中 针对电压、心跳包时间、数据到达时间、各气象要素 实时观测值和整点观测值设置动态预警逻辑,从而 实现自动识别故障站点的状态信息和异常观测数 据,在小程序中展示提醒( 图) 。
二、新浪云 SAE Web 服务器的搭建
新浪云应用( SAE) 环境是国内有影响力的分布 式 Web 应用/业务开发托管、运行平台,支持 Java、 Python、PHP 等多种语言,按量计费,无需运维,具有 高可靠性、高扩展性的优点,使开发者从繁重的运维 工作中解脱出来,只专注于系统功能。豫气保在 新浪云应用上建立 Web 应用,接收上传的观测站数 据,供小程序调用。 程序采用新浪云 mysqL 数据库存储数据,并根据 数据的性质和访问频次将数据分为冷数据( 历史数 据) 和热数据( 最新和最常用的数据) 。所有采集到 的数据都进入 mysqL 数据库物理存储,并将实时的状 态信息和最新的观测数据采用 memcached 缓存系统 存储在内存中,以提高系统的响应速度。
Web 服务器开发
豫气保 Web 服务器采用 Python 语言开发,基于 Django 2.0 框架实现。Django 框架拥有强大的数据 库访问组件,使开发者无须学习其他数据库访问技 术就能轻松访问数据库; 使用正则表达式管理 URL 映射,灵活性高; 自带后台管理系统 admin,只需要 通过简单的配置和很少的代码就可以实现一个完整的后台管理平台。
Django 框架关注的是模型( Model) 、模板( Template) 和 视 图 ( View ) ,称 为 MTV 模 式。 模 型 ( Model) ,即数据存取层,处理与数据相关的所有事 务: 如何存取、如何验证有效性、包含哪些行为及数 据之间的关系等。豫气保建立了 Areas 等几个 模型,对应 mysqL 数据库中的数据表( 表) 。
模板( Template) ,即表现层,处理与表现相关的 决定: 如何在页面或其他类型文档中进行显示,提供 HTML 页面的生成能力,采用 TDL( Template Design Language) 语言编写,本系统用到了 Bootstrap 模板框 架,实现不同终端平台的响应式展示。
视图( View) ,即业务逻辑层,响应请求,输出 结果。
豫气保 Web 服务器主要实现了观测站状态、观 测数据的上传、查询等几个接口和后台数据库管理 平台,上传和查询的数据格式都为通用 的 JSON 格式。
Web 服务器的部署
小程序后端 Web 服务器部署在新浪云 SAE 应 用上,只需要将本地调试好的程序代码提交到代码 仓库并 push 到新浪云应用里,就完成 Web 服务器 的部署,可以在新浪云管理控制台重启或者调整进 程数目,还可以在 HTTP 错误日志里查看后台进程 的详细错误日志来解决问题。
三、数据采集程序
数据采集程序用 Python 语言编写,从河南省地 面自动气象站综合管理平台、县级综合观测业务集 成平台( MOPS) 、河南省地面气象观测监控管理平 台上分别抓取观测站的故障信息、电池电压、在线状 态和最新的观测数据,建立统一规范的 JSON 接口, 自动判别观测站状态和观测数据,提示超过阈值的信息,对错误数据进行质量控制,将规范化的数据上 传到新浪云 SAE Web 服务器上。主要用到 requests 库、BeautifulSoup 库、re 库等。
下面的代码实现 从河南省地面自动气象站综合管理平台( http: // 10.69.10.61) 上获取故障观测站的站名、站号、所属 区域、故障开始时间等信息,其他状态信息和实时观 测信息与之类似。
def get_fault( ) :
try:
url_login = ″http: //10.69.10.61 /login.html″
values = { 'account': ″***″,'password': ″********″}
ss = requests.session( )
ss.post( url_login,values) //登录
url_faults = ″http: //10.69.10.61 /index /monitor/getallfailurestation.html″
result = json.loads( ss.get( url_faults) .text) //获取故障页面
upload( 'faults',result) //上传数据
print( time.strftime( ″%H: %M: %S″,time.localtime( time.time( ) ) ) ,'load faults success')
except:
print( time.strftime( ″%H: %M: %S″,time.localtime( time.time( ) ) ) ,'load faults error')
四、豫气保小程序的开发
小程序前端具有获取用户输入、向用户展示数 据、在页面之间切换的功能。微信小程序每个小程 序每个页面存在四个文件,分别是 wxml 文件、wxss 文件、js 文件、json 文件。wxml 是一种类似 xml 格式 的语言,用来构建页面结构; wxss 和 css 文件类似, 用于描述 wxml 文件的组件样式; json 文件对页面进 行一些属性的设置; js 文件用于用户交互,响应用户 操作。
豫气保小程序用了微信小程序的标准组 件、weui 组件、Parser 组件等构建 wxml 文件,还自定 义了 searchstaion 组件实现单站查询功能、areaselect 组件实现区域切换功能; 用 weui 样式库设计页面样 式 wxss 文件; 页面 js 文件实现响应用户输入和从新 浪云应用 Web 服务器调取数据并按要求在页面中 展示的功能。
五、小程序蓝牙串口透传调式开发
现场调试采集器时,需要用 USB 转串口线加调 试线把笔记本电脑和采集器连接起来,用串口调试 助手向采集器发送命令,接收返回的数据。由于采 集器种类多,命令各不相同,需要记忆各种命令。而 且返回的数据大多都是数字字符串,需要对照说明 书才能明白各个字段的含义,操作起来很不方便。
为了能在现场通过微信小程序蓝牙功能调试采 集器,豫气保小程序用 HC-08 模块,将手机和采集 器连接起来,实现蓝牙串口透传。通过手机蓝牙向 采集器发送命令,接收采集器返回的数据,使现场脱 离笔记本调试; 小程序中还集成了各种采集器的常 用命令,并对采集器返回的数据进行格式化显示,调 试结果一目了然。
现场调试无需查看说明书,从而 提高了调试工作效率。
六、豫气保实现的功能
豫气保的页面有首页、观测站实时观测数据监 控页面、观测站运行状态监控页面和蓝牙调试页 面等。
首 页
首页展示了所选区域的最新气象实况、7 日分 时次天气预报、过去 24 h 各气象要素变化情况和多 种生活气象指数等。能够切换不同区域,显示不同 信息。
实时观测数据监控页面
可实现降水、气温、气压、风向风速、湿度、能见 度等气象要素的图表、列表、地图显示( 图) 。具有 统计功能,能统计每个气象要素的最大值、最小值、 平均值和区间分布,能够发现极端疑误值,提醒保障 人员维修。
观测站状态信息页面
该页面分为五个部分,对关注区域内的观测站 状态进行监控:
1) 故障。
列出了出现故障的气象观 测站、应用气象观测站的站点名称、开始时间、持续时间等信息( 图) 。
2) 电池电压。
列出了各观测站 的电池电压,对低于 12 V 的站点用红色或黄色进行 预警。
3) 通讯情况。
对观测站的心跳包时间、数据 上传时间进行展示,对不在线的站点用红色进行预 警。
4) 整点数据上传。
对缺报和逾限报的站点用 红色和橙色进行预警。
5) 异常情况。
对气温、湿 度、气压、电压等信息按照预设的阈值进行过滤,列 出各项可能异常的情况。
单站信息页面
显示单站的站名、类型、组件等基本信息和电 压、在线状态等状态信息、最新观测数据,以及过去 24 h 各气象要素变化情况和过去一周的数据上传 情况等信息等( 图) 。单击其中的组件,就进入到 组件介绍节目。介绍节目介绍组件的技术指标、常 见故障维修等。
蓝牙串口调试
单击连接开关,待蓝牙连接成功后,蓝牙状态变 为已连接。选择采集器型号后,选择命令,下面有命 令的简短说明,单击发送,可将命令发送到采集器。 采集器返回的数据可在下面显示,小程序对返回的 数据进行拆分解析,每个字段都有解释,现场调试无 需再翻说明书( 图) 。
七、总结
豫气保实现了按照省、市、县三级随时随地监控 本行政区域内观测站运行状态和查询观测数据的功 能,使保障人员能够及时发现故障站点和疑误数据, 提高了保障的时效性。蓝牙串口调试采集器功能, 可在观测站现场通过手机调试,降低维修难度,提高 维修效率。该程序操作简单,便于推广,在河南省多 个地市使用后反响较好。小程序在使用过程中将逐 渐优化,逐步扩充故障排除实例库和远程专家指导、 仪器检定、备件设备管理等功能。
实现效果样例
气象仪器监控保障系统:
我是海浪学长,创作不易,欢迎点赞、关注、收藏、留言。
毕设帮助,疑难解答,欢迎打扰!