写在前面:

由于很多人后台索要源码,因此经过长时间的搜索之后,我找到了之前写的源码,上传到了csdn,目前源码包含有:Java写的上位机源码以及django后台程序,没有找到stm32下位机的程序,需要的朋友可以下载下来参考,资源下载链接已经贴到了文末。

一、明确系统设计的意义

由于毕业设计的选题是基于物联网技术的空气质量监测系统的设计与实现,所以先要确定空气质量监测系统的设计意义是什么?在我看来,空气质量的监测并不是硬件采集数据,然后将数据一股脑的扔进数据库就行,真正的意义在将采集到的数据,进行数据分析并通过数据可视化的方式将分析结果呈现在用户面前。

二、确定系统逻辑

在明确的设计意义后,就应该考虑系统的总体框架,于是我绘制了如下的功能划分图:

整个系统于底层硬件而言,分别有温湿度数据采集模块、PM2.5数据采集模块和WiFi发送模块。于上层应用程序而言,则有数据入库模块、用户登录模块、数据展示模块以及预警模块。主要实现的功能是:当系统上电后,WiFi发送模块与PM2.5传感器采集模块首先工作,通过AT指令实现入网和连接TCP Server,成功后,等待上层应用下发启动发送指令,WiFi模块接收到指令后,温湿度数据采集模块和PM2.5数据采集模块开始工作,当采集到数据后,将数据上传到TCP Server,经过数据分析后,将数据存入数据库。用户可在登录后进入可视化网页进行当天的空气质量情况查看,还可查看七天的空气质量变化情况和推送的当天空气质量预警信息。所以系统的总体功能模块如下图所示:

在划定了如上的功能模块之后,需要考虑的就是,系统的设计目标:

三、系统设计目标

系统要设计达到的目标就是根据硬件采集到的数据,设定相应的阈值,当超过阈值时,即推送相应的预警信息,这是数据可视化的最为关键一步。于是我根据国家的《环境空气质量标准》制定了PM2.5的阈值图表:

同样地,PM2.5浓度有相应的阈值,温湿度也进行了同样的划分,主要依据生理学家的研究分析结果,温度对人体舒适度的划分标准:

湿度的划分标准:

三、系统代码编写

在明确了以上的point之后,就可以开始代码的编写了。底层用keil5开发,上层用java编写TCP server,python编写Django Web服务器,用MySQL存储数据。

四、最终效果展示

  • 硬件连接图:

  • Java开发的TCP server

TCP Server有两种版本,一种是有可视化界面的,这个方便在电脑端查看,双击打开即可,给硬件系统供上电之后,ESP8266会自动连接TCP Server,连接成功后,在软件的连接状态中会显示连接的客户端IP和端口后,同时接收区会打印接收到的原始数据。之前设计的是底层硬件系统一上电和联网后,会将数据立即上发,只有断电才会停止发送,这是硬控。后来在老师的建议下,设计了软控,用户可以在TCP Server的界面控制ESP8266发送数据和停止发送。可视化界面的如下图所示:

另外一种TCP Server是无界面的,这是为了部署在远端服务器而设计的,用户修改ESP8266的要连接远程服务器IP和端口即可,然后在远端服务器,运行这个java程序,并且确保服务器开放了相对应的端口。采集的温湿度和PM2.5数据会自动发送,此时没有了软控功能。

上面两种TCP server都会在接收到数据后,进行分析,然后将数据加上时间戳,以事先写好的存放格式,先存入文本,然后等到存储到一定量之后,再导入数据库,这样是为了减轻数据库的负担,因为来一条数据即访问一次数据库是不合理的。我采取的这种方式也算是简单的优化数据库存储。

  • Django开发的web服务器

这是在浏览器打开的网页,显示的实时温湿度和PM2.5浓度,和携带的相应的预警信息。

历史数据回溯自动生成的折线图

同时提供用户的登录和注册功能

最后是整体网页的截图:

源代码(不包含stm32下位机程序)下载链接:https://download.csdn.net/download/qq_41020634/85788727

基于Django框架的物联网空气质量监测系统的实现相关推荐

  1. arduino读取水位传感器的数据显示在基于i2c的1602a上_构建Arduino的LoRa远程智能空气质量监测系统...

    背景知识视频教程 Arduino分步指南:完整指南 - 国外课栈​viadean.com Arduino微控制器:学习Arduino制作项目 - 国外课栈​viadean.com 通过构建实际应用程序 ...

  2. 空气质量监测系统的组成和应用

    空气质量监测系统产品简介 网格化微型空气质量站是一种集数据采集.存储.传输和管理于一体的无人值守的环境监测系统,能全天候.连续.自动地监测环境,在提供PM10.PM2.5. SO2. NO2.CO.O ...

  3. 基于django+mysql的教师教学质量评价系统源代码,教学评价系统源码

    基于django+mysql的教师教学质量评价系统源代码,教学评价系统源码 程序部署方法 1.安装程序依赖: 2.配置settings.py中的DATABASES,并在mysql中创建对应的数据库: ...

  4. 创新“芯”引擎 | 国民技术N32G457 RT-Thread设计大赛 -基于RT-Thread的远程智能空气质量检测系统

    基于RT-Thread系统的一款远程智能空气质量检测系统:硬件部分由ESP8266WIFI模块,MQ135空气质量检测模块,0.96oled屏幕,N32G457主控板等组成:软件部分实现实时检测空气质 ...

  5. Python基于Django城市PM2.5空气质量数据可视化分析

    开发软件:Pycharm + Python3.7 + Django + Echarts + Mysql 实现目标:利用已经收集各个城市包括北京.上海.广州.成都.沈阳的PM2.5空气数据,利用pyth ...

  6. 什么是网格化空气质量监测系统?

    什么是网格化空气质量监测站监测系统呢?对于这个词大家应该显示不是太熟悉,那么我来为大家介绍下. 首先它是一种集数据采集.存储.传输和管理于一体的无人值守的环境监测系统,能全天候.连续.自动地监测环境, ...

  7. 基于51单片机PM2.5空气质量检测系统(源程序+仿真+原理图+PCB+论文)

    资料编号:208 功能介绍:(全套毕设资料齐全) 本电路是由51单片机为控制核心,另外主要通过5个模块的电路设计实现功能,他们分别是LCD显示模块.粉尘传感器.A/D转换.蜂鸣器电路.LED指示电路. ...

  8. java用ssm框架开发的空气质量检测系统源码网站实战项目

    环境: tomcat 7+jdk7+mysql5.5 技术: ssm(spring+springMVC+myibats)+jsp+css+ajax+jq+js+layui+pagehleper分页插件 ...

  9. 实时空气质量监测解决方案

    一.行业背景 近年来空气质量一直都是大家关注的重点,PM2.5.重工业污染.沙尘暴等无时无刻都在影响着我们的健康.伴随着人们生活水平的提升,对于自身生活环境数据的事实了解意向也越来越强烈.空气质量有没 ...

  10. 4款基于Django框架的开源软件推荐

    Django是一款高性能的Python web框架,鼓励快速开发和干净.务实的设计.Django项目是一个定制框架,它源自一个在线新闻Web站点,于2005年以开源的形式被释放出来.Django的重点 ...

最新文章

  1. ETL工具调度之中美PK
  2. datagrid里面某一行双击打开代码
  3. python如何从一个dataframe提取相应的行组成一个新的dataframe_Python|专题(1)——数据处理常规操作集(1)...
  4. Fortran执行语句中的“双冒号” ::
  5. P2P之UDP穿透NAT的原理与实现(转)
  6. 我在微软做研发 | 亚洲创新的科研之力
  7. java自定义线程池池,线程池使用及自定义线程池
  8. Mysql梳理(单表查询)
  9. PyTorch 1.2 中文文档校对活动 | ApacheCN
  10. linux下tools.jar,Linux android studio :'tools.jar' seems to be not in Android Studio classpath.
  11. CentOS修改时区
  12. jQuery入门教程
  13. cocos2d-html5 仿微信打飞机游戏
  14. 结合LayoutIt学习Bootstrap的探索
  15. LINUX上基于ASM的ORACLE11的安装
  16. Android基础教程(奋斗之小鸟)_PDF 电子书
  17. 如何重命名c盘中users文件夹下的文件名
  18. 天诚股价语音播报软件 实时播报A股股票价格涨跌幅MACD
  19. Spring 事务源码(6)—createTransactionIfNecessary处理事务属性并尝试创建事务【两万字】
  20. github搜索语法-信息搜集指南----总结

热门文章

  1. Word编辑中的域代码详解
  2. gitee.visualstudio.vsix 分享
  3. @JsonFormat和@DataFormat的使用
  4. pyqt创建窗口没有句柄_Python GUI之tkinter窗口视窗教程大集合(看这篇就够了)
  5. matlab排序函数 下标,Matlab自带排序函数sort用法
  6. 超定方程组和欠定方程组
  7. 231个web前端常用的javascript特效分享
  8. Mysql间隔时间查询数据
  9. 【数据结构与算法分析】——java语言描述(1)
  10. NET 常见网络命令