校园科普教具《戒烟神盒》

2026-11-053
精华项目

作品说明

一、背景分析与设计要求

摘要:吸烟有害健康,很多人不能做到自觉戒烟。本作品面向办公室场景,用 MQ-7 一氧化碳传感器自动检测烟气浓度:按键启动检测,当一氧化碳浓度超过设定阈值时,蜂鸣器鸣响警示,两路 L9110 风扇同时把烟气吸入集气罐,由罐内棉花吸附焦油。外观做成肺形透窗的红色面壳——时间久了,罐内棉花发黄粘油,对吸烟者形成具体、形象的警示,从而缓解同事间反复提醒的尴尬,帮助吸烟者控制吸烟量、逐步戒烟。

关键词:吸烟;一氧化碳(CO);MQ-7 传感器;警示戒烟;集气罐

1.1 项目背景

据论文引用的统计资料,截至 2015 年全球吸烟人数已达约 9.33 亿,约占全球总人口(70 亿)的 13.3%,吸烟人群大多集中在发展中国家;人们把每年 5 月 31 日设为世界无烟日,以此呼吁戒烟。吸烟过程会产生醛类、尼古丁、致癌物、氰化物、一氧化碳等有害物质,可导致慢性支气管炎、肺气肿、肺癌等呼吸系统疾病,以及冠心病等心血管损害;长期处于二手烟环境中的家人同样容易患上这些疾病。

作者在日常生活中发现,长期坐办公室工作的人群吸烟较为严重,而同事之间反复口头提醒既尴尬又难坚持——「能不能让机器代替人来提醒?」这就是《戒烟神盒》的出发点。

为了解身边人群的吸烟与戒烟意愿,作者用问卷星设计并发布了 4 道题的问卷调查,共回收 100 份有效答卷:成年人 54 人(54%)、未成年人 46 人(46%);本人吸烟的仅 10 人(10%);约九成家庭中有家人吸烟;88 人希望自己或家人戒烟。调查说明戒烟是大多数人的真实愿望,「机器自动警示」有现实需求。

问卷调查结果

图 1-1 问卷调查结果汇总(问卷星,n=100):①是否成年 ②是否吸烟 ③家中有几人吸烟 ④是否希望自己或家人戒烟

围绕「做出一台能自动警示的戒烟盒」,论文确立了四条活动目标:一是通过网络问卷调查了解吸烟家庭吸烟人数与戒烟欲望,用饼状图呈现数据;二是设计基本电路图、购买相关套件;三是通过互联网了解一氧化碳占烟气的比例、抽的烟数量与一氧化碳浓度的关系,用它来判断吸烟量,达到一定浓度即发出警告;四是制作草模、连接线路,用 Mind+ 编程并进行相关实验,检验能否达到效果。

问卷数据里还有一个值得注意的细节:100 个受访家庭中,吸烟人共 92 人,且大部分家庭是「家中一人吸烟」的格局——吸烟者往往不是受访者本人。这意味着戒烟这件事在家里常常是「一人吸烟、全家被动」:家人希望他戒,他自己却未必当回事。让机器出面提醒,恰好绕开了家人反复催促带来的对立情绪。

研究方法上,论文记载了三条路线的交叉验证:问卷调查法(问卷星制作发布,回收后统计分析家中吸烟人数与戒烟意愿)、真实例子采访调查(走访长期吸烟者,记录他们因长期吸烟产生的身体感受,与问卷数据互相印证)、模型制作(草图试验成功后用三维建模软件建模、加工成型,装入主板与传感器再试验,加以装饰得到成品)。

1.2 作品主体结构

先说检测原理。论文总结的实测规律是:一般来说,焦油含量高的卷烟,其烟气中一氧化碳的含量也大;而 CO 传感器对一氧化碳非常敏感。于是整台机器的警示链条设计为:吸烟者对盒呼烟 → 双风扇把烟气鼓入集气罐 → 罐内棉花吸附焦油、罐体聚积一氧化碳 → 罐内 CO 浓度升高 → 当 MQ-7 读数超过设定阈值时触发蜂鸣器报警,迫使吸烟者停止吸烟。论文还设想在作品表面加装显示屏,按浓度分三个等级显示相应警示文字,让警示「看得见、读得出」。

《戒烟神盒》由三部分组成:

  • 电子检测部分——Arduino Nano V3.0 主控板插在 Nano 传感器扩展板上,外接 MQ-7 一氧化碳传感器(模拟输出)、按键、蜂鸣器模块和 LED 红灯模块;

  • 集气部分——两个 L9110 风扇模块驱动的螺旋桨,把烟气经进气孔压入两个透明集气罐,罐内装有吸附焦油的棉花;

  • 外观结构——红色面壳正面开肺形透窗,白色面板衬托肺形图案,底部由支架立起,摆在办公桌面上既是警示器也是摆件。

1.3 设计要求

1.3.1 功能要求

  • 按下按键启动一次检测:读取 MQ-7 模拟值,浓度不超过阈值(100)时保持静默、各执行器全关;

  • 浓度超过阈值 100 时进入警示循环:蜂鸣器响 1 秒停 1 秒重复 10 次,双风扇持续把烟气吸入集气罐,直到浓度回落到 100 及以下;

  • 集气罐内棉花吸附焦油,日久发黄变脏,形成直观的「肺」警示;

  • (升级设想)面壳加装显示屏,按浓度分三个等级显示相应警示文字。

1.3.2 工程实现要求

  • 主控采用 Arduino Nano V3.0 + Nano 传感器扩展板,图形化编程(Mind+,Arduino C 模式);

  • 结构与外观用 SketchUp 三维建模,导出正立面、侧立面、顶视图等图纸后加工板壳;

  • 论文「活动研究方法」记载的成型方案为 3D 建模后 3D 打印,校本教材《GT创客空间创意智造》记载的工艺为 LaserMaker 激光切割,实物为红色板壳面罩(两种记载并存,以实物为准);

  • 研究周期 2019 年 9 月 25 日 — 12 月 2 日,按「发现问题→查资料→问卷调查→设计方案→草模试验→外形制作→成品优化」七个过程推进。

参赛与获奖:本作品代表宁德市第五中学申报第 35 届福建省青少年科技创新大赛(2020 年),项目学科为工程学(EN),高中组个人项目,获省级三等奖;辅导教师邬肖英,辅导机构为宁德五中 GT 创客空间。

二、设计思维导图

下图整理了《戒烟神盒》的设计要点:从社会背景出发,围绕电子检测、声光警示、集气系统、外观设计四条技术线展开,最终落到「自动警示替代人工催促」的应用价值上。读图时可以顺着两条对角线看——左上「社会背景」到右下「应用价值」回答「为什么做」,右上「电子检测」到左下「外观设计」回答「怎么做」,中间的核心节点把六条支线拧成一句话:让一盒「肺」替所有关心他的人开口提醒。

社会背景全球吸烟约 9.33 亿人办公室二手烟与提醒尴尬电子检测Arduino Nano V3.0MQ-7 一氧化碳传感器声光警示蜂鸣器 D4 · LED D3按键触发 D11集气系统L9110 风扇 ×2集气罐 + 棉花吸附外观设计肺形透窗面壳SketchUp 建模 · 红色板壳应用价值自动警示替代催促办公室桌面摆件戒烟神盒CO 监测 · 声光警示双风扇集气图 

校园科普教具《戒烟神盒》_image_1.webp

2-1 《戒烟神盒》设计思维导图

三、硬件选用与连接

3.1 器材清单

先认识一下核心传感器。MQ-7 是一款半导体气敏传感器,敏感材料对一氧化碳特别敏感:空气中 CO 浓度变化时,传感器的电导率随之变化,模块把这一变化转成模拟电压从 AOut 引出——浓度越高、电压越高。把它接到 Arduino 的模拟输入口,用 analogRead() 就能读到 0~1023 的数值,超过阈值即认为烟气聚集。需要提醒的是,MQ-7 系列传感器按官方手册有加热/检测交替的时序要求,本作品作为教学演示装置采用简化的连续读数方式,读数用作相对比较(阈值 100),不做绝对浓度标定。

下表为制作本作品用到的器材(清单按论文「所需的实验配件清单」整理;论文写主控为 DFRduino UNO R3,而电路连接图与最终程序截图均为 Nano V3.0,判断早期试验用 UNO、最终定版为 Nano,正文按连接图与程序以 Nano 为准):

序号器材数量作用
1Arduino Nano V3.0 开发板1主控,运行检测与警示程序
2Nano 传感器扩展板1把 Nano 的引脚引出成标准 3 排,方便接线供电
3MQ-7 一氧化碳传感器模块1感知烟气中 CO 浓度,模拟输出接 A0
4L9110 风扇模块2驱动螺旋桨,把烟气吸入集气罐
5LED 红灯模块1光警示(报警状态指示)
6蜂鸣器模块1声警示,响 1 秒停 1 秒
7按键模块1触发一次检测
8杜邦线若干连接各模块
9LCD1602 转接板含液晶屏1(待选)按浓度分三级显示警示文字(设计中,未实装)

3.2 Nano 与扩展板的安装

Nano V3.0 体积小、自带迷你 USB 口,直接插焊在扩展板中央的双排母上即可。扩展板把 Nano 的数字口、模拟口、串口和电源统一引成三排 2.54mm 间距的排针,每个引脚组都配齐「红(V)—黑(G)—绿(S)」三个针位,插接我们的数字传感器模块时不用另外搭面包板;板载电源插座与稳压电路支持直流适配器供电,正好对应论文「改用市电(变压 5V)供电」的优化方向。

Nano 插入扩展板

图 3-1 将 Nano V3.0 开发板插入扩展板(安装示意;图源为扩展板商品资料,非本作品实拍)

3.3 电路连接

整机连接如下图:MQ-7 的模拟输出接 A0,按键接 D11,蜂鸣器接 D4,LED 红灯模块接 D3,两路 L9110 风扇模块分别由两组数字口驱动。连接图下方注明了三色线的通用接法:红线 V 端对接 VCC(或 +5V),黑线 G 端对接 GND,绿线 S 端对接 DIN(或 OUT)——本作品全部模块都遵循这一「红电源、黑地、绿信号」的接线惯例,插错概率大大降低。

装好后先做一次上电自检:插上 USB 电、按下按键,若此时正对盒口呼一口烟,正常表现应是蜂鸣器「响 1 秒、停 1 秒」地叫起来、两叶风扇同时转动;若读数明显低于阈值风扇却仍在转,或按键毫无反应,优先检查信号线是否插串了位、按键引脚是否接在 D11。

电路连接图

图 3-2 《戒烟神盒》电路连接图(Nano V3.0 + 扩展板)

3.4 引脚分配表

最终程序(见图 5-2)的引脚占用如下。需要说明:连接图上风扇模块一标注为「接 D7、D8」,而程序截图实际驱动的是 D8/D9——两处有一字之差,本文以程序源码为准并如实加注。另外按键模块接 D11 时,程序按「按下读数为 1」处理(高电平有效),复刻时若你的按键模块按下输出低电平,把判断条件反过来即可。

引脚连接对象方向说明
A0MQ-7 一氧化碳传感器(模拟输出)输入读数 0~1023,阈值 100
D11按键模块输入按下为 1,触发一次检测
D4蜂鸣器模块输出报警时高电平响、低电平停
D3LED 红灯模块输出程序中保持低电平(见 5.2 加注)
D8 / D9L9110 风扇模块 1(IA / IB)输出8 高 9 低正转
D5 / D6L9110 风扇模块 2(IA / IB)输出5 高 6 低正转

四、结构安装与制作过程

4.1 外观设计

外观设计是本作品最用心的部分。作者先后画出多版方案草图,分析比较后确定最佳外形:一个立在桌面上的小盒子——面壳正面开肺形透窗,把「吸烟伤肺」的隐喻直接刻在产品上;整体为红色板壳、白色面板衬底,肺形透窗内恰好露出两个并排的透明集气罐罐身,两叶「肺」既是装饰又是功能件。顶部提手与底座支脚让它可以稳稳立在办公桌上,需要清理罐内棉花时提起提手即可开罐。

SketchUp 建模导出了完整的工程图:正立面(图 4-1)标注了面板区域尺寸(宽约 72mm、面板高约 45mm,顶部元件孔径约 32mm),顶部预留红色按键孔与圆形网孔作出风口;侧立面(图 4-2)可见底部支架缺口,盒子靠两只前伸的支脚立起、微微后仰,方便正对吸烟者;顶板视图(图 4-3)板厚约 22mm,均布进气孔阵列,两侧带提手孔。

正立面

图 4-1 正立面(SketchUp,含尺寸标注:顶部按键孔与圆形网孔)

侧立面

图 4-2 侧立面(SketchUp,底部支架缺口)

顶板视图

图 4-3 顶板视图(SketchUp,板厚约 22mm,进气孔阵列与两侧提手孔)

桌面效果图

图 4-4 桌面场景效果图(SketchUp):肺形面壳立在显示器旁

4.2 草模试验

外形定稿前,先用纸板搭出草模、装入主控板和传感器做试验。草模(图 4-5)里并排放两个透明集气罐,罐口各配一只风扇,罐内塞入棉花——这就是论文原理里「用直流电机制成的集气罐」。试验要回答两个关键问题:其一,风扇能否把呼出的烟气有效压入罐内、而不是从缝隙里散掉;其二,罐内聚集的烟气能否让 MQ-7 的读数快速爬过阈值。分析试验数据、解决草模暴露的问题(罐口密封、风扇朝向等)并达到预期目标后,才进入外形制作。

纸板草模

图 4-5 纸板草模:双集气罐与风扇的布局试验

4.3 加工与总装

进入成品阶段,先手工修整配件:用尖嘴钳、美工刀加工 L9110 风扇的螺旋桨与轴件(图 4-6),保证桨叶转动顺滑、不刮罐壁。

加工风扇部件

图 4-6 加工风扇部件:修整螺旋桨与轴件(桌面为加工中的桨叶与工具)

然后组装面壳:红色边框支架内嵌白色面板,肺形透窗对准两个集气罐的罐口(图 4-7)——从正面看,透窗里的深色肺形图案就是罐身与罐内棉花。这一步要对位准确:面板孔位歪一点,罐口就会漏气,警示灵敏度随之下降。

安装肺形面板

图 4-7 安装肺形面板:红框支架 + 白色面板,肺形透窗内即集气罐罐身

最后把 Nano 扩展板、MQ-7、蜂鸣器、LED 与两路风扇按图 3-2 接好线(图 4-8),全部装入面壳,合上顶板,成品完成。关于成型工艺需要加注一句:论文「活动研究方法」记载的是三维建模后 3D 打印,校本教材记载的软件是 LaserMaker 激光切割,两种记载并存,实物为红色板壳面罩。

总装接线

图 4-8 总装接线:向面壳内装入电路与集气模块

五、编程流程分析

5.1 两个版本的程序

论文保存了一张早期 UNO 版程序截图:主控选 Arduino UNO 套件,按键在 D2、报警阈值只有 20,每 0.5 秒把 smoke 读数从串口输出(波特率 9600)便于调阈值;风扇自定义块「machon」写 D9 低/D8 高、D6 低/D5 高并注明电机逆转方向;报警分两块——flash1 循环「打开 D4 + A3 输出 255(PWM 渐亮)0.3 秒 → 关闭 D4 + A3 输出 0(渐灭)0.3 秒」,flash2 让 D3 每 1 秒闪一次重复 10 次(该块在主程序中未被调用)。

早期 UNO 版里还能看到一套完整的「调试工作流」:循环第一行先用「串口字符输出 + 换行」把每次的 smoke 读数打到电脑串口监视器(波特率 9600),对着一支烟慢慢观察读数爬升,才把阈值从试算值定为 20。风扇块「machon」的积木旁还用便签注释了转向记忆:「D9 低电平、D8 高电平逆转」「D6 低电平、D5 高电平逆转」——L9110 的 IA/IB 两脚电平组合决定电机转向,两脚同高或同低都停转,这正是双线驱动的方便之处。

早期 UNO 版程序

图 5-1 早期 UNO 版程序(论文截图):串口辅助调阈值,flash1 用 A3 的 PWM 做 LED 渐亮渐灭

最终 Nano 版(本文以此为准)做了三处精简:按键移到 D11、阈值按实测提高到 100、去掉串口输出改为纯脱机运行;报警改为「蜂鸣器 D4 响 1 秒停 1 秒重复 10 次」。两版对照如下:

对比项早期 UNO 版(论文截图)最终 Nano 版(定版截图)
主控/编程目标Arduino UNO 套件Arduino Nano
按键引脚D2D11
报警阈值smoke > 20smoke > 100
串口输出每 0.5s 输出读数(调阈值用)无(脱机运行)
声光报警flash1:D4 + A3 PWM 0.3s 渐亮灭D4 响 1s 停 1s × 10 次
备用闪烁块flash2(D3 闪 1s × 10,未被调用)无
风扇驱动machon:D8/D9、D5/D6(注明逆转)「风扇」块:D8 高 D9 低、D5 高 D6 低
供电设想锂电池(论文记载不持久)市电变压 5V(论文优化结论)

5.2 最终版程序逻辑

主程序只有一条循环,按「读数 → 判按键 → 判阈值 → 警示循环」四步运转:

  • 读数:循环每圈先用「读取引脚 A0 一氧化碳气体传感器」把最新浓度写入变量 smoke;

  • 判按键:只有按键(D11)读数为 1 才继续往下走——这就是「按键触发式检测」,平时机器完全静默;

  • 判阈值:按键后先等 0.2 秒(消抖,兼让读数稳定),再判断 smoke 是否大于 100。不超过就「设置 on 的值为 0」,并把蜂鸣器(D4)、LED(D3)、两路风扇的驱动脚全部拉低,回到待机;

  • 警示循环:超过阈值就进入「重复执行直到 smoke ≤ 100」的循环,循环体反复调用「报警」与「风扇」两个自定义块——蜂鸣器逼人停烟,风扇把烟压进罐子,罐内浓度被棉花和罐壁吸附而逐渐回落,直到读数回到 100 以下才退出循环、置 on 为 1。

两处细节如实加注:

  • LED 不闪:「报警」块里两次写「设置数字引脚 3 输出低电平」——LED(D3)在整个报警过程中保持熄灭,只有蜂鸣器在响。这与论文「红灯频闪、蜂鸣器频响」的目标有出入,应是精简程序时的遗留(早期版 LED 走 A3 PWM 渐亮渐灭,改版后没有接回 D3 的闪烁逻辑),可作为读者复刻时的第一个改进点;

  • 循环体截断:「重复执行直到 smoke ≤ 100」的循环体下缘在截图上有一块被截断的半透明积木,按逻辑应为重新读取 A0 更新 smoke——否则循环条件永远不成立、程序无法退出。参考代码按此补全并注明。

最终 Nano 版程序

图 5-2 最终 Nano 版程序(Mind+ 截图):主程序 + 「报警」「风扇」两个自定义块

5.3 主程序流程图

Nano 主程序开始on ← 0循环执行smoke ← 读 A0(MQ-7)按键 D11 按下?是否(继续循环)smoke > 100 ?是重复执行直到 smoke ≤ 100循环体:报警 → 风扇 → 重读 smokeon ← 1否on ← 0蜂鸣器 / LED / 风扇 全部关闭回到循环开始定义「报警」重复 10 次:D4 高电平(蜂鸣器响 1s)D4 低电平(停 1s)注:D3(LED)两处均写低电平,程序里 LED 实际不闪(见 5.2 加注)定义「风扇」D8 高 · D9 低(风扇 1 正转)D5 高 · D6 低(风扇 2 正转)两路 L9110 同时把烟气压入集气罐说明:报警、风扇两个自定义块仅在警示循环内被反复调用,退出循环后所有执行器恢复关闭。图 5-3 最终版主程序流程(含「报警」「风扇」自定义块展开)

5.4 复刻指引

想在课堂上复刻这件作品,按下面的顺序走最省事:①先插好 Nano 与扩展板,接 MQ-7 到 A0,上传只有「读数+串口输出」的测试程序,对着烟气观察读数范围,确定自己的阈值(本作品最终取 100,环境不同会不一样,这一步不能省);②依次接按键(D11)、蜂鸣器(D4)、LED(D3),逐个验证;③接两路风扇时先单独用「高电平试验积木」确认转向,再并入主程序;④最后装进面壳,对位肺形透窗,做整机的按键—呼烟—报警联调。阈值定太高会「叫不动」,太低会「乱叫」,草模阶段多试几次是正常节奏。

六、参考代码

本作品在 Mind+ 的「上传模式 → arduino C」下编写,图形化积木可直接生成 Arduino C 代码。以下为最终 Nano 版程序的等价参考代码(逐行中文注释;「重复执行直到」循环内的重读语句按 5.2 的加注补全),图形化与文本对照着看,能把「自定义块=函数」「重复执行直到=while」这些对应关系看明白:

#include <Arduino.h>

int on = 0;       // 工作状态标志:1=本轮警示已完成,0=待机
int smoke = 0;    // 一氧化碳浓度读数(MQ-7 模拟输出,0~1023)

// 「报警」自定义积木:蜂鸣器(D4)响 1 秒、停 1 秒,重复 10 次
void baoJing() {
  for (int i = 0; i < 10; i++) {   // 重复执行 10 次
    digitalWrite(3, LOW);          // LED(D3)写低电平(程序原样:LED 不亮)
    digitalWrite(4, HIGH);         // 蜂鸣器(D4)高电平 → 响
    delay(1000);                   // 等待 1 秒
    digitalWrite(3, LOW);          // LED(D3)仍为低电平
    digitalWrite(4, LOW);          // 蜂鸣器(D4)低电平 → 停
    delay(1000);                   // 等待 1 秒
  }
}

// 「风扇」自定义积木:两路 L9110 同时正转,把烟气鼓入集气罐
void fengShan() {
  digitalWrite(8, HIGH);           // 风扇 1 的 IA(D8)高电平
  digitalWrite(9, LOW);            // 风扇 1 的 IB(D9)低电平 → 电机 1 正转
  digitalWrite(5, HIGH);           // 风扇 2 的 IA(D5)高电平
  digitalWrite(6, LOW);            // 风扇 2 的 IB(D6)低电平 → 电机 2 正转
}

void setup() {
  on = 0;                          // 设置变量 on 的值为 0
  pinMode(3, OUTPUT);              // D3 → LED 红灯模块
  pinMode(4, OUTPUT);              // D4 → 蜂鸣器模块
  pinMode(5, OUTPUT);              // D5 → 风扇 2 IA
  pinMode(6, OUTPUT);              // D6 → 风扇 2 IB
  pinMode(8, OUTPUT);              // D8 → 风扇 1 IA
  pinMode(9, OUTPUT);              // D9 → 风扇 1 IB
  pinMode(11, INPUT);              // D11 → 按键模块(按下为 1)
}

void loop() {
  smoke = analogRead(A0);          // 读取 A0 一氧化碳气体传感器
  if (digitalRead(11) == 1) {      // 按键(D11)被按下?
    delay(200);                    // 等待 0.2 秒(消抖,兼让读数稳定)
    if (smoke > 100) {             // 浓度超过阈值 100?
      while (smoke > 100) {        // 重复执行直到 smoke ≤ 100
        baoJing();                 // 调用「报警」
        fengShan();                // 调用「风扇」
        smoke = analogRead(A0);    // 重新读取浓度(截图循环体下缘积木被截断,按逻辑补全,见 5.2 加注)
      }
      on = 1;                      // 设置 on 的值为 1(本轮警示完成)
    } else {                       // 浓度未超阈值
      on = 0;                      // 设置 on 的值为 0
      digitalWrite(4, LOW);        // 蜂鸣器关
      digitalWrite(3, LOW);        // LED 关
      digitalWrite(8, LOW);        // 风扇 1 IA 关
      digitalWrite(5, LOW);        // 风扇 2 IA 关
    }
  }
}

代码走读:整份代码可分为四块。①两个自定义函数 baoJing()、fengShan() 分别对应 Mind+ 里的「报警」「风扇」块——图形化里的自定义块落到文本就是函数,这是本作品最好的图形化→代码对照教材点;②setup() 里 7 个 pinMode 把 3/4/5/6/8/9 设为输出、11 设为输入,与图 3-2 的引脚表一一对应;③loop() 的双层 if 对应流程图的两个菱形判断——外层「按键是否按下」、内层「浓度是否超阈值」;④while (smoke > 100) 对应「重复执行直到 smoke ≤ 100」,循环体末尾的重读是退出循环的关键(补全语句,见 5.2 加注)。变量 on 在这里更像一个「状态存档」:本轮警示是否完成过,为将来接显示屏显示「上次检测状态」留了接口。

七、作品创新点

  • 机器提醒代替人际催促:用传感器+蜂鸣器自动触发警示,把「同事反复提醒」的尴尬交给机器。论文摘要点得非常准:自动检测引发报警、达到警示效果,「也缓解同事间的经常提醒尴尬」。88% 的受访者希望自己或家人戒烟,说明这一需求真实而普遍;

  • 会「变脏的肺」:双风扇把烟气主动压入透明集气罐,罐内棉花吸附焦油,日久发黄粘油——警示效果随使用越来越直观。论文总结里特别强调这一点「对吸烟者有很具体、形象的警示」,这是单纯的声光报警器做不到的;

  • 肺形透窗外观:红色面壳开肺形窗,透窗里就是集气罐,产品隐喻「吸烟伤肺」与功能结构合二为一;呆萌的外形让它「必成为办公室桌面常见的摆件」,警示器不突兀、不刺眼;

  • 按键触发式检测:只在按键后执行一次检测判别,避免环境空气不良造成的经常性误报——论文产品优化一节明确讨论了「CO 传感器敏感性很好,也可能由于外面空气不良而触发报警」,触发式设计正是对这一问题的回应;

  • 用数据说话的研究方法:先问卷(100 份)、再采访、后试验,把「该不该做」和「阈值定多少」都建立在数据上,是完整的项目研究范式。

八、项目应用拓展

「CO 浓度检测 → 声光警示 → 集气吸附」的框架可以迁移到多个场景:

应用场景做法价值
办公室/家庭书房桌面摆放,按键检测烟气自动警示+集气,帮助控烟戒烟
出租车/私家车车内小型化,超阈值提示开窗保护家人远离二手烟
厨房/燃气使用点换用 CO/可燃气双传感器一氧化碳中毒预警
车库/库房与排风联动,CO 超标自动排气把「报警」升级为「处置」
校园科普教具罐内棉花日久变黄,作为吸烟危害的展示载体健康教育可视化

结构升级方向:装入清单中待选的 LCD1602 屏,按浓度分三级显示文字;改用市电(变压 5V)供电解决电池不持久问题;把 LED 接回报警流程恢复「红灯频闪」。再往进一步,可以把「报警」升级为「处置」——用一路继电器代替/并联蜂鸣器,浓度超标时自动接通排气扇,警示器就变成了自动排烟控制器。

九、小结

9.1 制作历程

项目自 2019 年 9 月 25 日启动、12 月 2 日完成。论文里每个过程都记了用时,学生自己排的时间表相当老实——「由于日常学习任务紧张,课余做项目时间不多,耗时较长」:

过程主要工作用时
发现问题到教师办公室走访,确认办公室人群吸烟问题的普遍性1 周
查找资料吸烟危害、配件参数(主板/传感器/电机/显示屏)1 周
问卷调查问卷星制作发布,回收 100 份并统计分析1 周
设计方案多方案比选,画出设计图与设计思路2 周
草模试验纸板草模装板试验,分析数据、解决问题2 周
外形制作SketchUp 定稿外观,加工面壳并装入电路2 周
成品优化反复调试,确定最适报警浓度,减小误差1 周

9.2 不足与反思

  • 「报警」块中 LED(D3)恒为低电平,红灯频闪的设计目标没有在最终程序里实现(早期版走 A3 PWM 的渐亮渐灭逻辑没有迁移过来),复刻时把 D3 纳入报警节奏即可补上;

  • 「重复执行直到」循环内重读传感器的积木在截图上被截断,按逻辑补全后方可正常退出循环,复刻时需特别注意;

  • MQ-7 灵敏度很高,环境空气不良(如有人烧水、尾气飘入)也可能触发报警,论文据此提出可考虑去掉蜂鸣器、改为更柔和的提示方式,避免「狼来了」效应;

  • 集气罐内直流电机需长时间开启,锂电池供电不持久,论文优化结论为改用市电(变压 5V)供电;

  • LCD1602 三级文字显示停留在「待选器材」阶段尚未实装,目前警示只依赖声音,阈值只有一个,没有发挥「分三级显示」的梯度警示能力。

创作许可协议

本项目采用 CC BY(署名) 进行许可。

评论(0)
- 没有更多了 -