基于 STM32 单片机的智能发酵型奶茶机

数媒竞赛获奖作品信息及简介
作品名称基于 STM32 单片机的智能发酵型奶茶机
参赛院校山东理工大学
指导老师朱峰、李志山
团队成员王冠中、李泽香、迟延娇、张树昕、高睿智
奖项等级三等奖
竞赛年份2022

1.1 系统设计要求 1.1.1 主要功能 本设计是基于 STM32 的智能发酵奶茶机,能够自动制作发酵奶茶并进行灌装销售。系统通过进料单元自动进料,以避免人工干预,实现系统的连续运行。通过搅拌单元实现对罐体的搅拌和清洗功能。通过温控单元进行灭菌、发酵和冷藏,以保证发酵质量和食品安全。通过灌装单元实现对成品发酵奶茶的灌装,方便用户饮用。 1.1.2 主要技术指标 工作电压: 220V 加热功率: 3000W 制冷功率:1000W 温度控制精度:±0.5℃ 温度控制范围:6-90℃ 发酵罐容积:25L 灌装容量:250mL 1.2 系统工作原理和总体框图 1.2.1 系统工作原理 系统开始工作后,先通过搅拌单元对罐体进行清洗。加入发酵所需要的水和固体物料,经过搅拌器在罐内搅拌均匀。温控系统开始工作,对罐体和原料进行升温灭菌,之后将罐内温度调节到发酵所需的温度并加入发酵奶茶所需的菌种。经过 12 小时时间发酵完成后,对发酵奶茶进行冷藏。当完成支付环节,发酵成品通过灌装单元封装到杯子中。 1.2.2 系统总体框图 系统分为进料单元、搅拌单元、温控单元、灌装单元四大部分,通过主控制器协调运行。主控制器与上位机相连,上位机配有触摸屏,实现用户对机器的操作。 1.3 系统设计方案论证 发酵奶茶需要较长时间的发酵。发酵过程需要进行精确的温度控制,为保证受热均匀,发酵罐需要通过夹套水浴换热[2]。根据测试,发酵奶茶需要在 40℃左右温度发酵 10 到 12 小时。使用两个发酵罐交替运行,将时间交错开,实现在一个发酵罐发酵时另一个发酵罐存有发酵奶茶,以保证可以连续出料。发酵罐的清洗是系统的一个难点,各种管路和罐体连接处不易于清洗和灭菌,综合考虑之后,减少发酵经过的环节是解决清洗问题的一个很好的办法。我们将发酵罐的功能复用,使其能够完成恒温发酵,灭菌和冷藏等功能,在便于清洗的同时简化了系统的结构,降低了系统的成本。为更好的展示发酵过程,我们将发酵罐水平放置,并使前面板透明,这样整个生产的过程能够从机器外面一目了然,直观的了解奶茶的生产工艺。根据上面的需求,我们对发酵罐进行了初步的设计。 发酵开始前对发酵罐使用净水自动清洗,废水通过泵和阀门排走。清洗完成之后进水泵开始进水,到达一定液位后搅拌电机转动,同时加料器开始工作,加料完成后继续进水到指定液位,温控单元将温度恒定在灭菌温度进行灭菌,之后循环泵开启,换热器开启,循环水通过温控单元,将温度恒定在发酵温度并加入菌种。经过一段时间发酵完成,温控单元将温度恒定在灭菌温度进行灭菌,灭菌之后进行降温。当温度降低到室温附近时,恒温系统开启制冷,将其冷藏。发酵奶茶成品通过蠕动泵和阀门进入灌装单元。 1.3.1 主控制器方案理论 1.3.1.1 主控制器选择 方案一:使用 STM32 F1 系列单片机 该系列单片机具有比丰富的内设,性能强大,使用灵活,配套工具便于使用,成本低。 方案二:使用 STM32 F4 系列单片机 该系列单片机比 F1 系列单片机增加了浮点运算单元和数字信号处理器,工作主频也由 72MHz 提高到了 168MHz,成本相对增高。 由于主控制器在整个系统中的成本微乎其微,为了保证后续功能的扩展,我们选用了方案二,使用 STM32F405RGT6 这款单片机,并在子系统中同样使用该型号的单片机,以减小重复设计的工作量。 1.3.1.2 主控制器编程方式 方案一:使用寄存器开发 直接操作单片机底层的寄存器实现各种功能,这种方法执行效率相对要高,代码简洁,但开发 STM32 时涉及的寄存器数量繁多,开发难度大。 方案二:使用标准库函数开发 意法半导体公司将一些寄存器操作封装成易于阅读的库函数,在开发时就不需要去对每个寄存器进行操作,只需要调用库函数就能快速的进行开发,大大减少开发成本,并且使用标准库函数易于程序在同类单片机间的移植。 方案三:使用硬件抽象层 HAL 库进行开发 使用 HAL 库是意法半导体公司近年来推荐的开发方式,它对各种底层操作进行了细致的封装,大部分的外设操作可以通过 HAL 库中的函数实现,甚至不需要去了解单片机的底层结构就能快速的进行开发。HAL 库也对中断进行了一定程度的处理,各种优先级的设定和回调函数的调用都非常易于操作。另外 HAL 库可以与图形化的配置工具配合使用,对外设的初始化配置非常直观,极大的方便了开发。 由于 STM32 开发涉及的寄存器数量繁多,并且标准库函数已经停止更新,我们选择方案三进行开发。 1.3.2 进料单元方案论证 1.3.2.1 固态物料进料机构选择 发酵存在固态粉末状态的原料,如何能够将其可靠的加入对发酵至关重要。 方案一:使用气力输送器进行输送 该方案使用压缩空气为介质,通过空气的流动将粉状物料加入到罐体,进料完成后管道可以通过空气吹静,这样在未进料时罐体密封只需要一个球阀直接与两部分连接,结构简单,并且进料时在进料口处存在负压,方便物料吸入,但需要大量的压缩空气,不利于发酵罐和外界相对密封,容易引入空气中的大量杂菌。 方案二:使用螺旋进料器加入 该方案使用螺旋结构输送物料,较容易实现密封和定量加料,在未进料时罐体密封需要一个球阀密封,在进料时需要开启球阀伸入螺旋进料器机构,结构较为复杂。 方案三:将物料封装送入 该方案需要将物料进行造粒加工,成本较高,造粒会对原料产生较大影响。 我们很难实现方案一中对大量空气的过滤除菌。如果将空气一次使用需要很大流量的滤膜或者储气罐,而循环使用又会将罐体内部的水汽带入料箱,解决这个问题又需要进行过滤,因此不采用方案一;经过初步试验,方案二的结构可行,并且容易实现密封,功能更为普遍,因此选用方案二:使用螺旋进料器加入物料。 1.3.2.2 固体进料量控制方案 方案一:通过称重实现 使用应变片传感器测量料箱重量变化,在进到足够料之前,螺旋进料器机构一直运转。通过压力传感器方案测量准确,但称重结构复杂,需要在料箱和运动平台之间加入应变片传感器。 方案二:通过执行机构给定量实现 螺旋进料器机构可以定量进料,通过直流电机驱动螺旋进料器,对其旋转圈数进行控制即可实现定量。 考虑到实现的复杂程度,选用第二种方案。 1.3.2.3 液态物料进料机构选择 发酵过程需要进入液态物料,如:水、酸碱调节剂、消泡剂等,这些物料需要定量加入。 方案一:使用离心泵 该方案使用离心泵泵入物料,优点是流量大,运行平稳、噪音低、寿命长、但是吸力小。 方案二:使用隔膜泵 该方案使用隔膜泵泵入物料,优点是压力大,缺点是噪音大,泵出的液体有脉动成分。并且隔膜泵不太容易清洗。 方案二:使用蠕动泵 蠕动泵主要优点是产品的量可以精确控制,可以通过改变转向双向泵送液体,可以泵送粘稠液体,但管子容易发生磨损,成本较高。 综合上面几种泵的优缺点,我们使用离心泵输送水,使用蠕动泵输送其他液体物料。同时蠕动泵可以快速的换管子,来解决磨损和卫生问题。 1.3.2.4 液体进料量控制方案 方案一:通过液位测量实现 此方案可以实时获得发酵罐内的液体总量,对大量进料的液体适用,对微量液体灵敏度低。 方案二:通过蠕动泵定量实现 此方案可以精确加入物料,是大部分发酵仪器采用的方案,但蠕动泵成本较高。 方案三:通过延时实现 对进料泵进行时间控制,成本低,精度不高。 我们选用液位测量实现对进水的控制,通过蠕动泵定量加入其他液体物料。通过压力传感器来检测液位。 1.3.3 搅拌单元方案论证 搅拌系统具有使各种物料均匀分散,加速液体与夹套的热交换,防止物料出现沉淀等作用。发酵罐水平放置,搅拌扇叶通过密封轴承与电机相连。 搅拌扇叶有桨式、船用螺旋桨式等。在搅拌的过程中,流型、液流速度与湍流强度对搅拌的效果影响很大。螺旋桨式叶轮是一种转速高,轴向流动强的搅拌器件,对于低粘度的液体有很好的大尺度的混合效果,并且通过调节转向可以冲洗前后壁,因此选用螺旋桨式叶轮。 螺旋桨式搅拌器工作时,液体在叶轮作用下作轴向运动和切向运动。液体离开螺旋桨后将继续前进作螺旋运动。液体轴向分速度使液体向罐后壁流动,当流至后壁时再沿罐壁折回螺旋桨。切向分速度使得液体在容器内作近似的圆周运动,将罐体下部的物料扬起,使得混合更均匀。 驱动搅拌桨的电机需要长期运行,我们选用了永磁式同步电机,通过专用的电子调速器进行调速,以实现在小体积的前提下实现较大功率和较好的可靠性。 1.3.4 温控单元方案论证 1.3.4.1 温控执行器选择 从系统对加热和制冷的需求看有下面几种方案:方案一:使用电阻式加热器进行升温 通过电阻的热效应进行加热,市面上有管式、盘式、柔性等各种各样类型的电阻原理的加热器,具有成本低,工作可靠,安装方便、易于控制等优点。 方案二:使用压缩机进行升温降温 压缩机制冷制热是通过介质的相变实现的,通过压缩机制冷技术成熟、工作可靠,并且可以实现同一系统实现升温降温。 方案三:使用风冷进行降温该方法适用于较高温度下的降温,在接近室温时效果较差。 方案四:使用半导体制冷片实现升温降温 热电半导体器件是一种根据帕尔贴效应制成的器件,它可以对热流进行输送。该方案易于控制,与通常压缩机制冷相比,热电半导体器件工作无噪音,即可加热又可制冷,其转换时间短,体积小,热惯性小,有利于快速调节,易于实现对微生物发酵温度的精确控制。 我们试验了上面四种方案,较为重要的在于如何降温,使用压缩机方案需要设计制冷剂管线和接口,安装调试较为繁琐,市场上没有适用于我们系统的能够切换制冷制热模式的产品;使用半导体制冷片方案易于切换制冷制热,安装方便,不过效率比压缩机低;使用水冷降温的方式在温差大时很有优势,但不能实现冷藏。最终我们使用水浴夹套的方式进行热量交换,通过电阻式加热器对发酵罐升温,使用半导体制冷片进行降温,并且在降温开始时辅以风冷降温。 1.3.4.2 温度传感器选择 发酵不需要太高的温度,测量范围覆盖0-100℃,精度优于0.5℃的传感器可满足要求。温度传感器选型如下: 方案一:使用电阻式温度传感器 使用 PT100 型号的热电阻进行温度测量。可以通过温度变送器将传感器转换为标准的电流信号。铂电阻温度传感器稳定性好,测温精度高。 方案二:使用热电偶温度传感器热电偶传感器测温范围较广,可以通过变送器转换为标准信号。 方案三:使用数字式温度传感器数字式温度传感器成本低,使用方便,其单总线通信便于多传感器测量。 方案四:使用红外温度传感器 通过黑体辐射确定温度,无需直接接触被测物。相对上面方案设计复杂,成本高。 我们试验了上面前三种方案,我们选用高精度的铂电阻温度传感器进行温度测量,配合使用数字式温度传感器DS18B20。 1.3.4.3 温度控制器选择 方案一:使用成品温度控制器 市面上大部分的温度控制器是为大型设备设计的,功能强大但价格较高,体积较大;小型的温控器功能简单,扩展性差,不能实现复杂的控制要求。 方案二:使用微控制器实现温控 对温度传感器输出信号通过标准电阻将电流信号转换为电压信号,通过 ADC 进行模数转换。与数字式温度传感器可以直接进行通信,获得温度值。 方案三:使用模拟电路实现温控 通过运算放大器构成反馈环路,此方案实现简单,但不能接入数字温度传感器,功能单一。 我们选用方案二,在微控制器中编写程序实现温控。 1.3.4.4 温度控制算法选择 发酵对温度控制精度要求较高,开环不能满足精度要求,控制算法如何能够实现较好的控制精度非常重要。因为使用了夹套换热的方案,循环水的存在使得系统成为一个明显的分布式大时滞环节。 方案一:使用滞回控制 设定两个阈值,当输入增大到一个阈值输出正信号,当输入减小到另一个阈值输出负信号,系统输出在两种状态间发生跳变。这种方式控制精度较低,但对执行器的要求低,易于实现。 方案二:使用 PI 控制 对误差信号进行反馈,通过积分项消除稳态误差。此方案在工程中获得了广泛的应用。 方案三:史密斯预估器的 PID 控制 加入史密斯预估器,可以对滞后环节进行补偿,提高系统的稳定性。 因为系统对发酵的精度要求高,对快速性要求较低,使用史密斯预估器需要较为精确的系统参数,而系统在不同工作状态参数会发生一些变化。使用 PI 控制稳定性高,能够满足要求,并且设计和实现简单,故采用方案二。 1.3.5 灌装单元方案论证 灌装单元主要包含下面的部分:落杯器、落盖器、压盖器、滑台。工作时,滑台运动到落杯器的正下方,此时落杯器运转,落下一个纸杯。之后滑台运动到灌装口,进行灌装。灌装完成后,滑台运动到落盖器正下方,落盖器动作,落下一个盖子。随后滑台运动到压盖器下方,压盖器动作,从上方压紧盖子。最后滑台运动到出杯口,提示灯亮起,可以取杯。 落杯器使用电机转动齿轮转动,从而使各个螺杆机构同步转动。六个螺杆机构支撑纸杯,最下面的纸杯受到向下的推力,当转到螺杆槽的缺口上时,下面的纸杯掉落,上面的纸杯被旋入的螺杆支撑。电机出轴所带齿轮每转一周触发碰撞开关一次,电机停止,确保齿轮到达指定位置。落盖器工作原理相同。 1.3.5.1 电机选择 直流电机易于调速,价格低。步进电机可以实现准确定位。两者都能进行转速控制,但步进电机驱动成本高,价格较高。 我们选用 JGB37-520 直流减速电机带动落杯器、落盖器和压盖器。选用 42 系列步进电机带动滑台运动。步进电机电机步距角为 1.8 度,使用A4988 方案。 1.3.5.2 传感器选择 对于杯子的检测,使用激光光电对管,可以长距离检测杯子的有无,当滑台上面存在杯子的时候,激光被阻断,光电对管检测不到信号,从而判断杯子的状态。 1.3.6 内部线路方案论证 各子系统需要电源供应和信息交换,为方便集成和维护,需要对电源部分和通信部分进行设计。 对于输入的交流电,我们使用接线端子进行连接。选用工业常用的 24V 电源作为整个系统的主低压电源。对大功率设备使用 XT60 接头进行快速连接,小功率设备使用 XH2.45 系列的连接件进行连接。 我们使用串口对各个单元进行通信。各部分通信使用 XH2.45 系列的接插件进行连接,线材使用 24AWG 硅胶软线。 1.4 本章小结 本章介绍了设计要求和系统的工作原理,并给出总体框图。结合设计要求对系统的方案进行了论证,为后面的软硬件设计提供设计要求。 2.系统硬件电路设计 2.1 主控制器 2.1.1 主控制器最小系统设计 该部分选用 STM32F405RGT6 芯片作为主控制器。该芯片使用高性能 ARM 构架的 Cortex-M4 内核,最高频率达 168MHz。Cortex-M4 内核内置 FPU、DSP 和 MPU。Flash 容量达到 1 Mbyte,SRAM 容量 192+4 Kbytes,具有三个 12 位高速 ADC,2 个 12 位高速 DAC,16 个通道的 DMA,17 个定时器,4 个串口,支持高速 USB2.0 接口。在调试的时候可以使用 Serial Wire 模式,支持 JTAG 接口。 最小系统包括晶振电路,复位电路。。 图3.2 STM32F405RGT6最小系统 系统使用晶体振荡器作为外部时钟输入,以提高脉冲的精度。将BOOT0、BOOT1直接接地,以选择从用户Flash中启动。为了便于调试,引出占用IO 口较少的 SWD 调试接口。为提高模拟采集的精度,将模拟地与数字地通过0Ω电阻分隔开。 2.1.2 通信接口电路 系统通过串口进行各单元的通信,与计算机通过 USB 线进行连接。使用 CH340 方案。 2.1.3 电源电路 系统通过开关电源 NDR-480-24 将输入的交流电转换为 24V 交流电。电路板输入 24V 直流电。24V 电压通过 LM2596 构成的 BUCK 降压电路降压至 5V。在输入端加入自恢复保险丝保证发生短路时电路的安全。通过AMS1117-3.3 产生 3.3V 电压。 2.2 进料单元 进料单元与主控制器所使用单片机一致,还需设计直流电机驱动、步进电机驱动和液位传感器电路。 2.2.1 进料电机驱动电路 进料电机采用 JGB37-520 直流减速电机。其额定电压 24V,额定转速 107RPM。使用低开启电压,低导通内阻的场效应管 IRLR7843 作为开关管。该场效应管耐压 30V,内阻只有 3.3mΩ,在 2.3V 时就能充分开启,这样就能使用 STM32 的 IO 口直接开启。该结构能够实现电机的单向运动并且能够通过调节输入信号的占空比调节转速。使用 0.1Ω采样电阻采集电流信号,进入单片机 ADC 输入口,通过检测电流大小判断是否发生堵转故障。在电机轴上装有碰撞块,通过检测微动开关通断实现圈数测量。 直流电机在开关管关断时,因为电枢电感的存在,电动机会产生较高的电动势,通过续流二极管保证开关管的安全,防止击穿。电流采样置于下端,方便 ADC 直接采集。进料和进菌用螺旋进料器机构电机共使用两路驱动电路。 2.2.3 进料坐标系统电路 使用三个 57 步进电机实现进料机构与罐体的结合,步进电机使用成品的 TB67S109 为核心的驱动模块。步进电机每次归零时触发微动开关并记录零点。为方便调试,步进电机接口设计指示电路,通过观察对应 LED 即可知道信号值。 电路板集成按键以方便调试。按键通过单片机内部上拉至高电平,当按键按下时,该引脚电平被拉低,检测到按键按下。OLED 显示模块通过 I2C接口与单片机进行通信。 步进电机信号输出采用共阳极方式,将各个输入口的正极接入 3.3V 电源,STM32 单片机的 IO 口默认高电平状态,当需要动作时,相应的 IO 口低电平。驱动器接入 24V 电源。 2.2.4 液位测量电路 液位测量使用扩散硅压力传感器测量液体在罐体底部的产生的压强,传感器输出信号经变送器输出标准的4~20mA电流信号,在控制器端经过I/V 变换电路转换为电压信号,由控制器AD接口读取。 选用量程10KPa的扩散硅压力传感器芯体,经过变送器满量程输出20mA 信号。 由液体压强计算公式P = ρgh,在深度一米的情况下 P = ρgh = 1000 × 9.8 × 1 = 9.8KPa (3 − 1) 量程为 10KPa 的压力传感器可以测量罐内水位。 标准的 4~20mA 电流信号通过电阻转换为电压信号,进入单片机 ADC 进行采集。 2.3 搅拌单元 我们使用了两组直径 5cm 的螺旋桨式叶轮,使用 130KV 的外转子永磁同步电机作为搅拌的动力来源。 永磁同步电机的驱动较为复杂,在经过初期实验时,我们发现自己设计的电机调速单元低速性能较差,为简化设计,我们使用磁场定向控制方式的电机调速器驱动电机,我们只需对调速器输入 PWM 驱动信号,即可实现对电机的调速,并且由于使用磁场定向方式控制,电机的低速性能较好。 2.4 温控单元 温控单元由电阻式加热器、半导体制冷片和换热器构成,电阻式加热器置于水箱中,半导体制冷片与水冷排相连,换热装置通过球阀实现接入不同的工作回路,可以实现灭菌、发酵、保存所需的恒温功能。 2.4.1 加热器驱动电路 系统升温使用电阻式加热器,通过可控硅调压器 CETR-L4840A 进行驱动。可控硅模块最大输出电流 40A,输入控制信号为 4~20mA 电流信号。单片机输出 PWM 信号通过阻容滤波器和电压电流转换电路产生所需的控制信号,从而实现连续调节。 该电压电流转换器以运算放大器 LM358 为核心,同相输入端接入阻容滤波器,能够将单片机产生的 PWM 信号转变为模拟电压值,运算放大器输出端的采样电阻与可控硅调压模块串联,取采样电阻上的电压值,就能够反映出流过模块的电流值,该电压接入运算放大器的反相输入端。由于运算放大器输入阻抗大,同相端电压即为 PWM 信号的平均电压,由于放大器工作在负反馈状态,反相端电压与同相端一致,即可得到占空比与电流的关系:放大器使用单电源供电,其输入电压 12V,便于实现。 2.2.4 半导体制冷片驱动电路 在降温保存环节,因为半导体制冷片制冷功率有限,我们分成两个阶段进行降温。在高温阶段罐体的夹套直接与换热器相连,进行风冷,低温阶段通过半导体制冷片进行制冷,这样在可以快速降低物料的温度,又能达到储存所需的低温。 发酵完成后的冷藏环节,我们使用四片 TEC1-13936 型号的半导体制冷片作为执行器,其参数如:。 型号          最大电流     最大电压  最大产冷量   最大温差      外形尺寸 TEC1-139       36A         17