在线餐饮油烟实时监测系统的设计与实现

安科瑞 华楠

摘 要:为了解决传统油烟检测方法中成本高、效率低、实时性差等问题,设计开发了一种在线油烟实时监测系统;系统由采集、通讯、服务器和用户交互四个模块组成;采集模块采集油烟数据,通过GPRS通讯技术将数据发送至服务器;数据在服务器中按照解码规则进行解码后,存入数据库;通讯模块采用MINA 框架进行开发,服务器模块采用SSM框架开发;用户交互模块为B/S模式,用户登陆监测网站访问服务器;服务器提供实时数据、历史数据和超标数据查询等功能,方便了相关部门对油烟排放的监督与管理,提高了监测中心工作效率和服务质量。
关键词:油烟检测;实时性;无线通讯
 
0 引言
        “民以食为天”这句话说明了我国的餐饮行业是一个不会衰落的行业。近几年随着经济的发展,我国餐饮市场也得到了巨大的发展。与此同时餐饮业油烟排放没有得到有效控制,大量未经过净化处理或净化不合格的油烟排放到大气中,该油烟对空气质量的影响越来越大。国家早在2001年颁布 《饮食业油烟排放标准》,对油烟排放浓度有着明确的界定。但直至目前为止,国内的大部分环保部门对于油烟检测都采用化学试剂检测的方法,即现场采样抽取排油烟管道内的气体带回实验室检测出油烟浓度。该方法人工成本高,无法实时掌握餐饮企业排放的油烟数据,导致环保部门无法对餐饮企业进行有效的实时监督与管理。
        目前通信技术广泛发展。传输数据无论是在速率和可靠性方面都有显著的提升。本文基于以上背景,设计开发一种在线实时的油烟监测系统。该系统由气体和温度传感器实时采集油烟数据,并通过GPRS通讯实时的将数据发送至服务器,并将数据存入数据库。用户可通过访问服务器监测相关餐饮企业排放的油烟数据。稳定的系统节省了人力,提高了监管部门对环境的监控力。
 
 
1 系统总体设计
1.1 需求分析
        为解决环保检测的实时性、检测成本高等问题,系统需要具有以下功能:1)数据采集:通过传感器实时采集油烟数据;2)实时通讯:将采集到的数据实时的发送至服务器,服务器反馈给发送端是否收到数据以及数据是否合格;3)数据存储功能:将油烟数据存入数据库以便查询、统计和导出等;4)实时数据显示:显示餐饮企业排放的实时油烟数据;5)实时位置显示:显示传感器的实时地理位置;6)超标提示:根据 《饮食业油烟排放标准》的规定,在进行油烟数据显示时,对超过标准的油烟数据进行标注并在监测网站显示;7)数据查询:具有历史数据查询、超标数据查询、实时数据查询功能;8)设备管理:具有对油烟检测设备信息进行增、删、改、查的功能;9)用户管理:具有对用户信息进行增、删、改、查的功能;10)用户登陆功能:访问服务器需要填写正确的账号密码。
1.2 系统设计
        本系统由采集、通讯、服务器和用户交互4个模块组成。其中,采集模块由油烟检测探头和油烟检测节点组成。其中,油烟检测探头由传感器、A/D转换器和CAN总线组成。油烟检测节点由单片机和通讯模块组成。检测探头中的传感器负责实时采集油烟数据 (油烟浓度、温度、电流、电压、经度、纬度和设备运行状态),该数据通过CAN总线传输至油烟检测节点。检测节点中的通讯模块负责将数据通过GPRS传输至服务器。服务器模块作为监测网站的后台支撑,为实时数据显示、实时曲线显示、历史数据查询、超标记录查询、用户信息管理、设备信息管理和数据存储功能提供服务。用户交互模块负责处理用户通过监测网站访问服务器时的操作,根据不同操作,浏览器显示不同的结果。系统总体功能如图1所示。

图1 系统总体功能图
 
2 系统硬件设计
        本系统中硬件的核心为油烟采集模块,该模块包含油烟检测探头和油烟检测节点,如图2所示。

图2 油烟采集模块硬件设计图

2.1 油烟检测探头
        油烟检测探头包括传感器、AD转换器和CAN总线模块。其中,传感器包括气体传感器和温度传感器。气体传感器采用 TGS2602型号传感器。该传感器性能稳定,优点多:功耗小、对烹饪气体敏感、成本低、稳定性强、应用电路简单。对于温度的检测则采用 DS18B20 温度传感器,该传感器的测温范围-55~125℃,分辨率可达0.0625℃,可用于油烟环境中。具有不需要A/D转换器就可直接输出数字信号、外围电路少、适合长距离传输等特点。本文中的CAN总线通信,符合ISO11898标准。采用ADM3053模块,内部集成了DCDC转换器,省掉了光耦隔离,不仅可以隔离单片机与油烟检测探头通信的信号和电源,而且可以节省资源。
2.2 油烟检测节点
        油烟检测节点包括微处理器和GPRS通讯模块。微处理器采用STM32F407,该处理器具有高性能、处理数字信号、低功耗、低电压和高度集成等特点,可满足本系统的硬件要求。GPRS通讯模块采用 SIM868,该模块具有通讯和定位稳定的优点。处理器通过AT 指令可控制SIM868模块收发数据的功能。

 

3 系统软件设计
3.1 通讯模块设计
        由于油烟检测节点 (下位机)与服务器 (上位机)距离远,进行有线传输成本高,可实施性差,本文采用 GPRS无线通讯技术。该技术具有传输数据速率高,成本低和零掉线等特点。
        系统中的通讯功能基于TCP/IP网络通讯协议,油烟数据按照本文设计的通讯格式打包,打包后的数据由下位机以GPRS无线通讯方式发送至上位机。处理器STM32F407,通过AT指令与上位机建立TCP连接后,便可按照规定的通讯格式向上位机发送数据。在数据发送功能中,上位机接收到数据后自动向下位机发送反馈数据。其通讯格式如表1所示。

表1 上位机发送数据通讯

        在数据接收功能中,上位机无需向下位机发送查询指令,下位机定时自动的发送数据至上位机。其通讯格式见表2。
表2上位机接收器数据通讯格式

      其中油烟数据按照存储结构存放在数据区内,数据区长度为14个字节,数据区具体内容见表3,数据区存储结构见表4。
表3 数据区内容

表4 数据区存储结构

        上位机部分采用JAVA语言和MINA 通讯框架编写。MINA框架基于Socket网络通讯,由于网络传输的数据都是二进制数据(byte),与程序中的Java对象编码方式不同。所以在上位机发送和接收数据时,需要对数据进行编码和解码操作。而在上位机进行编码或解码前,需判断数据是否满足通讯格式。不满足条件的数据不进行编码或解码处理,不存入数据库。只将日志信息发送至服务器。这种数据预处理可减少不必要的通讯,并缓解数据库压力。
        图3中显示了上位机接收数据时,根据数据的报头长度、数据头、数据接收命令、数据长度和CRC校验结果,综合判断该数据是否可进行解码操作。

图3 接收数据预处理
 
3.2 服务器模块设计
        服务器模块采用显示(Web)、服务 (Service)和持久(Dao)层三层架构开发,并采用接口式编程。Web层负责与客户端交互;Service层负责处理复杂的业务逻辑;Dao层负责与数据库交互。系统服务器模块结构如图4 所示,监测网站与用户交互属于Web层,并需要后台服务的支撑。

图4 服务器模块机构

        本文在设计Web层采用MVC (Model-Controller-View)设计模式。Model常用于封装数据。Controller位于Model和 View之间,负责接收用户输入,将输入解析后反馈至Model。View负责页面显示。该模式提高开发效率,降低代码耦合度,提高程序的可维护性和拓展性。

         服务器模块具有如下功能:1)实时数据:通过点击地图上的标记,显示该企业排放的实时油烟数据;2)实时曲线:实时数据绘制实时油烟、实时温度、实时电流曲线图,可直观地反应企业一段时间内排放的油烟数据;3)历史数据查询:查询餐饮企业排放的油烟历史数据;4)超标记录查询:查询餐饮企业超标的次数和具体油烟数据;5)用户信息管理:管理可登录监测网站的用户号码;6)设备信息管理:管理油烟采集模块设备的信息。比如:设备编号等;7)通讯功能:接收油烟数据以及发送反馈信息;8)数据存储功能:将油烟数据存入数据库;9)用户登陆功能:用户输入正确的账号和密码才能访问服务器。其中,实现实时数据功能时引用百度地图API,目的是将使用油烟采集设备的餐饮企业标注在地图中,环保部门通过点击地图中的标注点,查询其对应企业的实时油烟数据。实现实时曲线功能时引用百度EChart API,目的是通过下拉框选择设备编号,对选中设备绘制实时数据曲线,提高监测的直观性。

3.3 数据库设计
        根据需求将数据库表设计为:用户信息表 (承载用户账号、密码等)、设备信息表 (承载采集设备的信息等)和设备数据表 (承载数据整合后发送到服务器的相关信息)。用户信息表包含主键id、用户号码、用户名、用户密码和用户权限字段,如表5所示;用户信息表对应用户登陆功能和用户信息管理功能。将用户登陆时填写的用户名和密码同用户信息表中的用户名和密码进行比对,若比对结果一致,则登陆成功。反之,则不成功。对该表执行相应的SQL语句,可实现用户管理功能中对用户信息的增添、删除、修改和查询。

表5 用户信息表

        设备信息表包含id主键、设备编号、注册设备经度、注册设备纬度、企业名称和企业位置字段。如表6所示;该表中的经度和纬度用于实时数据功能中的地图标注。表中的站点编码作为实时曲线、历史数据和超标数据查询功能中下拉框选项中的内容。

表6 设备信息表

        设备数据表包含主键id、站点编码、数据时间、运行状态、油烟浓度、温度、电流、电压、东经、北纬、预留位置1、预留位置2和是否注册字段。如表7所示。该表主要用于存储数据和查询数据。服务器接收到的数据经过解码操作,按照表中的字段和结构,对应地存储在该表中。实时数据查询、历史数据查询、超标数据查询功能则根据站点编码(pkID)进行筛选,并通过SQL查询语句,查询出相应的油烟数据并显示。
 

 表7 设备数据表

 

4 实验结果与分析

        本文将油烟采集设备放置在学校食堂排烟通道中,并设置每5分钟向服务器发送一次数据,存入数据库中。经过测试,油烟采集模块与服务器之间通讯正常,可以准确接收实时数据,并以正确的格式存入数据库中,测试结果如图5所示。

图5 数据库存储油烟数据

        登陆监测网站点击地图中的标注点,可以显示该企业的实时油烟数据,并对监测网站的其他功能进行测试,能实现所有设计的功能,测试结果如图6所示。

图6 监测网站功能测试

        通过以上测试,验证了本文设计的在线油烟实时监测系统可以满足需求,能实现所有设计的功能。

5 安科瑞AcrelCloud3500餐饮油烟监测云平台

油烟监控主机是现场的管理设备,实时采集油烟浓度探测器和工况传感器的信号,进行数据处理,通过有线或无线网络通讯将数据传输到服务器平台。同时,对本地数据进行存储,监控现场设备状态,提供人机操作界面。

■ 油烟监测设备用来监测油烟、颗粒物、NmHc等数据
■ 净化器和风机配合对油烟进行净化处理,同时对净化设备的电流、电压进行监测
■ 设备通过4G网络将采集的数据上传至远程云端服务器

5.2 平台主要功能
        (1)在线监测
        对油烟排污数据的监测,包括油烟排放浓度,颗粒物,NmHc等数值采集监测;同时对监控风机和净化器的启停状态、运行数据进行监测。


        (2)告警数据监测
  系统根据采集的油烟数值大小,产生对应的排放超标告警;对净化器的运行数据分析,上传净化设备对应的运行、停机、故障等告警事件。
        (3)数据分析
        运行时长分析,离线分析;告警占比、排名分析;历史数据统计等。

        (4)隐患管理
        系统对采集的告警数据分析,产生对应的隐患记录,派发、处理隐患,及时处理告警,形成闭环


        (5)统计分析
        包括时长分析、超标分析、历史数据、分析报告等模块

        (6)基础数据维护
        个人信息、权限维护,企业信息录入,对应测点信息录入等
        (7)数据服务
        数据采集,短信提醒,数据存储和解析

5.3油烟监测主机
        油烟监控主机是现场的管理设备,实时采集油烟浓度探测器和工况传感器的信号,进行数据处理,通过有线或无线网络通讯将数据传输到服务器平台。同时,对本地数据进行存储,监控现场设备状态,提供人机操作界面。

具体技术参数如下:

5.4 设备选型方案
 


注:双探头适合双排烟通道的场合,每路探头监测1路排烟通道。

6 结论

本文设计的监测系统为B/S模式,不需要用户安装额外的软件,只需通过浏览器既可使用。本系统在保证准确性的前提下,增强监测的实时性,解放了不必要的人力,并可提高环保部门对城市环境的综合监控能力,具有显著的社会与经济效益。
【参考文献】
[1]姬红波,朱海飞. 基于“互联网+”餐饮油烟在线监控系统[J].中国环保产业,2016(2):45-49
[2]张时,王向东,李树江.在线油烟实时监测系统的设计与实现,沈阳工业大学信息科学与工程学院
[3]安科瑞AcrelCloud-3500餐饮油烟监测云平台. 2020.05版
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/55639.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Delphi 中High DPI开发注意事项

目录 前言: 什么是High DPI? 一、表现不一致的现象 二、当前的解决方案 三、重点 前言: 什么是High DPI? High DPI(高分辨率显示)是指显示设备具有高像素密度的特征。它意味着在相同的显示区域内,显示设备能够…

如何⾃定义⼀个SpringBoot Srarter

⾃定义⼀个SpringBoot Srarter 1、创建⼀个项⽬,命名为 demo-springboot-starter,引⼊SpringBoot相关依赖 2、编写配置⽂件 定义属性配置的前缀 3、⾃动装配 创建⾃动配置类HelloPropertiesConfigure 4、配置⾃动类 在 /resources/META-INF/spri…

自监督去噪: self2self 原理及实现(Pytorch)

Self2Self With Dropout: Learning Self-Supervised Denoising From Single Image 文章地址:https://ieeexplore.ieee.org/document/9157420原始代码:https://github.com/scut-mingqinchen/self2self本文参考代码: https://github.com/JinYize/self2self…

【万字长文】SpringBoot整合MyBatis搭建MySQL多数据源完整教程(提供Gitee源码)

前言:在我往期的博客介绍了2种关于如何使用SpringBoot搭建多数据源操作,本期博客我参考的是目前主流的框架,把最后一种整合多数据源的方式以博客的形式讲解完,整合的过程比较传统和复杂,不过我依旧会把每个实体类的思路…

NASA和uAvionix在AAM测试场部署SkyLine C2指挥和控制服务

蒙大拿州比格福克和弗吉尼亚州汉普顿2023年07月28日——美国宇航局和uAvionix签署了一项太空法案协议,为城市环境中的无人机系统 (UAS)开发先进的超视距(BVLOS)指挥和控制(C2)技术。根据协议,NASA将与uAvionix合作,利用基于互联网的基础设施和…

亚马逊云科技与真格基金发起「AI超新星计划」,助力早期创业者快速启动项目

大模型创业热度仍旧在持续增加,“百模大战”中AI创业者们的机会更多是在应用层。为了尽可能降低AI创业者的启动门槛,亚马逊云科技携手头部早期投资机构真格基金共同发起了「AI超新星计划」,为心怀梦想的AI应用创业者们提供了从云资源、模型选…

NSS刷web3

[HDCTF 2023]SearchMaster [天翼杯 2021]esay_eval 这题会匹配A或B类 如 "A":1: 绕不过去 可以考虑快速析构 <?php class A{public $code "";function __call($method,$args){eval($this->code);}function __wakeup(){$this->code "&q…

DLA :pytorch添加算子

pytorch的C extension写法 这部分主要介绍如何在pytorch中添加自定义的算子(例如&#xff0c;您可能希望 使用您在论文中找到的新颖激活函数&#xff0c;或实现操作 您作为研究的一部分进行了开发。)&#xff0c;需要以下cuda基础。就总体的逻辑来说正向传播需要输入数据&#…

Stable Diffusion AI绘画学习指南【插件安装设置】

插件安装的方式 可用列表方式安装&#xff0c;点开Extensions 选项卡&#xff0c;找到如下图&#xff0c;找到Available选项卡&#xff0c;点load from加载可用插件&#xff0c;在可用插件列表中找到要装的插件按install 按扭按装&#xff0c;安装完后(Apply and restart UI)应…

React(4)

1.属性&#xff08;props&#xff09;初始 状态state都是组件内部写的&#xff0c;也就是A组件内的state就只能A组件里面用&#xff0c;其他组件复用不了。因此属性props就可以。 比如一个导航栏&#xff0c;首页有&#xff0c;购物车有&#xff0c;我的有&#xff0c;他们三个…

数据可视化(4)散点图及面积图

1.简单散点图 #散点图 #scatter(x,y) x数据&#xff0c;y数据 x[i for i in range(10)] y[random.randint(1,10) for i in range(10)] plt.scatter(x,y) plt.show()2.散点图分析 #分析广告支出与销售收入相关性 dfcarpd.read_excel(广告支出.xlsx) dfdatapd.read_excel(销售…

NSX多租户之旅

从多租户数据面到完整的多租户框架 我们很高兴地宣布NSX中的Projects这一项新功能&#xff0c;可以对NSX部署的多个租户进行细粒度的资源管理。 Projects提供灵活的资源分配和管理&#xff0c;将NSX的多租户支持提升到新的水平。企业管理员可以将平台划分为不同Projects&…

【数据结构】27.移除元素

&#x1f490; &#x1f338; &#x1f337; &#x1f340; &#x1f339; &#x1f33b; &#x1f33a; &#x1f341; &#x1f343; &#x1f342; &#x1f33f; &#x1f344;&#x1f35d; &#x1f35b; &#x1f364; &#x1f4c3;个人主页 &#xff1a;阿然成长日记 …

Scratch 教程 -- 如何绘制像素画

1.像素画的定义 像素画就是以1像素的正方形为最小单位画的画&#xff0c;且物体有明显的分界线 这是像素画 这不是像素画 来看这两个法棍 这是像素画 这不是像素画 为什么第二个不是像素画&#xff1f;因为不能区分边缘和物体&#xff0c;它们之间有很多过渡色。 中间的过渡色属…

Spring依赖注入

文章目录 前言1.依赖注入简介2. setter注入3. 构造器注入4. 自动装配 总结 前言 为了巩固所学的知识&#xff0c;作者尝试着开始发布一些学习笔记类的博客&#xff0c;方便日后回顾。当然&#xff0c;如果能帮到一些萌新进行新技术的学习那也是极好的。作者菜菜一枚&#xff0…

Sublime操作技巧笔记

同时选中2个文件&#xff1a;自动切换成左右2个界面 格式化代码ctrlshifth&#xff1a; 使用快捷键ctrl shift p调出控制台&#xff0c;输入install package&#xff0c;然后输入html-css-js prettify&#xff0c;进行下载。具体的快捷键在preference > package setting &g…

【深度学习】Inst-Inpaint: Instructing to Remove Objects with Diffusion Models,指令式图像修复

论文&#xff1a;https://arxiv.org/abs/2304.03246 code:http://instinpaint.abyildirim.com/ 文章目录 AbstractIntroductionRelated WorkDataset GenerationMethodPS Abstract 图像修复任务是指从图像中擦除不需要的像素&#xff0c;并以语义一致且逼真的方式填充它们。传统…

springboot对静态资源的支持

1、spring boot默认静态路径支持 Spring Boot 默认将 / 所有访问映射到以下目录&#xff1a;** classpath:/static classpath:/public classpath:/resources classpath:/META-INF/resources也就是说什么也不用配置&#xff0c;通过浏览器可以直接访问这几个目录下的文件。 1…

Spring之BeanDefinition(二)

Spring之BeanDefinition 文章目录 Spring之BeanDefinition1、对象和bean的区别2、BeanDefinition作用AutowireCandidate说明Primary说明ConstructorArgumentValues说明第一种使用方式第二种使用方式 MutablePropertyValuesabstract小结 3、BeanDefinition的发展历程3、BeanDefi…

C++ 类的友元

【例1】 将数据与处理数据的函数封装在一起&#xff0c;构成类&#xff0c;既实现了数据的共享又实现了隐藏&#xff0c;无疑是面向对象程序设计的一大优点。但是封装并不总是绝对的。现在考虑一个简单的例子&#xff0c;就是Point类&#xff0c;每一个Point类的对象代表一个“…