基于语音识别的智慧分类医疗垃圾桶的设计与实现
2024-12-31黄佳兴吕廷新石青盈高翔
摘" 要:以Arduino Nano单片机为核心,采用SU-03T语音识别芯片、ESP8266联网模块以及其他模块,设计一款具备语音识别和联网功能的医疗垃圾分类垃圾桶,实现了对医疗垃圾分类的语音化管理、垃圾溢满提示、环境照明和垃圾桶开合等自动化功能。同时设计移动端应用程序与联网模块的信息交互,获取垃圾桶的状态信息,实现对垃圾桶容量的查看和分楼层对垃圾桶的管理。实验结果表明,智慧分类医疗垃圾桶语音识别的正确率达97%,满足设计需要。
关键词:医疗垃圾分类;Arduino;语音识别;定位联网;自动判断;模块化
中图分类号:TN912.34;TP39" 文献标识码:A" 文章编号:2096-4706(2024)12-0018-06
Design and Implementation of Intelligent Classification Medical Trash Can
Based on Speech Recognition
HUANG Jiaxing, LYU Tingxin, SHI Qingying, GAO Xiang
(School of Public Health and Management, Guangxi University of Chinese Medicine, Nanning" 530200, China)
Abstract: Using the Arduino Nano Single-Chip Microcomputer as the core and SU-03T speech recognition chip, ESP8266 networking module, and other modules, a medical trash classification trash can with speech recognition and networking functions is designed, achieving automated functions such as speech management of medical trash classification, trash overflow notification, environmental lighting, and trash can opening and closing. Simultaneously, it designs information interaction between mobile applications and networking modules to obtain status information of trash cans, enabling viewing of trash can capacity and management of trash cans by floor. The experimental results show that the accuracy of speech recognition for intelligent classification medical trash cans reaches 97%, meeting the design requirements.
Keywords: medical trash classification; Arduino; speech recognition; positioning and networking; automatic judgement; modularization
0" 引" 言
生态环境部公布的数据显示,2020年受新冠疫情影响,我国医疗废物占比增长20%左右,医疗垃圾处理问题已成为全世界关注的热点。相比于普通垃圾,医疗垃圾中含有大量的细菌、病毒及化学药剂,对社会具有极大的危险性,如若处理不当,不仅会污染环境,还将成为疾病传播的源头[1,2]。如因疏忽造成处理不当极易使医护人员、患者和工作人员遭受感染,导致传染性疾病的流行[3-7]。相关数据表明由医疗废物带来的交叉感染占社会交叉感染的20%,在医疗废物中15%被认为可能属于传染性、化学性或放射性的危险物质,因此加大力度补齐医疗废弃物处理方式的短板刻不容缓。2020年Wulandari [8]设计了一款基于单片机Arduino MEGA2560的自动垃圾分类系统,具有液晶显示和声音通知功能。2021年郑红娜[9]使用Arduino微控制器和LD3320语音识别模块设计了一款自动垃圾分类的智慧垃圾桶,助力了垃圾分类政策的实施,在疫情期间发挥了积极的作用。本文主要研究实现一款基于Arduino单片机和SU-03T语音识别模块的智慧分类医疗垃圾桶,其可以根据人们的语音提示自动开合相应的垃圾桶盖,实现智能垃圾分类。
1" 系统设计
医疗垃圾分类分为感染性、病理性、损伤性、药物性、化学性废物五类,该设计主要目标是能对医疗垃圾名称进行识别和分类,主要实现的功能是语音唤醒、语音识别、语音播报、机械控制、智能提示、联网和手机软件控制。系统总体框架如图1所示。
2" 硬件设计
根据系统总体设计,医疗垃圾自动分类装置的硬件部分主要包括:电动垃圾桶的设计制作,Arduino Nano单片机模块的设计制作,语言识别与播报模块、红外距离模块、通信模块、照明模块、机械模块、蜂鸣器模块的设计制作。单片机通过语言识别模块识别出语言内容后,由机械模块打开相应的垃圾桶盖子;通过红外距离模块判断垃圾桶是否装满,并由通信模块经路由器将数据传输到软件;通过照明模块在光线不亮时提供照明。
2.1" 单片机模块设计
本系统使用Arduino Nano单片机模块作为核心控制器[10],其主要功能是控制其他模块。处理器核心是ATMEGA328,它包括了14路的数字输入与输出接口,拥有晶体振荡器、USB接口、电源插座、ICSP接口和复位按键。该模块由基于ATMEL AVR单片机的开放源码和硬件平台组成,是一种小巧灵活、易于学习的开源电子原型平台,并且有使用类似C语言的Processing/Wiring开发环境,使用Arduino IDE进行程序代码编写。该模块拥有丰富的接口,编写好相应的代码后就可以控制各种各样的电子设备。单片机作为垃圾桶的处理中心,通过编写代码处理来自语音识别模块、红外线距离模块、通信模块、照明模块的数据,并且根据信息控制机械模块、蜂鸣器模块以及通信模块。
2.2" 语音识别与播报模块设计
语音识别模块将音频指令转化为信号指令,让系统做出相应的反应。本系统使用SU-03T语音识别芯片,其是基于非特定人语音识别(Speaker-Independent Automatic Speech Recognition, SI-ASR)技术的声控芯片。模块内置了2 MB的Flash存储芯片,可以支持存储150条语音命令,支持中噪音环境,综合的语音识别正确率达到97%,无须外置存储芯片。基于芯片的功能,将垃圾分为五类,语音播报的垃圾名称通过智能公元开发平台录入中文,生成对应的SDK,烧入语音识别芯片中。语言识别过程是将用户口述的垃圾名称与存储在Flash芯片中的垃圾名称词条信息进行比对,成功后播报相应的垃圾类别的名称,并且返回对应分类指令的低电平,通过对低电平绑定的值返回到Arduino Nano开发板。Arduino Nano开发板再根据绑定低电平的返回值判断该垃圾属于哪类垃圾,从而控制舵机转动打开相应垃圾桶盖,引导工作人员将口述的垃圾投入对应的垃圾桶中。若经过3秒延时时间工作人员仍未再投入垃圾,红外线接收模块没有接收到红外线信号,将判定垃圾投入完毕,垃圾桶盖关闭;若在3秒延迟时间内工作人员继续投入垃圾,红外线接收模块在3秒内能接收到红外线信号,垃圾桶盖在原来的时间基础上再延迟3秒,其间,垃圾桶盖不关闭,直至工作人员不再投入垃圾或者投入垃圾的时间超过3秒的延迟时间。如果对比不成功,电平不变化,则没有返回值,Arduino Nano开发板没有判断,舵机工作状态不变。
语音识别模块与单片机模块需要经GND引脚、5 V引脚、TXD引脚连接,其中GND引脚、5 V引脚为语音识别模块提供供电,保证模块的运行;TXD引脚为传输数据的引脚,传输信息的方式为语音识别模块到单片机模块的单向传输,将语音识别模块的TXD引脚连接到单片机模块的3号引脚才能完成对垃圾分类信息的传输。语音播报模块与语音识别模块集成于SU-03T中,将模块的SP+、SP-两个引脚连接到扬声器,即可实现语音播报功能。SU-03T语音识别模块原理图如图2所示。
2.3" 红外距离模块设计
红外距离模块使用循迹传感器TCRT5000 [11],该模块安装在垃圾桶内部侧上方,用于检测垃圾桶是否溢满。用高低电平表示垃圾桶的状态,高电平为未溢满,低电平为溢满。传感器上的红外发射二极管不断地发射红外线,当发射的红外线反射的强度不够时,红外线接收器处于未接收状态,模块输出端输出高电平,指示二极管处于熄灭状态,垃圾桶未溢满。当垃圾桶溢满后,垃圾挡住红外发射二极管发射的红外线,反射到红外线接收器的红外线强度足够,模块输出低电平,指示二极管点亮。传感器将电平信号发回给单片机模块,提示用户关注垃圾桶溢满状态。
红外线距离模块同样使用5 V供电,引脚1和引脚2分别为电源的正极与负极,该模块只需要将红外感应模块的2号输出引脚与单片机的8、14、15、16、17号引脚连接即可,传输信息的方式为红外距离模块到单片机模块单向通道,当垃圾溢满时该模块红外模块的输出引脚输出低电平信号。红外距离模块原理图如图3所示。
2.4" 通信模块设计
通信模块使用ESP8266Wi-Fi模块实现手机与单片机模块之间的通信功能,ESP8266Wi-Fi模块使用TCP/IP网络协议,支持3种网络模式:AP、STA和AP+STA模式。模块使用AP模式,该模式将ESP8266Wi-Fi模块作为无线接入点,手机通过Wi-Fi连接到ESP8266。ESP8266Wi-Fi模块主要功能是作为一个信息传递的桥梁,实现监控垃圾桶是否溢满,以及为实现垃圾桶的一键开关做好数据交互。通过红外距离模块返回到单片机模块的信号来监测垃圾桶是否装满。当垃圾桶装满,垃圾桶状态发生变化,通过垃圾桶状态变化的条件向通信模块传输数据,通信模块通过路由器传输数据到软件,软件在得到数据后改变垃圾桶状态。
Wi-Fi模块在接入电源时需要通过稳压芯片AMS1117-3.3V提供3.3 V的电压,Wi-Fi模块需用到稳定、顺滑的直流电流,需要添加C2滤波电容,过滤交流成分。在与单片机连接时需要Wi-Fi模块的1号和8号引脚与单片机的RXD以及TXD引脚连接,其中RXD为接收信息的引脚,TXD为传输数的引脚,连接这两个引脚后单片机模块与通信模块才能进行双向通信。通信模块原理图如图4所示。
2.5" 机械模块设计
机械模块使用舵机SG90,为每个垃圾桶配备一个舵机,主要负责每个垃圾桶盖的自动开合。通过对舵机的转动角度进行设置,由单片机模块发出电平信号给舵机,舵机开始工作,经由简单传动结构带动垃圾桶盖开合。当工作人员口述出相应的垃圾后,语音播报模块播报该垃圾属于哪一类垃圾,同时将对应的垃圾桶盖打开,经过3秒的延时后,关闭垃圾桶盖。
机械模块拥有5个舵机,将他们并联,通入5 V供电,舵机的3号引脚与单片机的5、6、9、10、11相连。单片机通过这些引脚传输信息到舵机,达到垃圾桶盖的开合效果。机械模块原理图如图5所示。
3" 软件实现
3.1" 系统整体程序设计
软件程序是各个模块相互联系的桥梁,各个模块的逻辑控制用代码程序实现。该程序使用模块设计方法,每个模块实现不同的功能,拥有相对独立的程序模块,主要的程序是单片机Arduino Nano程序设计和SU-03T语音模块程序设计。垃圾桶实物图如图6所示。
单片机模块从接收到SU-03T语音模块指令,完成对垃圾桶盖的开关、垃圾溢满检测与提示、灯光照明、通信指令接收与发送的逻辑控制。SU-03T语音模块完成对工作人员口述垃圾的识别、语音的播报提示的功能。主程序流程图如图7所示。
单片机读取语音识别模块和Wi-Fi模块程序通过softSerial1.available()函数读取RX引脚传递的16进制信息,其中0x43为十进制67,对应的字符为C,此标志用来标记识别结果,command1是标记垃圾桶的类别。实现代码如下:
while(softSerial1.available()gt;0){
UART_dat1[bz1]=softSerial1.read();//暂存串口数据
switch (bz1)
{
case 0:
if(UART_dat1[bz1]==0x43){bz1=1;}else{if (UART_dat1[bz1]==0x42){bz1=2;}else{bz1=0;}}break;
case 1://读命令
command1=UART_dat1[bz1]-0x30;bz1
=0;break;
}
}
垃圾桶盖开合判断用二级制或运算实现,command1是语音模块的返回值,command1==4表示打开感染性垃圾桶盖。command2是手机通过Wi-Fi模块控制垃圾桶盖开合的值,command2==1,表示打开感染性垃圾桶盖。flag_key==1 amp; flag_open1==1同时满足表示手机控制5个垃圾桶盖实现全部开合的值,其中flag_open1初始化为1,ds3为延时计数器。当判断通过时,执行servo1.write(90)控制垃圾桶盖转动90°角,打开垃圾桶盖。随后,程序达到延时时间,将command、command2以及flag_open1=0的值设置为0,通过与运算实现将垃圾桶盖关闭。
if (command1==4 | command2==1 | (flag_key==1 amp; flag_open1==1)){//开盖程序1
if (flag_key==1){flag_sd1=1;}
if (command2==1){flag_yk1=1;}//
if (flag_open1==1){
servo1.write(90);//舵机开启角度=90°
delay(time_dj);
flag_open1=0;wreeprom();
Serial.println(\"1# OPEN!\");
command1=0; command2=0;
ds3=0;
}
}
if ((command1==0 amp;amp; flag_open1==0 amp;amp; !flag_sd1 amp;amp; !flag_yk1 amp;amp; ds3gt;time_ys) | ((flag_key==2 amp;amp; flag_open1==0) | (command2==2 amp;amp; flag_open1==0) )){//关盖程序1
flag_sd1=0;flag_yk1=0;
servo1.write(0);//舵机开启角度=0°
delay(time_dj);
flag_open1=1;wreeprom();
Serial.println(\"1# CLOSE!\");
command2=0;
}
3.2" 语音识别程序设计
智能公元是机芯智能创新推出的AI产品零代码平台,在智能公元平台选择硬件SU-03T,设置触发方式为命令词,并填写命令词,命令词的内容为各类医疗垃圾的名称。同时设置回复语,在识别到的医疗垃圾后,通过扬声器回复相应医疗垃圾类别。语音识别程序设计流程图如图8所示。
3.3" 移动端APP设计
通过HBuilder X开发工具使用uni-app框建搭建移动端APP,实现查看垃圾桶状态、标注垃圾桶位置、增加和删除垃圾桶的功能。手机APP通过垃圾桶的Wi-Fi模块所连接局域网的IP地址以及端口连接到垃圾桶,即可直接查看垃圾桶的状态信息,界面如图9、图10所示。
4" 系统测试
4.1" 系统测试方法
根据《医疗废物分类目录》,分别对感染性垃圾、病理性垃圾、损伤性垃圾、药物性垃圾、化学性垃圾类别中的各项垃圾进行语音测试。当识别失败时,垃圾桶会进行语音提示,要求重新进行语音输入;当识别成功,会播报相应的垃圾类别并且打开相应的垃圾桶盖,3秒后垃圾桶桶盖自动关闭。
测试步骤如下:
1)语言唤醒垃圾桶。
2)工作人员说出垃圾名称,如“针头”。
3)“针头”对应的垃圾桶的桶盖开启,工作人员投入垃圾,在3秒的延迟时间里不再投入垃圾则垃圾桶盖关闭。
4)本次投放结束。
4.2" 系统测试结果与分析
系统测试结果如表1所示,对于感染性、病理性、药物性、化学性垃圾,均正确识别,识别率为100%;对于损伤性垃圾,未能识别载玻片,其他正确识别,识别率为88.89%。
对于载玻片,该系统未能识别的原因为语音识别芯片中没有录入相应的垃圾名称。而后本系统再对具体的载玻片等信息进行具体的完善后发现均能正确识别。系统测试结果表明,该系统识别正确率高,具有较高的实用价值。
5" 结" 论
本文设计的智能语音识别医疗垃圾桶是直接从源头上把医疗垃圾分类做好,通过语音识别模块的语音识别功能,同时添加了垃圾溢满提示和手机APP监控功能,在垃圾溢满时能及时发现以及处理。该系统设计简单、成本低、精确度高,能出色地完成医疗垃圾分类工作,具有一定的实用价值,达到了避免二次分类以及防止细菌滋生的目的。
参考文献:
[1] 单洪超,谭晶,辛华.非焚烧技术在我国医疗垃圾处理中的应用对策 [J].广东化工,2021,48(13):162-163.
[2] FABIANO B,HAILWOOD M,THOMAS P. SAFETY, Environmental and Risk Management Related to Covid-19 [J].Process Safety and Environmental Protection,2022,160:397-399.
[3] 张歆羽,杨钟亮,周哲画,等.面向多目标医疗垃圾分类的智能识别分拣系统设计 [J/OL].智能系统学报,2023:1-11
[2023-10-20].http://kns.cnki.net/kcms/detail/23.1538.TP.20231008.
1504.006.html.
[4] 王菊萍,李建红.一种医院专用医疗垃圾桶的设计与应用 [J].护理与康复,2022,21(1):101-102.
[5] 高云帆.一种医疗垃圾分类处理装置的研究与设计 [J].科技创新与生产力,2021(4):45-47.
[6] 郑舒文.疫情背景下医疗废弃物收集车的设计研究 [D].沈阳:鲁迅美术学院,2022.
[7] 周慧芬.医学院校实验医疗废弃物回收处理系统设计 [J].办公室业务,2023(18):154-156.
[8] WULANDARI E W V. Automated Trash Sorting Design Based Microcontroller Arduino Mega 2560 with LCD Display and Sound Notification [C]//3rd Nommensen International Conference on Technology and Engineering.Medan:IOP,2020,725(1):012054.
[9] 郑红娜.基于语音识别的智慧分类垃圾桶研究 [J].工业控制计算机,2021,34(6):68-69.
[10] 卢渊,李艳丽,冯成龙,等.基于Arduino NANO单片机的互联免接触式自动泵压消毒系统 [J].物联网技术,2023,13(2):95-97+101.
[11] 朱春华,顾雪亮.基于红外反射式传感器TCRT5000的循迹小车设计 [J].现代电子技术,2018,41(18):143-146.
作者简介:黄佳兴(2002—),女,汉族,江西萍乡人,本科在读,研究方向:嵌入式开发;通讯作者:高翔(1989—),男,汉族,广西南宁人,副教授,博士研究生,研究方向:医学信息工程。