本帖最后由 czd886 于 2023-5-10 15:55 编辑

    在疫情复杂的背景下,疫情的防控是日常生活中必不可少的一道程序,而疫情防控管理系统可以帮助政企组织进行科学有效管理,提高工作效率,做好疫情管理工作,基于这个背景下设计了疫情防控健康检测的设计,采用STM32作为主要控制芯片,通过OpenMV摄像头可以检测人脸是否佩戴好口罩,采用非接触测温传感器进行无线测温测,采用LED灯和蜂鸣器等安全告警模块对没有佩戴口罩和温度异常的人员进行声光报警,此设计可以加强疫情防控功能,可以最大程度地方便疫情防控工作人员的工作、提高工作效率、加强安全防护。
1、系统硬件设计
1.1 硬件框图
    系统以STM32F103c8t6 作为主控制器,利用UART 接口与OpenMv4Plus视觉开发板进行通信,摄像头将检测到的信息通过串口反馈至单片机并通过TFT显示屏实时显示,最后单片机判断输出给LED和蜂鸣器。硬件框图如下图所示。
image.png
1.2 主控芯片
    STM32F103xx拥有一个完备的体系,它们彼此支持,无论从硬件还是软件方面都可以实现无缝的互通。根据参考资料,STM32F103x4、STM32F103x6属于较低的尺寸,而STM32F103x8、STM32F103xB则属于较高的尺寸,而STM32F103xC、STM32F103xD以及STM32F103xE则属于较高的尺寸。STM32F103x8/B)的扩展可以满足不同尺寸的需求,其相关的参考资料包括:STM32F103x4/6参考资料以及STM32F103xC/D/E参考资料,以满足不同尺寸的用户需求。这些不同的闪存存储器类型会影响到电池的性能。相比之下,较小的闪存存储器、RAM空间较少,定时器也较少。相比之下,较大的闪存存储器、RAM空间较充足,并且可以配备SDIO、FSMC、I2S或DAC等常见的电池。此外,这些电池还能够满足不同类型电池的需求。STM32F103x4、STM32F103x6、STM32F103xC、STM32F103xD以及STM32F103xE均具有较高的容量,能够轻松取代STM32F103x8/B,从而给用户带来极具灵活性的选择,以满足其多样化的需求。其最小系统图如下所示。
image.png
1.3 图像识别模块
    OpenMV是由美国克里斯团队基于MicroPython发起的开源机器视觉项目,目的是创建低成本,可扩展,使用python驱动的机器视觉模块[13]。OpenMV搭载了MicroPython解释器,使其可以在嵌入式端进行python开发,关于MicroPython可以参照我之前的博客专栏:MicroPython. OpenMV基于32位,ARM Cortex-M7内核的OpenMV-H7, 并结合各种摄像头,可以进行多种机器视觉应用的实现,比如人脸检测,物体分类等。 Openmv摄像头图像识别模块电路如下图所示。
image.png
     OpenMV 是一种高效的口罩识别系统,它拥有 Python 编程接口,支持多种处理器,并且拥有多个 GPIO 引脚,这些引脚分别为 ADC、DAC、多个 PWM 和串口模块,为使用者带来更多的便利。这个系统具有多种用途,例如搜索颜色区域、识别面部特征、追踪视线、识别周围环境、追踪目标物体。此外,它配备了 MicroPython 板载解析器,可将 Python 编程变为 C 编程,从而提高机器视觉算法的性能,并完善其应用。 为了更准确地识别人脸,我们使用了 LBP 特征提取技术。这种技术通过收集各种表情和状态的图像,并从中挑选出人脸的关键信息。我们会对这些信息进行统一处理,并将它们的平均值作为标准。这些标准会帮助我们更准确地判断哪些信息更加接近真实的人。使用 Open MV IDE 收集有效的数据,包括有效的口罩数量以及未佩戴的数量,并将其用于训练出一个准确的模型,以便能够准确地识别出用户的面部,如果 MASK= 1 ,就说明用户已经遵守了相应的防护措施,并且佩戴了有效的口罩。此外,应该确保采用的数据是在一个平坦的环境中收集的,并且将数据的尺寸设定为 92 mm×112 mm,接着,使用find_lbp 函数,从当前的人脸上提取出 LBP 的关键信息,以便更好地识别患者的面部。 roi 被用来确定被观察的范围。
1.4 无线测温模块
    MLX90614是一款无接触式的红外线温度感应芯片.它在同一TO-39封装内整合了红外热电堆感应器与一款定制的信号调节芯片,MLX90614在信号调节芯片中使用了先进的低噪音放大器,一枚17-bitADC以及功能强大的DSP元件,从而实现高精度温度测量,MLX90614应用了SMBus和PWM两种数字输出方式.出厂设定为SMBus,在无特殊设定情况下10-bit PWM输出可测量-20..120 C温度范围,解析度为0.14C。MLX90614是一款由Melexis研发并生产的测温器,它包括:红外热电堆感应器MLX81101、专为适用于这款感应器输出而设计的信号处理芯片MLX90302。
这款产品应用了工业标准的TO-39封装,MLX90302在信号调节芯片中使用了先进的低噪音放大器,一枚17-bit ADC 以及功能强大的DSP元件,从而实现高精确度温度测量,计算并储存于RAM中的环境温度以及物体温度可实现0.01℃的解析度的数据,并目它可通过双线标准SMBus输出获得(0.02℃ 解析度)或者通过10-bitPWM输出获得。
    MLX90614在-40…125℃环境温度及-70…382.2℃物体温度范围内进行出厂校准。芯片计算出的温度是感应器视角范围内所有物体的平均温度,MLX90614在室温范围内提供的标准精度为+0.5℃,并目为了适应医疗应用的要求,MLX90614还可提供在人体温度范围内的高精确度+0.1℃。(注意:上述精确度的实现是假设感应器处在均衡的温度环境中.所谓均衡的温度环境,是指在感应器封装表面不存在温度梯度差[7]。感应器的精确度会受这种温度差影响。造成这种温度差的原因有:发热电子器件处在感应器背部,加热器或散热器离感应器太近等等。)
    该系统能够同时支持100个器件,并能够通过EEPROM中的数据来实现这些器件的联动。此外,通过将PWM 引脚设定成热动继电器的模式,我们还能够制作出一个更加节能的恒温器和温度(冻结/沸腾)警报器,这样就不必再使用MCU了。MLX90614的输入与传统的继电器驱动有所区别,它的输入采用了逻辑模式,能够根据需要调整阀门的大小、迟滞的大小,同时也能够被用于SMBus系统,用于检测总线上的从动器件,以及它们的准确状态。
    MLX90614 红外传感器电路被广泛应用于各种领域,它不仅具有高灵敏性,还具有高精度的特性,它的功能主要在于捕捉和传输物体的红外辐射,从而精确定位物体的表面温度。它的特性使得它成为一种理想的热传导器,它的精度和灵敏性都得到了大大提高。MLX90614 红外传感器是一种先进的温度传感器,它能够检测远距离物体的温度变化,具有高灵敏度、低噪声、高稳定性、高稳定性、高准确度等优点。它的温度传感器能够检测温度从-70 ℃ ~ 125 ℃,并且能够提供准确的温度变化,其温度分辨率高达 0.01℃。此外,它还具有脉冲调制电路,能够实现高效的温度传感,并且能够实现高频率的电流传感,具有高灵敏度、高稳定性、高准确性等优点。通过LCD视窗[3],我们可以清晰地看到传感器模块的电路结构,如下图。
image.png
1.5 安全告警模块
   安全告警模块主要是对未佩戴口罩和温度异常的人员进行声光报警,因此安全告警的响应速度和稳定性十分重要。声光告警电路如下图所示。
image.png
2、系统软件设计
2.1 STM32程序流程图
(1)非接触温度测量功能,测试距离 1cm~4cm,测量误差绝对值小于等于2℃。
(2)温度测量范围:28℃~48℃,并具有温度超标报警功能。报警温度阈值在30℃~46℃范围内可设置,报警方式为声光报警。
(3)采用openmv摄像头模块检测否符合防疫要求(如佩戴口罩)判别功能。
具体流程图如图:
image.png
   2.2 口罩识别检测设计   
采用OpenMv来进行图像识别处理,并通过其串口输出信息与我们的STM32单片机进行通信[6],上传了大约70张没带口罩和70张戴口罩的图片进行口罩识别训练集模型,如下图edgeimpulse训练集图所示。这个模型是使用edgeimpulse训练的 。可以识别人脸口罩特征,通过脚本编写可控制输出人脸是否戴口罩匹配度信息,正好满足我们口罩识别的要求。
image.png


    OpenMV通过使用LBP 特征算法,可以把一幅图片划分为若干小块,这些小块可以被LBP 算子精确地捕捉,从而构建出一张完整的 LBP 特征表示,再通过综合这些小块的特征,可以更好地表达出整幅图片的完整性。OpenMV 机器视觉模块一旦开始运作,就会自动抓拍到人类的面部,并使用 LBP 算法对其中的特征进行深度学习,从而实现对人类的口罩的准确识别。此外,OpenMV 还会通过拍摄到的人脸照片,以及其他相关的数据,对其中的安全数据判断,如超出,发出声音和LED灯的警告。根据下图所示,详细的步骤如下:
image.png

2.3 无接触温度测温检测设计
   本次设计采用 MLX90614 红外温度传感器,通过不断改正参数来减小误差值,最终将误差范围控制在 ±0.2 ℃。在设计上也加入了设置阈值的功能,可加可减,方便灵活的可以在不同环境下运用。工作流程图如下图所示。
image.png

2.4 安全告警检测设计
    安全告警设计采用蜂鸣器和LED灯进行告警,当摄像头检测到未带口罩的人员会声光进行告警三次,直至佩戴完毕,当无线测温检测到温度异常的人员会进行声光告警四次,直至温度正常。具体流程图见下图所示。

image.png



2.5 口罩识别程序
   利用edgeimpulse训练集的模型,训练出戴口罩的模型和没带口罩的两种模型,识别到戴口罩会像单片机发送“yes_mask end”这个信号,没识别到戴口罩会像向单片机发送“no_mask end”这个信号,以便单片机进行判断处理。程序如下:

image.png

3、PCB板设计
image.png image.png