组织介绍

大气污染监控智能传感器软件设计方案

大气污染监控智能传感器软件名称:
大气污染智能传感器系统软件【Software for the Intelligent Sensor System for Atmospheric Pollution (SISSAP)】

软件目标:
开发一个网页式网络大气信息检测平台,使得用户可以通过网络为用户提供用户给定区域内大气污染物信息(如污染气体种类、气体浓度等)。通过网络连接的硬件系统,将传感器获得的数据实时传递给数据库,并实现大气信息处理的智能推荐服务。
具体而言,软件将拥有如下功能:

  1.  开发出网页系统,外部用户可以直接公开登记访问。
  2. 管理员可以对用户根据授权情况分组。
  3. 在系统内开发一个数据库系统,内部数据可以以网页图表形式显示于网页端,且可以做到数据显示的实时更新。
  4. 开发数据库系统,使得授权用户观察数据库内的公开数据。
  5. 开发的数据库记录特定区域内不同位置的大气污染物的类别和浓度等信息
  6. 开发的数据库实现与硬件的无线网络连接,可以从物理硬件上获得相应数据并存储进入数据库。
  7. 允许管理员对数据库进行维护处理,包括对数据的增删、可靠性判断。
  8. 在数据库系统中,开发基于数据库的数据进行分析的程序,根据程序分析结果可对用户在网页上提供推荐操作:如异常警告、现场检查、推荐操作。

软件框架与功能模块设计:
软件设计总体分为两部分:图片可视化页面(图1表示)、具体数据显示页面(图2表示),如下图所示:

图1可视化页面

图2具体数据显示页面
图1为图2的一个表现形式,图1数据信息来自于图2一部分。
页面功能介绍:
图1:调用数据库进行绘图,绘图所需信息需要从数据库特定条件查询再绘制得到;同时图片刷新时间给定;已注册用户可以设置手动刷新按钮、手动调整图片;信息弹窗、详细信息。
图2:数据库的所有信息的显示,可以使用多表联立放到同一个表中,包括用户信息、气体信息、数据库表新增设置、网站积分钱包等,其中区分用户权限,游客、普通用户、vip用户、管理员,对应操作范围逐步提高。目前需要有:查询、修改、增加功能(换肤)、修改图一显示顺序。
Web后台功能:
实时数据入库,页面定时更新;入库前判断数据异常等信息,将这些后期信息当作另一种附加信息保存到数据库\或是入库后再检查异常,这里信息的检查标准可以通过图2页面进行更改;接口通用化,数据入库函数可以适用于不同设备;数据机器学习等训练接口,可能结果或预测存到数据库。额外信息批量导入,注意信息的真实性,可添加个标签
图片可视化,只用到数据库调用,此时数据库信息包含了异常推荐等额外信息。
权限设置,数据库读取用户权限,导致web页面显示区别,管理员能够修改数据,例如附加信息异常的修改、推荐信息的修改(导致用户收到推荐);异常信息的标记。设置刷新时间,
管理员可以通过页面对数据库表的修改增加删除。
整体设计:
软件总体框架设计为基于网页架构的智能数据库应用系统,简要描述即:软件以围绕数据库读取进行,主要由可视化页面和数据详细信息页面,以及web后台程序。后台读取数据库、处理数据,再将数据传到两个页面显示即可。
SISSAP软件最后整体将部署于在线服务器中。技术拟采用前后端分离架构或是mvc框架,web整体采用python django框架和php 的thinkphp框架,两者为轻量型web框架,适合该软件;数据库使用Mysql进行;前台使用thinkphp自带的框架或是vue,使用多种js插件实现。
人员分工:
软件初期,程序原型框架
(胡宇:编制框架主程序、主程序调试、主程序与数据库模块接口;吴宏卓:主程序测试、数据库模块开发、数据库与主程序接口;林燕茹:图形界面设计和开发、用户登录系统和权限设置程序;张欣:硬件数据接口缓冲程序,硬件缓冲数据传递给数据库的接口程序。)以下所有内容需进一步展开细化。

  1. 软件主干框架建立:(胡宇、吴宏卓)
    a) 前后端框架,前后端连接和调用接口(胡宇)
  2. SISSAP程序主要由三个核心模块组成:用户交互模块、数据监控模块以及数据库模块
  3. 用户交互模块:主要调用4个函数接口,分别为数据库读取显示接口、数据库查询接口、数据库修改接口、数据库增加删除接口。其中数据显示和数据查询可进行图表可视化;数据修改和增删为权限控制,包含数据标注。
    a) 使用数据库表查询接口,若默认显示,即返回全部信息;若有单表条件查询,最后返回结果数据;模块后端通过mysql语言与数据库建立交互,查询结果以数组和字典等形式获得,并将数据传递给前台,前台echarts图表、表格table来可视化这串数据。
    b) 多表查询接口,默认使用表与表相关id一致的全部数据;若是有查询条件,再原有id一致的情况下赋予条件,最后返回结果数据;模块后端通过mysql语言与数据库建立交互,查询结果以数组和字典等形式获得,并将数据传递给前台,前台echarts图表、表格table来可视化这串数据。
    c) 数据库删除接口:针对表格形式数据、同时使用用户权限接口,当前用户为管理员,则表格每行都赋予删除按钮和功能。
    d) 数据库增加功能:针对表格形式数据、同时使用用户权限接口,当前用户为管理员,则可以通过填写表单的形式增加一行数据。
    e) 数据库修改功能:针对表格形式数据、同时使用用户权限接口,当前用户为管理员,则表格每行赋予修改功能,修改每行数据。
    f) 数据库文件导入接口:针对表格形式数据、同时使用用户权限接口,当前用户为管理员,可通过excel文件批量增加数据。
    g) 数据库刷新查询接口;该接口为定时接口,在查询接口为默认时使用,该接口可以复原查询默认状态,调用数据库单、多表查询接口,来间隔更新数据。
    h) 用户注册接口:应用于用户注册,调用数据库增加接口。
    i) 用户登录接口:使用session或时cookie 方式进行保存当前用户,调用用户权限接口,显示对应操作权限。
  4.  数据监控模块:主要调用4个接口,传感器数据写入接口、平台数据导入接口、预测接口、数据检测接口,前两个和后两个分别对应数据写入和数据评价检测接口。

a) 硬件连接接口:该接口用于连接传感器等硬件设备。
b) 数据异常检测接口:用于对于传输数据异常的判断,附加额外标签。
c) 硬件写入数据库接口:需要调用硬件连接接口,在硬件连接情况下,读取传输数据,并调用数据异常检测接口,检测异常等信息,将处理后的数据导入到数据库。
d) 数据预测接口,调用单、多表查询接口,将所需数据传入预测函数,并返回数据结果,传入前端的echarts图表。
e) 推荐数据接口,调用单、多表查询接口,将所需数据传入推荐函数中,并返回数据结果,传入前端信息中。
f) 4.接口使用两层结构,后台建立数据库表实体和模型,模型封装了调用实体对象进行操作的函数。
b) 主控制器程序调用数据库及子数据库的连接程序(胡宇)

c) 主控制器程序接收用户指令及返回数据传递给图形信息程序的接口(胡宇)

  1. 网站每个页面设计为上图所示,模型为各个函数功能;控制器为调用模块;视图页面直接与用户操作连接。
  2. 所涉及的调用接口有:数据库单表查询、增加、修改、删除接口(几个表对用几个接口);数据库多表查询接口(按需求来,表查询数量决定);数据库文件导入接口;硬件连接接口;硬件写入数据库接口;数据库刷新查询接口;用户注册接口;用户登录接口;用户权限接口;数据异常检测接口;数据预测接口;推荐数据接口。每个调用接口函数代码量再150-200行左右
    d) 主控制器程序根据用户要求/系统设定对各页面端数据进行实时更新的程序(胡宇)
  3. 整体框架使用vue+Django。前端使用vue框架,网站后端使用基于python的Django框架,采用前后端分离技术,后端只需要写好函数,并封装成接口即可;前端通过后端分装好的接口,调用即可
  4. 后台Django框架分为交互模块和数据监控模块。两个模块前端使用vue、js、html、css技术,每个前端页面代码量为300(使用子页)-1000(未使用子页)左右;后端使用python语言,以python 3为主要版本,主控制器代码量估计为200行;数据库使用mysql8.0为主要版本。项目运行环境,初期使用win10系统,后期将转移至服务器linux系统
    e) 框架代码编制和调试(胡宇)
    f) 框架代码测试(吴宏卓)
  5. 数据库建立:(吴宏卓)
    a) 建立气体污染数据库管理系统
  6. 数据库的设计主要是围绕空气质量数据,用户权限管理,日志和系统的核心算法这4个方面进行展开
  7. 系统开发时用到的软件和环境如下:前端用户可以选这需要查询的服务项,向系统发出服务请求,系统就会调用数据库数据,对相关请求找到对应的数据表,通过查表获得数据库的数据,系统会将数据传递给前端,并对数据可视化。
    编号 编译环境/软件 简介
    1 Windows10 操作系统
    2 Visual Code 前端开发程序
    3 Django 后端开发程序
    4 Python 后端开发语言
    5 PyTorch 机器学习框架
    6 Mysql 数据库开发

b) 确立气体污染数据库中表条目之间的逻辑,以及各项数据获取方法

  1. 主要的数据表有用户表,用户表(users)的主键为用户 id,用户表主要的作用是存储用户的基本信息如用户名(昵称),用户邮箱,密码等信息
  2. 角色表(role)的主键是角色 id,角色表中存储的信息包括:角色 id,角色名等相关信息
  3. 空气质量数据表(a_data)中的主要信息为数据产生的时间,各种污染物的预测浓度和 AQI 等相关信息
  4. 小时历史监测数据表(history_hour_data)主要用于存储网格化监测中各个小微站的历史空气污染物浓度监测数据(以小时为时间间隔),主键是小时历史数据 id,主要的属性列包括:站点 id,SO2,PM10 等污染物的小时浓度,污染物的 IAQI 分指数等
  5. 日志信息表(loginfo)主要用来存储系统中的各种日志信息;

表名 含义 表名 含义
users 用户信息表 position 站点
users_permission 用户权限表 Abnormal data 异常数据表
users_menu 用户访问权限表 algorithm_state 算法状态表
user_operation 用户操作权限表 pre_data 预测数据表
AQI_data 空气质量数据表 loginfo 日志信息表
部分重要的数据表
c) 建立用户权限子数据库系统及用户信息更新接口
d) 建立硬件子数据库系统及用户信息接口
e) 根据主控制器程序指令对各数据库操作(增删查改)与返回程序
f) 开发初步功能的数据分析程序(气体浓度超标警告信息)
3. 前台页面建立:(林燕茹)
a) 用户登录页面,用户信息数据与用户数据库的接口

  1. 前端页面所涉及的编译器为webstorm、vscode。采用前端vue框架,涉及html、css样式、JavaScript、axios语法等
    b) 数据可视化页面:图1
  2. 图表部分采用E-charts进行绘制,图表中涉及的数据由get请求后台接口获取,对获取到的json数据使用JavaScript进行解析,对解析好的数据用于图表的绘制。
  3. 气体浓度的真实值和预测值采用同样方法进行获取。

c) 区域硬件分布和区域地图实时显示(地图录入)

  1. 大屏显示部分:前端页面通过Post、Delete、Get等指令调用后台提供的接口以获取数据对页面进行渲染,显示的内容包括但不限于折线图、柱状图、饼图等图表信息,可根据图表信息的变化情况对气体分布、气体成分等信息进行观察。并在页面中部显示气体实际浓度与气体预测浓度。
  2. 页面合计一页。
  3. 大屏显示部分代码预计1800行,涉及6个图表信息,其中h5页面300行,css样式300行,js语法1200行。
    d) 用户可见数据库各个子页面:图2
  4. 后台管理系统部分:用户登录可通过后台管理系统对气体浓度信息的实况进行知悉,对异常数据进行检查,对下级用户权限进行设置,对用户信息进行修改等操作。
  5. 用户登录界面:页面中采用form表单来与用户输入进行交互,通过数据绑定对用户输入数据进行获取,对获取到的数据通过post请求向后台发送。并接收后台返回的status状态信息,对不同状态信息进行不同处理。若账号密码验证通过则进入后台管理系统首页,若验证失败则在前端页面提示错误信息。
  6. 登录页面采用vue架构,预计300行代码。
    e) 用户指令与图形信息反馈程序与主程序的接口(接收)
  7. 首页界面:用户进入首页可查看当前气体浓度概况(由图表展示),用户个人信息等。预计150行代码。
  8. 气体信息界面:包含各种气体的实时浓度信息、采集地点、传感器信息等,用户可对气体信息进行增删改查。
  9. 在进行增删改查时,前端页面通过button按钮绑定来获取用户操作行为,从而向后台发送响应的接口请求。若为增加或修改操作,需用通过获取表单的绑定信息(增加的或者修改的信息)向后台通过接口发送数据以完成写入/修改数据库操作。若为删除操作则需要通过页面绑定信息获取用户所选删除的id,将id信息通过接口发送给后台以完成删除操作。预计600行代码。
  10. 用户权限管理界面:超级管理员通过此页面可查看下级人员的权限信息,可对其权限信息进行修改。预计300行代码。
  11. 系统管理界面:可通过此界面对用户个人信息进行修改、密码修改等。预计200行代码。
    f) 数据分析得出初步反馈信息的显示
    注:预计代码数为根据调研结果预估,预计代码数仅为实现相关功能的预估,不包含使用vue框架部署的必要代码等,预计代码数仅供参考。
  12. 硬件与数据库对话程序:(张欣)
    a) 开发气体传感器通讯协议和读取程序,从硬件获得所有数据和信息
  13. 利用socket函数,监听socket连接,使用ip_port=('ip',端口号)绑定ip地址,进行数据传输。
  14. 使用python语言在pycharm上编写服务器端程序,用于在服务器上接收传感器收集的数据,目前为42行代码。
  15. 传感器使用无线通讯模块与服务器上python所写代码进行通讯,将所接收的传感器数据接收并转换成txt形式存储在服务器中。
    b) 协助传感器开发人员,对硬件信息进行测试和采集,获得传感器各项特征数据,确保硬件工作正常
    传感器所发出的数据目前定义为:

2011-获取污染物实时数据;PW-预设账号;MN-每个设备id
a、b、c和d-四种污染物气体编号 (以上设定根据国家标准设置)
c) 采集数据与数据库连接程序
需要调用硬件连接接口,在硬件连接情况下,读取传输数据,并调用数据异常检测接口,检测异常等信息,将处理后的数据导入到数据库
软件后期,丰富内容
(胡宇:框架主程序部署和维护、主程序与更新后模块接口;吴宏卓:框架主程序维护、主程序测试、数据库模块内的数据分析算法和程序开发;林燕茹:用户交互动画图形界面设计和开发、图形数据处理程序;张欣:硬件信息和数据智能更新程序、硬件应急处理智能操作推荐程序,硬件处理推荐信息与数据库的接口程序。)
6. 软件主控制器程序更新(胡宇)
a) 将软件在阿里云服务器上部署并调试
b) 对云端服务中的软件进行维护
c) 各个模块更新后的主控制器程序更新迭代
7. 管理页面内容进阶(吴宏卓)
a) 对云端服务中的软件进行维护和测试
b) 开发数据库进阶分析程序,实现对于历史信息的数据分析,利用深度学习方法,建立关联判断模型,实现未来信息预测功能。
c) 根据数据分析结果,建立分级警告、用户推荐操作等功能(含硬件、气体环境等情况)

  1. 空气质量预测模块实现:空气质量预测模块是系统的核心功能模块,为了能更好的服务用户,在实现此功能模块时,将此模块划分为分析,下载,和算法状态三个功能子模块。
    a) 用户在空气质量预测数据分析子模块可以轻易的了解未来空气质量的预测状况,当用户使用此功能时,前端浏览器会根据用户的身份向服务器发出请求,当服务器将请求处理完毕后会以 json 的格式返回处理结果,最后前端会根据后端的回应,使用组件来将数据以一种生动的可视化图表的方式展现给用户。实现此模块时用到的核心API接口如表所示:
    接口 函数 参数 返回值 解释
    psotition service getEffective Position String List 请求获取站点信息
    forecast service getAllPosition ForecastAQI Sting List 获取站点监测的数据

b) 预测数据下载子模块:空气质量预测数据下载子模块的作用就是为用户提供详细的预测数据的查看与下载服务。在此模块中,由前端发向服务器的数据主要为用户身份令牌 token,数据 id 等,后端在将身份认证,权限处理,逻辑处理等相关工作完成后,会为前端提供预测简报,预测数据详细信息等,最后前端会根据后端提供的数据将网页渲染提供给用户。此功能模块的核心接口如下:
接口 函数 参数 返回值 解释
forecast service get AllBrief Forecast String List 获取站点预测信息
forecast service getDetailForecast InfoById Sting List 根据ID获取空气质量详细预测信息
forecast service downloadAll Data Sting List 下载最新的空气质量预测信息
forecast service getALLForecast Data Sting List 获取所有预测空气质量数据

c) 预测算法状态子模块:空气质量预测算法状态子模块主要为用户提供查询系统核心算法的运行状态,比对预测数据与实际监测数据等功能。空气质量预测模块中的算法状态查看子模块的具体实现结果用户在此模块中可以根据文字和颜色直观的查看系统中两种核心算法的运行状态,而且在此模块中用户还可以根据自己选择的污染物种类来对比由预测算法产生的预测数据与由小微站实际监测获取的空气质量监测数据进行曲线对比。其中蓝色的线代表真实数据,红色的线代表预测值。

空气质量预测算法状态子模块主要为用户提供查询系统核心算法的运行状态,比对预测数据与实际监测数据等功能,实现此功能时用到的部分核心接口如表:
接口 函数 参数 返回值 解释
forecast service getForecast PositionAndPollutant String List 根据污染物种类获取预测数据
forecast service getHistoryDataByPositionAndPollutant Sting int 获取监测站点和污染物种类致的历史监测数据
forecast service getForecast StateByPolutant Sting int 获取某种污染物的预测算法状态
forecast service getFill StateByPositionAndPolutant Sting int 获取某个站点某污染物
上述所有API接口,都是通过后端编写函数实现,通过调用接口函数,就可以获取相应的数据,相应的数据会存储在数据库的对应表中。
8. 可视化页面内容进阶(林燕茹)
a) 开发程序优化界面设计和排版,实现美观化效果
b) 在用户交互界面的数据显示中加入动画效果,可反馈数据随时间的动态变化
c) 开发图形处理程序,为传感器硬件布点设计推荐提供依据
9. 硬件处理信息进阶(张欣)
a) 开发程序可智能更新硬件信息,并反馈到数据库端
b) 考虑硬件通讯在复杂环境中失效条件下,开发硬件应急处理的操作智能推荐程序(硬件失效、信号反常)
c) 硬件处理推荐信息与数据库的接口程序

成就
0
Star
0
Fork
成员(2)
2229011 yasaxii 1607829903
胡某人
犯二张口笑

搜索帮助