单片机实现的二氧化碳浓度检测报警系统实战详解

摘 要:

随着计算机网络技术的不断发展,智能检测系统也朝着越来越智能化的方向发展。本文设计了一款基于stm32的
二氧化碳浓度检测报警系统的设计方案。本次设计的基于stm32的二氧化碳浓度检测报警系统,通过采用单片机作为
主控单元,结合二氧化碳检测模块、显示模块、4G模块、报警模块、通风模块及上位机等实现了环境二氧化碳的检测
功能,并且可以通过显示模块添加通风模块,在浓度过高时进行通风处理和报警提示,系统检测的数据情况会通过
4G模块发送至云端,通过上位机登录云端应用即可进行二氧化碳检测数据的查看。整个设计的进行都是严格根据设
计的方案进行操作,最后通过对设计进行相关的测试与功能调试,完整实现了基于stm32的二氧化碳浓度检测报警系
统的预期功能,本次的设计从价格、功能方面都体现了很大的亲民性,其较传统的监护方式而言,可以实现更高自
由度的控制以及更高精度的监控,具有重要意义。
关键词:单片机;二氧化碳检测;4G;上位机监测

1绪 论

1.1研究的背景和意义
  基于物联网技术的智能产品,可以实现大量人类需要花费大量精力才能完成的工作。例如采用无限通信技术实
现智能家居的远程操控、蔬菜大棚环境的远程监控、无线麦克风等;例如GIS地理信息系统实现人们出行的智能导
航、老人儿童的实时定位、物品运送实时跟踪等。基于这些物联网技术,可以研发出大量不同用途的智慧产品,在
人类社会的各个角落发光发亮,使各种不可能变成了有可能。单片机是目前应用在各种智能产品中最常使用的一种
物联网技术,它是一种微型逻辑处理单元。由于社会发展的步伐与科学技术发展成正比,因此,各种新型材料的制
造也越来越容易,其成本也得到控制,因此,单片机技术得到了推广和应用,走进家家户户。
  在开发单片机智能产品时,需要对产品的智能性和安全性格外注重,这两个特性决定了做开发出的智能产品是
否具备价值以及满足人们的需求。而本次基于stm32的二氧化碳浓度检测报警系统的开发,可以实现更方便、精确地
进行环境二氧化碳的监控,能够满足环境管理智能化的需要,在使用时,具备了安全性,为人们的生活和工作带来
极大的便利。
1.2研究的现状
  智慧产品的发展,无论是国内还是国外都属于备受关注的技术,由于智慧产品的发展,关系着一个国家的先进
程度以及国民幸福度,因此,许多国家都将发展中心放在科技和创新上,不惜成本培养大量新型人才,致力于促进
智慧产品的研发。发展至今,智慧产品已经进入繁荣时期,涉足人类社会各个领域。
  世界上第一个单片机产品的出现,是在19世纪初,其具备的优秀潜质备受关注,在此基础上,单片机控制技术
得到不断的发展。在80年代初,单片机技术发展已经脱颖而出,单片机控制技术、传感器测控技术、数据传输技术
已经应用在智慧产品上,这标志着单片机技术的发展迈向了新阶梯,开始走向成熟化。
  环境的发展,不仅是我国关注的问题,更是国际上都密切关注的重点问题。当今社会发展迅速,人们的生活水
平以及生活环境在不断地改善,我国已经进入了信息化时代发展的新时期、新时代,社会的主要矛盾比起以前已经
发生了变化,生活的物质追求不断得到满足,现阶段,社会的主要矛盾集中在提升人们的生活质量和改善民生发展
的问题上,环境质量问题尤为体现,这与人民的切身利益有直接作用关系。地球环境中空气污染种类增多,所以想
要控制空气污染物,对它进行一系列的排放和净化,首先就必须对空气中的污染物进行实时的监测检测,这样才能
更加快速、有效的进行针对性的解决问题。针对这一现状,本文提出设计一款基于stm32的二氧化碳浓度检测报警系
统,本系统可以实时检测空气中的二氧化碳浓度,查看数据是否超出安全指标,更能及时对检测出的情况进行通知
和调节,提出应对方案,具有一定的实际应用价值。
  本文对基于stm32的二氧化碳浓度检测报警系统设计的分析,是在查阅的大量关于基于stm32的二氧化碳浓度检
测报警系统的研发技术及其功能相关的国内外文献,分析出的结论。2012年至2022年,相关信息技术的发展已十分
成熟,并形成了关于环境检测系统研发的产链,但至目前为止,基于stm32的二氧化碳浓度检测报警系统的研发,依
然有待创新,需要研发出功能更全面,满足个性化需求的产品。
1.3 研究的主要方法
  本次课题研究对象为基于stm32的二氧化碳浓度检测报警系统,为了更好设计出该系统,首先需要进行功能的设
定,根据功能设计来大体确定其所需要的电路类型。硬件部分设计好之后,还需要让其更好的进行数据显示和信息
交互。了解其工作原理、模块的引脚功能、电路的走向、连接的方式等等都需要平时的积累或者通过查询相关资料
才能完成。对此,本次的研究主要工作具体如下所示:
  (1)查询该课题相关的文献记录:可以从网上或者线下图书馆来查询有关基于stm32的二氧化碳浓度检测报警
系统这类的文献或者研究报告,来进行功能方案的设定。
  (2)选择合适的电路:根据设计好的功能,来确定本系统所需的电路,需要结合其工作方式、内存以及性能等
各个方面去考虑,选择出最适合本次设计的模块化方向。
  (3)系统电路的验证:完成电路的连接方式和程序的编写之后,需要系统来进行功能的验证,通过验证各个模
块的功能,来保证每一个模块的正常,从而为整体系统的运行提供保障。
1.4论文目标
  本课题将在借鉴已有文献成果的基础上,主要采用实践开发的方式进行系统的开发,首先阅读相关文献调研基
于单片机的二氧化碳浓度检测报警系统的开发过程,了解熟悉stm32单片机的工作原理完成相应电路功能模块的开发
,在硬件设计的基础上,进行软件功能的开发,根据需要采购相关的元器件,完成印制电路板实物的制作并测试。
本章节主要对二氧化碳浓度检测报警系统的开发背景、目的及意义进行了详细的阐述;并对本系统开发过程中需要
开展的工作内容进行了分解描述,进一步明确了本系统开发的流程;后面章节将基于此内容进行详细的开展系统软
5
硬件部分模块的设计;并基于设计的模块进行功能验证。
1.5论文工作安排
  (1)绪论:绪论为论文的第一个部分,通过相关资料的查询,本次详细阐述了基于stm32的二氧化碳浓度检测
报警系统的背景和设计的意义、以及对基于stm32的二氧化碳浓度检测报警系统目前的研究状况进行分析,接着是对
研究主要的工作进行展开描述。
  (2)总体方案设计:总体方案设计为本系统的第二个部分,本章主要为设计要求、系统设计方案的选择以及总
体方案设计,为后续的软硬件设计的展开描述打奠定基础。
  (3)硬件电路设计:硬件电路设计为本系统的第三个部分,章节开头描述了硬件设计的原则,主要阐述的是设
计硬件时的一些注意事项。接着就是对本系统核心模块的设计,包括其工作原理、电路连接以及在本系统的作用展
开了详细的说明。
  (4)软件系统设计:软件系统设计是系统的第四个部分,本章分别为软件设计的思路、采用到的编程语言进行
描述、然后是系统主流程图的设计以及主要子程序的设计,采用了图文结合的方式进行描述,可清楚了解软件的设
计流程。
  (5)调试与分析:调试与分析为本章的第五个部分,本章分为三个部分,分别为硬件测试、软件测试以及测试
之后进行整体的分析说明。

2总体方案设计

2.1设计要求
(1)技术可行性
  本次设计采用智能控制芯片搭配各元器件实现各模块的电路设计,逻辑程序的实现的采用当前流行的编程语言
实现,这些硬件技术和软件技术在市场上已存在运行了较长的时间,不仅具有一定的稳定性,其可扩展性也很丰
富,本次设计的功能实现也可在市场存在产品的基础上进行完善改进,建立自己所属的独特产品。在软硬件的实现
过程中,可以借助仿真去实践验证,当编码遇到问题时,可以通过日志的反馈去相关的技术论坛上进行检索解决,
总的来说本次设计在技术的实现方面,前面的研究者们给予了很大的帮助,其可行性是很高的。
(2)经济可行性
  本次设计开发需要到各部分的硬器件、相关技术文档及文献;应用到的各模块硬器件可以从市场上以极低的成
本采购,开发需要的相关技术文献及资料等可以从网络、学校图书馆等地方获得,且各模块的功能实现所需添加的
成本都不高,总的来说,本次设计在基础条件、知识条件的采购上性价比很高,可以通过较低的成本实现用户所
需,并且操作方式简单高效,不仅满足家庭使用也可在工业生产中批量使用。
(3)运行可行性
  该设计的研发充分考虑到了用户对当前存在的智能产品的完善优化,设计的部分功能在当前市场上是已经存在
并且趋于成熟化了,本次所需的实现是提高智能化产品的聚程度,通过观察分析得出创新点,提升了此次设计在智
能化产品中的特色。既保证了运行的可行度,同时也提高了用户的使用满意度。
2.2主要设计方案选择
2.1
2.2.1总体方案选择
  根据基于stm32的二氧化碳浓度检测报警系统设计的功能要求,设计方案选择是实现系统功能的关键步骤,选择
合适的设计方案是为了避免系统功能实现时产生根本错误。本次设计的基于stm32的二氧化碳浓度检测报警系统可以
供我们选择核心控制电路主要有两种。一是智能控制电路,另外一种就是非智能控制电路。具体介绍如下:
  方案一:非智能控制电路,这种电路主要由许多不同逻辑元器件组成系统所需的各种逻辑功能电路以此实现系
统所需要的功能;采用繁多的电容和电阻调整系统中的电流与电压。这种电路设计过程及其复杂不能保证其稳定
性,想要进行简单的功能拓展时则需要对整个电路进行改变,灵活性低且功能单一。
  方案二:智能控制电路。这种电路采用可编程的控制器件作为核心进行设计的电路。这种器件相当于微型计算
机,其内部集成了运算器,控制器和存储器等等,能够高效率地控制电路中每个电子器件有条不紊地工作。且这种
电路中电路图设计普遍比较简洁,当电路出现异常时,能够方便技术人员进行排查。
  综合考虑,本次设计的基于stm32的二氧化碳浓度检测报警系统要保证系统的稳定性,精确性与便携性。所以本
次采用智能控制电路和微控制器为核心的控制单元作为设计的基础来实现系统的各个功能的开发。
2.2.2 主控方案选择
主控制模块有两种方案选择:
  方案一:控制核心为采用STM系列单片机为主系统。该芯片设计预留的硬件接口以及可利用的内部资源,是非常
的充裕,在各大高校得已被广泛采用于教学研究和入门学习。但是,由于单片机技术的发展,在性能和成本效益方
面,与其他系列产品相比,其性能处于劣势。
  方案二:控制核心采用STM32微控制器为主系统。STM32微控制器内核的工作状态稳定,运算能力强,具有运算
量大、功耗低的特点。STM32内嵌的上电复位,掉电复位,电压检测能够使系统工作的更稳定。STM32单片机市场占
有率较高,相关的开发文档完善,技术支持强大,能够满足新能源车辆充电桩安全控制系统设计的功能需求。
  两种方案相比较,都有个自的优缺点,但是考虑到本次设计的功能稳定性,后续需增加的扩展,运行的速度等
考虑,所以从开发的简易性、友好性出发,本次的课题设计选择的主芯片是32单片机。
2.3总体设计方案
  本文设计的基于stm32的二氧化碳浓度检测报警系统,由单片机模块、二氧化碳检测模块、报警模块、通风模
块、显示模块、4G模块及上位机等组成。单片机模块是系统的主控单元,负责进行系统的数据处理和指令收发工
作;二氧化碳检测模块是本次系统的检测终端,也是核心的功能模块,负责主功能二氧化碳浓度检测的实现;通过
显示模块触摸屏可以添加通风模块,在检测二氧化碳数据超标时启动通风调节和报警提示;蓝牙模块是硬件端和上
位机的通信通道,负责将检测到的环境二氧化碳浓度信息数据传输到上位机上显示保存;以此实现基于stm32的二氧
化碳浓度检测报警系统。系统的总体设计方案如下图所示:

图2.3 设计构架图
2.4系统工作原理
   本系统主要采用STM32单片机先骨干元器件开展相关电路模块的设计,单片机作为整个系统的核心模块,负责
数据采集的处理,同时承担着后端执行指令的发出。单片机将根据采集的二氧化碳浓度信息,控制相应输出,将二
氧化碳浓度数据在显示屏上进行显示,超出限值时进行报警处理。同时当二氧化碳浓度超过系统规定的上限值时,
会驱动电机的转动,用以模拟风扇的转动,降低环境中二氧化碳浓度的数值,始终保持其在合理可控的范围内。整
个系统的功能比较完善,可以按照上述的描述进行各模块的开发设计工作。系统的工作原理十分便于理解,系统开
发的主要重点难点在于二氧化碳浓度数据的采集部分,该部分需要对模块传感器进行工作原理的熟悉,了解其内部
工作的时序原理,并以此进行程序代码的编写,同时做好单片机控制引脚的合理布局,充分利用单片机各输入输出
口引脚的资源,进行外围电路的扩展,只有这样开发出的系统实物才能符合预期,高要求,高标准的满足系统设计
方案的要求,便于后期系统的维护以及系统功能的在扩展,来适应更多开发功能的需要。
2.5本章小结
  本章对系统设计方案的总体功能框架有了很好的把握,基于这样一种思路,来开展后续的单片机外围电路模块的功能开发,使系统的硬件电路符合需要。系统硬件各元器件的选取是进行系统设计的第一步,也是很关键的一个
工作,选择确定好了合适的元器件才能以此为基础,进一步做好下面的工作,包括,电路原理图的绘制、软件程序
的编写,电路的焊接等工作。因此,明确好系统各个模块的元器件原则可以为后续工作开展思路,做到按时完成各
模块开发的任务。

3硬件电路设计

3.1硬件设计原则
  硬件电路是一个系统的重要组成部分,对硬件的研究的是十分必要的,它重要影响着系统的功能是否得以实
现。所以这次主要从以下几个方面来考虑硬件电路的实施。
  其一,为了保证硬件系统标准化,在设计电路时应该尽可能地选择使用一些经典的电路,经典的电路可以让我
们走前人走的路,更加容易上手,同时前人也出现过错误,在排查错误时可以借鉴前人的宝贵经验,为我们节约大
量的时间。
  其二,为了系统能够平稳运行,对系统的各个元件选择要与系统的性能匹配,不能产生过多的外围电路,不然
会造成系统的驱动负荷过大,从而系统工作不稳定,应对办法应尽量降低芯片的功耗,或者增加系统的驱动能力,
此外也要考虑系统的可靠性以及系统的抗干扰能力问题。
  其三,在硬件电路的设计时,由于硬件结构也会受到软件方案的影响,所以不能只考虑硬件功能实现,硬件的
结构应当与应用软件相结合在一起考虑。所以软件部分能够实现的功能,应尽量用软件实现,这样可以简化硬件结
构,降低功率消耗,但过多的使用软件来实现功能会增加CPU处理时间,降低工作效率,需要经过合理地分析研究,
才能设计出最佳电路。
3.2单片机模块电路设计
  本次系统选择STM32F103VET单片机最小系统作为设计的主控单元,STM32系列单片机具有高性能、低成本、低功
耗的特点,属于增强型系列的单片机。因其内核采用的是由ARM公司生产研发的Cortex-M3内核,更能满足用户对于
单片机高性能、高速度和高性价比的需求。STM32单片机最小系统的组成部分主要由:主芯片、时钟电路、电源供电
电路、上电复位电路。单片机最小系统的设计是本系统设计的一个基础性工作,也是较为容易开发的一部分,是熟
悉单片机的使用人员所必须掌握的一个电路结构。单片机其设计电路如下所示:
图3.2 单片机电路图

3.2.1 二氧化碳检测模块电路设计
  本系统选择使用气体传感器来检测环境中的二氧化碳。空气质量传感器使用的气敏材料是二氧化锡,它在清洁
的空气中具有低导电性。当环境中有污染气体时,传感器的电导率随着空气中污染气体浓度的增加而增加。电导率
的变化可以转换成一个输出信号对应的气体浓度使用一个简单的电路。它也是监测烟雾和其他有害气体的理想选
择,使其成为一种低成本的传感器,适用于广泛的应用。
3.2.2显示模块电路设计
  本次系统选择采用TFT显示屏来进行人机交互功能的实现,TFT-LCD是薄膜晶体管液晶显示器。TFT-LCD技术是微
电子技术与液晶显示器技术巧妙结合的一种技术。人们利用对Si进行精细加工的微电子技术,移植到在大面积玻璃
上进行TFT阵列的加工,再将该阵列基板与另一片带彩色滤色膜的基板,利用已成熟的LCD技术,形成一个液晶盒相
结合,再经过如偏光片贴覆等工序的加工,最后形成液晶显示器。使用TFT显示屏能够实现以简单的逻辑编程实现游
戏画面的清晰显示,而不用基于实现其硬件多个连接口的设置,更能够让用户集中思绪处理整体的逻辑交互提示工
作。通过对各种电信号的处理以及总芯片的逻辑处理,就可以实现对图像的输出控制。
3.2.34G模块电路设计
  本次系统选择采用4G模块实现数据上传至物联网云平台的功能。本次使用的4G模块是一款支持多频段LTE-TDD
/LTE-FDD/GSM/GPRS/EDGE LTE CAT1模块。具有强大的扩展能力,包括UART,I2C,GPIO等丰富的接口。该模块为客
户的应用提供了极大的灵活性和易集成性,同时封装形式是LGA,与SIM7070系列模块封装兼容,可以尽可能减少客
户研发无线数据通信的时间,具有高性能,安全性和可靠性。本次使用时,在该模块上插上一张SIM卡,通过GPRS的
流量消耗,即可完成数据传输到云平台的功能。
3.2.4报警模块电路设计
  本系统采用蜂鸣器来实现系统的报警提示功能。由单片机在识别到数据是否达到设定阈值后,进行浓度数据分
析判断是否进行报警。蜂鸣器由直流电压来驱动的,蜂鸣器分为有源蜂鸣器和无源蜂鸣器两种,无源蜂鸣器需要单
片机的引脚直接提供高频反转的电压提供电能,需要较高的电流,有源蜂鸣器由单片机的引脚一个PWM脉冲控制外接
电源电路的导通与关断来为其提供电能,需要的电流很小。所以本次采用无源蜂鸣器来进行报警的驱动。
3.2.5通风模块电路设计
  本系统采用风扇来实现系统的通风功能。该系统主要用于环境中的二氧化碳浓度超限时的执行机构,由单片机
进行控制,当系统检测到环境二氧化碳的浓度过高时,会启动通风模块进行调节工作,降低环境中过高的二氧化碳
浓度,通风模块的电路由电风扇外接三极管组成,当单片机引脚输出高电平时,三极管不导通,此时风扇就不会运
作;当单片机引脚输入低电平的时候,三极管导通,风扇转动,以此来改变环境中的二氧化碳浓度,实现智能化的
控制。该模块作为系统的后端执行机构,通过单片机的控制命令而进行工作,十分方便的进行功能的展示及开发,
编程代码也较为简单。
3.3本章小结
   本章节主要对二氧化碳浓度监测系统硬件部分的电路设计进行了详细的阐述,对系统各模块电路进行了系统性
的介绍分析,各模块的设计可以满足系统功能的要求。本章节对各功能模块进行了深入的分析,各电路构成基本可
以达到要求;各模块将主要以单片机为控制单元的核心,其作为单片机扩展的外围电路进行设计;各模块之间相互
独立,不受影响;可以后续将基于本章节的电路构成,进一步开展系统软件部分层面的设计开发;从而完成系统完
整功能的设计;从功能实现的角度出发,按照这个思路来开展系统软件部分的代码编写。
本章节的内容是开展系统功能设计的一个重要组成部分,需要重点关注;进行详细的描述;以此为基础进行下一步
的开发工作;系统的硬件是基础,也是底层,是直接关系二氧化碳浓度检测报警系统是否能正常运行工作的重要组
成部分,因此,需要对硬件的结构电路,各模块功能进行十分详细的描述开发;细致的研究;争取将其做得更好;
这样可以为后续整个系统的功能模块开发奠定一个良好的基础。

本章节主要在前面第二、三章节系统硬件电路模块介绍分析的基础上,完成系统软件部分的编写,采用C语言在
Keil软件平台编写系统程序的代码,依据各模块的功能设计要求,分块完成程序软件的设计,并采用印制电路板制
作实物,将程序烧写至单片机;最后开展系统的软硬件部分的联合调试;以测试开发的系统功能是否满足设计方案
的要求;逐一进行验证。该部分也是整个二氧化碳浓度检测报警系统的重要组成部分,在软件层面上的设计,主要
是进行系统功能模块的程序代码编写,充分利用各模块的功能资源进行有效的开发。
4.1设计思路
  在基于stm32的二氧化碳浓度检测报警系统满足之前的硬件要求后,下一步是对整个工作流程逻辑进行编码。在
进行编码之前,首先各个对各个模块的功能进行合理的分析,将各个模块细分化,并为之得以实现建立适当的模
型,这样才能够很好的将模型映射为软件,从而更好的解决实际过程中的问题。设计的软件系统部分,应该具有灵
活且有效,反应能力迅速,易于理解和维护,适用性和重复使用能力强等特点,能很好的满足用户的需求。因此,
在进行各个子程序的编码时,需要为之建立适当的模型,将每个模块的函数封装到相应的子函数中,在主函数中写
出数据的逻辑判断,这样子在主函数调用各级子函数时既可以使功能系统更顺利实现,同时也方便后期的维护工
作。良好的软件编码应该具备以下优点:
  (1)每个模块之间的数据采集和数据传输是不受其他模块影响的,能够单独采集数据和传输数据,并能够排除
错误
  (2)能够快速的进行查找错误,因此在数据处理的每个阶段结束之后应当加入提示语,这样可以清楚的知道系
统运行到哪个地方,查错也很方便。
(3)每个模块的函数都是封装好的且是完整的,从而方便排查错误或者为系统增加新的数据。
4.2编程环境及语言简介
  本次系统选用的编程软件是Keil编程软件,Keil编程软件专门用于硬件设备的数据编程,可以对各种硬件和软
件进行统一编程,并可以快速搭建各个模块的配置文件。交互界面的友好性能够让开发人员专注于他们的工作。
Keil编程软件可以在软件编程完成后,快速将代码编译成机器可以识别的机器码,也可以快速进行程序的编写。整
个代码烧录过程可以人性化的导入,方便开发人员的后期工作。
  本次系统的软件逻辑实现,我们选用C语言编程实现,因为在大学期间,我们学校开设过这门课程,有一定的基
础。而且想要学习任何一门语言都得花费大量的时间与精力,想要学习一门新的语言并不是那么容易,陌生的领域
难免会让人望而生畏。C语言的好处在于编程语言简单,开发者能够快速上手,并且C语言编程主要是面对过程编
程,正好和我们系统要处理的逻辑相同,这样我们就能快速的实现系统功能,而且C语言编程的另外一个好处,我们
能够封装不同功能到不同的函数中去,这样在使用调用起来也特别方便。而且C语言编程的各种数据定义以及初始化
非常的方便。
4.3主程序设计
  本次系统成功运行之后,首先是各模块的初始化,然后系统开始进行二氧化碳的检测工作,当检测到二氧化碳
信号时,传递给单片机处理分析,当检测的数据超过阈值时,系统启动报警调控的功能,在完成4G连接的情况下系
统检测的数据会同步上传到上位机端。系统主程序流程图如下所示:

图4.3 主程序流程图
4.4数据采集程序设计
  本系统需要完成对环境中二氧化碳的采集和判断,通过检测传感器与单片机进行信号通信,输入单片机能够识
别到的电平信号。首先,对传感器的配置进行初始化,并连接到处理器的IO对应接口。然后,传感器开始循环采集
当前的二氧化碳数据并将其传输给处理器,处理器接收后进行解析。该软件数据采集程序流程图如图所示。
图4.2 数据采集流程图
4.5显示程序设计
  对于本次TFT显示的程序设计,主要是按照TFT的操作首先来进行程序的编写,即按照清屏、写地址、写数据,
写地址的方式对需要写入的数据依次进行写入。显示程序流程图如下所示。

图4.3 显示程序流程图
4.6通信程序设计
  本系统在GPRS连接完成的情况下,网关中收集到的数据会传输到云平台中进行显示保存,程序启动后单片机的
接口会初始化并判断是否有连接,存在连接的时候,传输数据包。4G通信的流程如图所示:

图4.4 4G通信程序流程图
4.7上位机设计
  本次系统的后台管理是基于物联网平台来进行设计的,网页进入有人云物联网平台后,先设置好变量模板,设
置所属组织、采集方式等,然后进行从机和变量的配置,选择协议和产品,配置好串口序号、从机地址等参数。然
后将设备信息如设备标识、设备MAC地址进行校验,校验成功后到就可以看到当前开发的设备情况。该系统的联网模
块可以实时监控和进行异常报警。具体显示如下所示:
图4.7.1 上位机设备显示页面
点击查看详情等页面,就可以看到当前系统检测CO2的详细趋势图情况。具体显示如下所示:

图4.7.2 二氧化碳浓度曲线趋势图

图4.7.3 二氧化碳测量数据图
4.8本章小结
  本章节主要对系统的软件部分进行了分析介绍,基于系统硬件电路设计上来开发了软件部分,并采用了专用的
软件完成了系统软件电路图及程序代码的编写,调试结果效果良好。并且添加了上位机功能,可以对采集到的环境
中的二氧化碳浓度数据进行实时监测分析,根据曲线趋势图来判断环境中的二氧化碳浓度变化。总体而言,目前基
于单片机的二氧化碳浓度检测报警系统可以满足本课题的设计需要,功能完善较好。

5调试与分析

5.1硬件调试
  完成系统设计与开发之后,接下来的一个重要步骤那就是硬件电路的调试。首先通过原理图来查看电路连接顺
序是否错误,查看一些线路是否已经完全连接在其相应的管脚上,因为模块需要加上线路多的情况下是非常容易连
接错误的,接着需要借助万能表来测试焊接电路是否能够正确导通,用万能表测试过程中如果万能表的蜂鸣器正常
响起那就说明是可以导通,反之就是不导通,有可能就是存在虚焊、焊接错误等问题,这时就需要仔细去排查,虚
焊问题可以通过电烙铁来重新焊接,焊接完成再用万能表测试,蜂鸣器正常响起那就说明是焊接正确的,最后需要
对电源进行测试,在给系统上电之前,需要对各个模块承受电流的估量,可以借助稳压电源来进行测试,系统上电
之后需要仔细观察各个模块的反应是否正常,发现异常后,需要立即断掉电源,正常运行一分钟后,观察系统整体
反应,正常运行就完成了硬件电路的测试。
5.2 硬件连接测试
  在整个系统开发完成后,首先要做的就是对硬件工作环境的测试。对其各个数据采集模块进行回传数据检测,
能够成功的获取而部分采集数据。本文设计的系统要在外界环境下进行工作,要对其管脚进行测试,在不同环境下
进行数据的获取,看是否会出现错误。以及管脚是否会出现松动,如果连接不牢靠 ,也会出现相关数据获取的不成
功。数据获取的不成功,会直接导致后期工作的运行。对电路板的各个模块要认真检查,这样才能保证系统长期稳
定的运行下去。当硬件系统的某个地方出现问题,也要用万用表对其进行错误分析排查。硬件稳定的工作环境是后
面逻辑数据处理的前提。
5.3硬件功能测试
  功能测试之前,需要对已完成硬件测试的所有硬件模组进行实物搭建整合,依照系统设计的电路图以及焊接管
脚材料说明书等参照,将所有硬件进行整合,确保系统整体连接顺畅,信号接受良好,各个模块配合工作的同时相
互之间彼此独立。系统功能测试用例与结果如表5.3所示。
  
编号 测试目标 测试内容 测试结果
1 单片机模块 1.测试单片机是否可以正常工作 成功
2 二氧化碳检测模块 1.测试二氧化碳传感器是否正常检测数据 成功
3 4G模块 1.测试4G模块是否能进行数据的传输 成功
4 显示模块 1.测试显示屏是否能进行数据和界面的显示 成功
5 报警模块 1.测试蜂鸣器是否能正常响应检测数据的超标情况 成功
表5.3 硬件模块测试结果
5.4软件调试
  在完成硬件测试后,接下来就是软件测试了。借助Keil4软件来打开程序,因为采用的是模块化的开发方式,单
个模块程序放在一个文件里,最后通过直接调用在主程序就可以使用了,该方法可以让主程序看起来没那么繁琐,
也为了更好去查看问题。运行程序后,注意查看是否会出现错误警告,当出现错误的时候,需要根据Keil4编译运行
的日志进行仔细盘查,日志里会显示错误的具体行数,根据提示的行数,一行行去解决,多数的错误会出现在大小
写,标点符号以及括号是否对应等小问题,这时候就需要很仔细去查看了,当发现是程序出了问题,可查看是否是
配置参数、指针变量或者声明类型等常见类型的错误,尝试去解决,解决不了,可以通过网上查阅资料、书籍搜索
或者咨询同学和老师的方式去解决这个问题。不断尝试、不断编译,当出现零错误零警告才是软件程序测试步骤的
完成。
5.5软件测试方案
  本系统的对于软件的测试方案选择黑盒测试方法,首先我会规划好一份测试计划,针对于本次系统要测试的范
围,明确系统的所有功能,以及测试要达到的目标,然后针对于这一份测试用例一步步测试,并将结果记录分析,
直到系统最初设计的各模块功能都实现后,基本初步确认软件的完成。
5.6软件测试过程
(1)使用Keil软件编写基于stm32的二氧化碳浓度检测报警系统设计代码;
(2)完成代码编程,代码编译,调试过程中出现显示异常,出现乱码,通过修订代码,编译成功;
(3)将编译成功的HEX文件下载到单片机;
(4)连接下载口,打开KEIL软件进行程序烧录。此时可以观察电路指示灯是否亮起。
(5)进行二氧化碳检测、数据显示、数据传输等子程序等的调试。观察是否能够达到预期的功能。
(6)验证该设计的功能,是否能实现环境二氧化碳的检测调控、传输至上位机的功能。
5.7整机调试分析
  完成硬件和软件的调试之后,就是对系统的整体测试了,这时候需要借助程序下载工具来完成,在下载时,需
要注意选好单片机型号芯片、串口号以及波特率,下载成功后,观察单片机基于stm32的二氧化碳浓度检测报警系统
上出现的情况,接着对单个模块功能分别进行功能测试,观察是否成功实现功能,出现模块未能成功实现,就需要
去进行软件结合硬件的测试了,直到找到问题并解决。经过多次测试,本系统能够实现其基本的功能,供电稳定,
系统可以对环境的二氧化碳进行检测和调控、可以通过显示屏进行数据的查看和触摸操作、同时检测的数据会同步
上传到上位机中记录保存。调试图如下:

图 5.7 系统调试图

6结论

当进行到系统测试部分,并且能够正常运行显示的时候,就预示着已经实现完最初设计的功能。本次设计的基
于stm32的二氧化碳浓度检测报警系统,从选题到完成整个系统的开发,经过了几个月的时间,期间不断去查找相关
文献以及询问老师、舍友以及实现的学长学姐,经过不断的努力,最终完成了本次基于stm32的二氧化碳浓度检测报
警系统的设计。经过本次设计让我对单片机技术、传感器技术以及通信技术有了更好的研究。本次设计的基于stm32
的二氧化碳浓度检测报警系统以单片机为核心,使用传感器技术及硬件交互技术,通过传感器将数据传送到单片机
上进行处理,单片机进行数据处理之后,进行对应的操作,从而达到监测功能的目的。通过对系统的整体设计、硬
件设计以及软件程序的设计等等,每一块的设计都让我学习到了很多,硬件设计这部分,了解到了每个模块的作
用、IO口的功能以及其注意事项。软件程序这部分,让我了解到了程序规范的重要性,好的编程风格能让自己的代
码重复使用,本次基于stm32的二氧化碳浓度检测报警系统的研究,充分体会到了程序模块化设计的便利性,最后经
过系统测试,从单个功能再到系统整体功能均得到了很好的实现,并且在数据响应及时性、数据请求性以及数据处
理能力等等,表现得都很好。当然,本次设计也有很多不足之处,比如数据智能处理部分,没能很好的进行数据的
智能化处理,科学技术的飞速发展,更讲究事物的智能化处理,所以未来可以在这方面更好的进行设计。

作者:qq_1039692211

物联沃分享整理
物联沃-IOTWORD物联网 » 单片机实现的二氧化碳浓度检测报警系统实战详解

发表回复