《移动式面粉发酵监测容器的设计》

移动式面粉发酵监测容器的设计

摘要:本文介绍了移动式面粉发酵监测容器的设计,包括系统总体架构设计(硬件系统模块如传感器阵列、核心控制单元、机械结构设计,软件系统架构如数据传输层、可视化交互层)、设计过程(外观设计图、硬件清单、硬件连接等)、实验测试及创新点与拓展方向(跨学科融合创新、低成本可扩展设计),该系统解决了传统实验的痛点,提升了学生科学探究素养与数据分析能力,未来将开发 AI 预测模型。

关键词:移动式面粉发酵监测容器、物联网技术、传感器技术、中学生物教学、跨学科融合

设计背景

面粉发酵在中学生物教学中是探究微生物代谢(如酵母菌呼吸作用)的核心实验。然而,传统实验存在着三大明显痛点:其一,数据采集较为粗放,仅仅依赖肉眼观察体积膨胀以及嗅觉判断酒精生成,缺乏对温度、湿度以及气体浓度等重要参数的量化监测,如[7][10]所提及;其二,条件控制难度较大,自然环境中的温湿度波动较为剧烈,难以实现对发酵条件的精准调控,这在[4][8]中有所体现;其三,实验过程具有不可逆性,手动记录数据容易遗漏关键节点,无法回溯发酵的动态过程,[9]对此进行了强调。基于《义务教育生物学课程标准》对科学探究能力的要求,本研究结合物联网技术与传感器技术,开发出了一款具备可移动性、多参数联测功能以及支持云端数据分析的教学设备。

一、系统总体架构设计

(一)硬件系统模块

  1. 传感器阵列

环境参数层:采用 SHT31 温湿度传感器,其湿度测量范围为 0 – 100%RH,温度测量范围是 -40 – 125℃,工作电压范围较宽,为 2.15V 至 5.5V,具备 IP67 的 PTFE 膜,但在一般情况下不能防止挥发性化学物质的污染。使用前需切换开关 I2C 地址位置,程序默认初始化地址为 0x45。

代谢产物层:ENS160 空气质量传感器专为室内空气质量检测而设计,能够直接输出多种 IAQ(TVOC、eCO2、AQI)数据,预热时间小于三分钟;MQ – 3 半导体酒精传感器需要 30 秒预热校准,[4]中有所提及;DFRobot V2 可插拔 pH 电极配备了自动清洗机构,可有效防止面团粘附,[9]对此进行了说明。

  1. 核心控制单元

行空板主控板 CPU 为国产 4 核 1.2GHz,512MB DDR3 内存和 16GB eMMC 硬盘。

内置 Debian 操作系统,支持 2.4G Wi-Fi 。

板载多种元件,如实体按键(包括 Home 按键、A/B 按键)、2.8 寸 240*320 TFT 彩屏、麦克风传感器、光线传感器、加速度传感器以及蜂鸣器。

具备丰富的接口,包括 USB Type – C *1、USB TYPE – A *1、microSD 卡接口 *1、3Pin I/O *4(其中支持 3 路 PWM 和 2 路 ADC)、4Pin I2C *2。

供电方式为 Type – C 5V 供电,工作电压为 3.3V,最大工作电流为 2000mA。

  1. 结构设计

采用透明亚克力观察窗,10*10*15cm,厚度为 5mm;3D打印检测盒盖;

(二)软件系统架构

  1. 数据传输层

采用 MQTT 协议上传 JSON 格式数据包至 SIOT 开源虚拟服务器。

具备本地存储模式,通过映射端口可实现远程控制。

  1. 可视化交互层

提供动态折线图,支持多参数叠加对比分析,例如 CO₂深度、酒精深度与 pH 值的相关性,[10]对此进行了说明。

配备本地 TFT 触控屏,可实时显示关键参数,通过二维码手机扫码登录即可读取数据,并且能够设置采样节点,每 5 秒进行一次采样,[7]对此有所提及。

二、设计过程

6、外观设计图

7、硬件清单:

序号名称型号接口数量单价功能说明单位
1行空板1399
2SCI 采集模块1269
3数字温湿度传感器SHT31IIC169Temp_Air–环境温度
Humi_Air–环境湿度%RH
4空气质量传感器ENS160IIC1129TVOC—总挥发性有机化合物ppb
ECO2—-CO2浓度ppm
AQI—-空气质量指数等级
5PH计V2249PH_Water–PH值
6MQ3ALcohol—模拟酒精传感器
7摄像头FIT089285百万级720PUSB广角摄像头(140°)

8、硬件连接

 

9、液晶屏界面显示

SIOT V1版本可直接扫描二维码,登录10.1.2.3:8080,查看数据及拆线图;

SIOT V2版本可在电脑端,打开可视化程序,查看数据及拆线图;

10、图形化编程设计解析

1)摄像头初始化

  • 界面设计

  • 采集模块初始化

  • pinpong库初始化

  • MQTT库初始化

 

  • 线程启动

  • MQTT数据发送

11、源代码(Python)

#  -*- coding: UTF-8 -*-

 

# MindPlus

# Python

import cv2

import time

import siot

import datetime

from unihiker import GUI

from pinpong.board import Board

from pinpong.board import Board,Pin

from pinpong.extension.unihiker import *

import base64

from io import BytesIO

from PIL import Image

import sys

sys.path.append(“/root/mindplus/.lib/thirdExtension/liliang-gravitysci-thirdex”)

from dfrobot_rp2040_sci import *

 

# 自定义函数

def MQTT():

siot.getsubscribe(topic=”siot/PH”)

siot.getsubscribe(topic=”siot/ALcohol”)

siot.getsubscribe(topic=”siot/CO2″)

siot.getsubscribe(topic=”siot/Temp”)

siot.getsubscribe(topic=”siot/Humi”)

siot.getsubscribe(topic=”siot/CO2ALC”)

siot.getsubscribe(topic=”siot/TempHUMI”)

siot.getsubscribe(topic=”siot/摄像头”)

def mqtt_msg():

SuanJianDu = SCI1.get_value1(SCI1.ePort1,”PH_Water”)

JiuJing = p_p22_analog.read_analog()

co2 = SCI1.get_value1(SCI1.ePort2,”ECO2″)

WenDu = SCI1.get_value1(SCI1.ePort3,”Temp_Air”)

ShiDu = SCI1.get_value1(SCI1.ePort3,”Humi_Air”)

PH.config(text=(str(“P H:   “) + str(SuanJianDu)))

ALcohol.config(text=(str(“酒精:”) + str(JiuJing)))

CO2.config(text=(str(“CO2:  “) + str((str(co2) + str(”  ppm”)))))

Temp.config(text=(str(“温度:”) + str((str(WenDu) + str(”  ℃”)))))

Humi.config(text=(str(“湿度:”) + str((str(ShiDu) + str(”  %RH”)))))

siot.publish_save(topic=”siot/PH”, data=SuanJianDu)

siot.publish_save(topic=”siot/Temp”, data=WenDu)

siot.publish_save(topic=”siot/Humi”, data=ShiDu)

siot.publish_save(topic=”siot/CO2″, data=co2)

siot.publish_save(topic=”siot/ALcohol”, data=JiuJing)

siot.publish_save(topic=”siot/CO2ALC”, data=(str(co2) + str((str(“,”) + str(JiuJing)))))

siot.publish_save(topic=”siot/TempHUMI”, data=(str(WenDu) + str((str(“,”) + str(ShiDu)))))

 

# 事件回调函数

def u_thread1_function():

while True:

RiQi = (str(datetime.datetime.now().year) + str((str(“-“) + str((str(datetime.datetime.now().month) + str((str(“-“) + str(datetime.datetime.now().day))))))))

ShiJian = time.strftime(“%H:%M:%S”)

Date.config(text=RiQi)

Time.config(text=ShiJian)

time.sleep(1)

 

u_gui=GUI()

Board().begin()

siot.init(client_id=”7601814701423288″,server=”10.1.2.3″,port=1883,user=”siot”,password=”dfrobot”)

siot.connect()

siot.loop()

p_p22_analog=Pin(Pin.P22, Pin.ANALOG)

 

def frame2base64(frame):

frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)

img = Image.fromarray(frame) #将每一帧转为Image

output_buffer = BytesIO() #创建一个BytesIO

img.save(output_buffer, format=’JPEG’) #写入output_buffer

byte_data = output_buffer.getvalue() #在内存中读取

base64_data = base64.b64encode(byte_data) #转为BASE64

return base64_data #转码成功 返回base64编码

 

def base642base64(frame):

data=str(‘data:image/png;base64,’)

base64data = str(frame2base64(frame))

framedata = base64data[2:(len(base64data)-1)]

base642base64_data = data + str(framedata)

return base642base64_data

vd = cv2.VideoCapture()

vd.open(-1)

while not (vd.isOpened()):

print(“摄像头初始化中……”)

print(“摄像头初始化完成”)

cc=u_gui.draw_text(text=”面粉发酵监测”,x=45,y=5,font_size=18, color=”#000000″)

Date=u_gui.draw_text(text=”       “,x=25,y=35,font_size=14, color=”#000000″)

Time=u_gui.draw_text(text=”        “,x=130,y=35,font_size=14, color=”#000000″)

PH=u_gui.draw_text(text=”PH:”,x=20,y=65,font_size=16, color=”#0000FF”)

ALcohol=u_gui.draw_text(text=”酒精:”,x=20,y=90,font_size=16, color=”#0000FF”)

CO2=u_gui.draw_text(text=”CO2:”,x=20,y=115,font_size=16, color=”#0000FF”)

Temp=u_gui.draw_text(text=”温度:”,x=20,y=140,font_size=16, color=”#000000″)

Humi=u_gui.draw_text(text=”温度:”,x=20,y=165,font_size=16, color=”#000000″)

login=u_gui.draw_qr_code(text=”http://10.1.2.3:8080″,x=80,y=190,w=80)

soumin=u_gui.draw_text(text=”观察折线图请登录SIOT”,x=25,y=265,font_size=13, color=”#0000FF”)

IP=u_gui.draw_text(text=”WIFI:PB915797  PSD:38960592″,x=15,y=285,font_size=10, color=”#0000FF”)

SCI1 = DFRobot_RP2040_SCI_IIC(addr=0x21)

while SCI1.begin() != 0:

print(“Initialization Sensor Universal Adapter Board failed.”)

time.sleep(1)

print(“Initialization Sensor Universal Adapter Board done.”)

MQTT()

print(“MQTT初始化完成”)

thread1=u_gui.start_thread(u_thread1_function)

 

while True:

if vd.grab():

ret, grab = vd.read()

siot.publish(topic=”siot/摄像头”, data=base642base64(grab))

else:

print(“没有下一帧”)

mqtt_msg()

time.sleep(1)

12、实验测试

1)实验前数据

时间:2025年2月12日  09:49

PH:14.47(无效) 酒精:250    CO2:873ppm   温度:17.06摄氏度  湿度:72.47%RH

2)实验监控数据

实验:160克面粉加100克温水、3克酵母、5克糖,根据实际情况等比例调整。

  • 实验10分钟数据

  • 实验20分钟数据

  • 实验60分钟数据

6)3小时的曲线图

类别 时间09:4909:5910:5011:2311.5112:3312:5913:00
ALC250295391424619595601593
CO2(ppm)8731337181519442095228723222333
TEMP(°C)17.0619.0720.7720.9520.9421.0120.9420.92
HUMI(%rh)72.4786.3081.9581.1483.0386.6288.4988.48
PH14.4714.3114.2914.4414.3114.3814.4114.48

三、创新点与拓展方向

13、跨学科融合创新

  • 整合了生物学(微生物代谢)、物理学(传感器原理)、信息技术(物联网协议)三大学科知识点,[11]对此进行了阐述。

14、低成本可扩展设计

  • 提供 3D 打印模型文件(采用 PLA 材料),支持学校自主加工容器外壳,[8]对此进行了说明。
  • 预留了 I²C 接口,可扩展称重模块,用于监测面团质量损失率,[5]对此进行了介绍。

结论

本研究成功构建了一套符合中学生认知水平的发酵监测系统,有效地解决了传统实验中数据采集碎片化以及过程不可视化的问题。通过引入物联网技术,将抽象的生物化学反应过程转化为具象的数据流,显著提升了学生的科学探究素养与数据分析能力。未来,将进一步开发 AI 预测模型,实现发酵终点的自动判断,[9]对此进行了展望。

参考文献(根据GB/T 7714-2015标准示例):

  1. 中华人民共和国教育部. 义务教育生物学课程标准[S]. 北京: 北京师范大学出版社, 2022:45-48.
  2. 李志刚, 王雪. 基于物联网的生物学实验教学系统设计[J]. 中国教育技术装备, 2023(15):112-115. DOI:10.3969/j.issn.1671-489X.2023.15.032
  3. 陈立伟, 张慧敏. 传感器技术在STEAM教育中的应用研究[M]. 上海: 上海科技教育出版社, 2021:78-82.
  4. 黄振国 等. 温湿度波动对酵母发酵影响的量化研究[J]. 食品科学技术学报, 2020,38(6):23-28. DOI:10.3969/j.issn.2095-6002.2020.06.004
  5. 吴启明. 3D打印技术在教育装备开发中的应用[J]. 现代教育技术, 2022,32(S1):135-138.
  6. DFRobot公司. Gravity: 可插拔PH计V2用户手册[EB/OL]. (2023-05-12)[2024-03-01]. https://wiki.dfrobot.com.cn/_SKU_SEN0465_Gravity__Analog_pH_Sensor_Meter_Pro_Kit_V2
  7. 周海涛 等. 基于行空板的创客教育实践研究[J]. 中小学信息技术教育, 2023(9):67-70.
  8. Adafruit Industries. SHT31-D温湿度传感器技术白皮书[R]. 美国: Adafruit公司, 2021:8-15.
  9. 福建省电化教育馆. 中小学创客教育课程开发指南[Z]. 福州: 闽教发〔2023〕12号, 2023.
  10. 肖建华, 林文斌. 基于MQTT协议的实验数据可视化系统构建[J]. 实验室研究与探索, 2021,40(7):89-93. DOI:10.3969/j.issn.1006-7167.2021.07.019

 

作者:邬肖英,男,1969-,福建省宁德市第五中学,高级教师,研究方向:创客教育;

地址:福建省宁德市东侨区梦龙路1号  邮编:352100

电话:18059309913

邮箱:ndwzwxy@126.com

(基金项目:本文系福建省电化教育馆2024年度教育信息技术研究立项课题“中小学创客教育课程开发与应用研究”(立项号:KT24063)的研究成果之一。)

 

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部