本文设计一款基于STC89C52的智能垃圾箱控制系统。该系统主要由太阳能供电模块、光电感应模块、语音模块、超声波测距模块、异味检测模块及电机驱动构成,以RPR220光电传感器、超声波传感器和单片机为核心,通过传感器收集位置信息,再经过单片机发出指示,当光电监测器检测到垃圾桶满溢时,通过语音播报来提醒管理者及时清理。当超声波传感器检测到人与垃圾桶小于其设定距离,那么垃圾桶自动翻盖。该系统结构简单、功能稳定、低成本、且能源质量高、智能化,是能源节约、城市优化、减少细菌感染的一个理想方案。
1.1课题的背景及意义
随着人类经济水平的提高,我们的生活也变得越来越好,与此同时,我们的城市垃圾也变得越来越多。城市的生活垃圾每年接近百分之十的速度增长,这对我们的生活环境造成了极大地影响。据清华大学环境学院教授、固体废物处理与环境安全部重点实验室副主任刘建国在2017城市垃圾热点论坛上透露,“中国人口众多,是垃圾生产大国,根据住房和城乡建设部发布的城市垃圾统计数据,我国城市垃圾年产生量已超过2亿吨,全国1500多个县产生垃圾近7亿吨,乡镇垃圾,由于村镇数量过于分散,暂时没有准确的统计数据,我国生活垃圾总量一般在4亿吨以上,我国600多座城市,有三分之二的城市被垃圾包围[1]。这些垃圾不能焚烧,不能掩埋,我国虽然研究了很多处理方法,但是在这些垃圾运出我们的城市前首先需要分类以及消毒处理。目前我们社区存放的垃圾桶需要工作人员及时检查,并且需要保证每个垃圾箱没有溢出,这种盲目检查的工作方式效率极其低,并且这种垃圾箱没有分类回收的效果,导致垃圾变质恶臭,蚊虫满天,长时间暴露在空气中,因而设计一款超智能垃圾桶对于环保有着重要意义。
垃圾它影响着城市的外貌,如果一个城市垃圾桶的外形设计的不够好,简陋的垃圾桶就是一个视觉垃圾,垃圾桶虽小却能折射出一个城市对垃圾处理的重视程度,很多发达国家对垃圾桶的设计出奇、新颖,并注重与环境的融合,对城市的形象有着颇多益处,垃圾桶的外观应该有一定艺术的欣赏性,同时要与环境协调,倡导人们爱护环境。
全国约60%以上的城市被垃圾包围,使我们陷入困境,仅仅城市的垃圾年产量就高达一亿多吨,这不仅影响市容,同时也污染着大气,对人民的健康造成威胁[2]。生活中,如果你想扔垃圾,发现垃圾桶很脏,没有人愿意去打开垃圾桶盖子,为了解决这一问题,我们以垃圾桶为研究对象,进行设计和功能改进。
当今世界人口、资源、环境等协调发展,已经达成共识,由于人口大国资源缺乏,要是让垃圾污染资源,那是万万不能的。保护人民健康,就是创造财富。垃圾滋生细菌,细菌很可能演变成病毒。2019年12月,开始有人出现发热、乏力、干咳临床治疗并没有效果,且易传染。2020年1月23日病毒全面大爆发,我国采取强制措施,陆续实施封城且数据公开透明,人均足不出户抑制疫情的发展,由于感染人数增多我们并没有足够床位,1月23日国家领导人下令即以最快速度建设医院,78分拿到图纸、加速劳动力进场、连夜施工,2月1日凌晨通电,仅十余天一座不可能的医院建造完成,这是中国速度[3]。感染人均治疗费用高达十万余元,这些费用均由国家承担,现如今疫情得到了很好控制,感染者纷纷治愈,但也对国家的经济造成一定损失。现如今全球累计确诊一百三十万人,之后可能还会持续增加,无疑病毒对世界的经济都造成了影响,损失个人以及国家财富。这种情况决不允许再次发生,细节决定成败,智能垃圾桶处理生活细节,避免其发生。
1.2智能垃圾回收装置的现状
国外的垃圾桶在功能上创新有这样几类:
⑴垃圾桶的可伸缩性,即可以根据需求在要求范围内改变垃圾桶的体积,从而使垃圾桶更容易携带。
⑵防止异味散出的设计,采用密封,这样不仅降低垃圾桶的使用寿命,而且增加电力损耗。
⑶垃圾的分类回收,一种基于物联网的移动垃圾桶对垃圾进行分类[4]。智能垃圾分类是个技术含量很高的话题,现如今没有哪个垃圾桶可以不依靠人力自行分类。
国内市场出现的垃圾桶大致分为这样几类:
⑴按钮电动:通常在垃圾桶上会有几个按钮,按其中一个垃圾桶就会自动打开盖子,再按另一个就会关闭盖子,这种设计无非就是靠机械力来减少人力,但是终究还是用手接触,并且普通垃圾桶开盖的力气本身就微不足道。
⑵单纯的红外翻盖式:这种垃圾桶不需要人手直接接触,内部的传感器会根据信号采集自动响应,减少了人的细菌接触,但是其弊端比较费电,一旦垃圾桶开盖,这时候就需要电力不断维持。
合理的智能垃圾桶应该具有性能稳定,使用寿命长,使用方便,操作精准,卫生环保,节能低消耗等优点,为我们健康和城市发展做出最大贡献[5]。
1.3本文主要的研究内容
本文基于光电智能对垃圾桶进行设计与研究。在基于分析现有垃圾桶的基础上,在第二章确定了该系统的硬件使用,确认了STC89C52单片机、空气质量传感器、超声测距传感器、光电传感器等的使用想法。在第三章确定了该系统的主要程序,以保证智能垃圾桶软件的高效运行。最后经多次试验及反复调试达到预期效果。
第2章光电智能垃圾桶的硬件设计
2.1 STC89C52单片机控制模块
图2-1 STC89C52引脚图
2.1.1 STC89C52单片机使用介绍
单片机我们采用了STC89C52单片机,STC89C52单片机其是STC公司产出的一种低功耗、高性能的CMOS8位控制器,它有8K字节系统可编程闪存[6]。STC89C52采取了典型的MCS-51内核,使芯片具有传统51单片机所不具有的功能,进行了稍多改进。STC89C52单片机采用智能8位CPU和系统内可编程闪存,帮助许多嵌入式控制应用系统供应了高度灵活、高效的解决方案。
STC89C52单片机具有以下标准功能:8K字节闪存、512字节Ram、32位I/O端口线、看门狗定时器、内置4KB EEPROM、Max810复位电路、3个16位定时器/计数器、4个外部中断,一种7矢量4级中断结构(与传统的515矢量2级中断结构兼容),全双工串行口。另外,STC89C52还可以简化为0Hz静态逻辑运算,支持两种软件选择节电模式。在空闲状态下,CPU停止运行,允许Ram、定时器或计数器、串行端口和中断继续工作。在断电保护模式下,保存Ram内容,冻结振荡器,单片机的所有工作停止,直到下一次中断或硬件复位。
STC89C52引脚功能简介:
P1口:端口P0是一个双向I/O端口,具有8位开漏。作为输出端口,每个端口可驱动8个TTL逻辑电平。当“1”写入端口P0时,引脚用作高阻抗输入。当访问外层程序和数据存储器的时候,端口P0也被重用为低8位地址或数据。在这个模式下,P0有内部上拉电阻。在flash编程中,端口P0也用于接收指令字节;在其程序验证过程中,输出指令字节,程序验证需外部上拉电阻。
P1口:P1端口是含有内部上拉电阻的8位双向I/O端口。P1输出缓冲器可启动4个TTL逻辑电平。当“1”写入P1端口时,内部上拉电阻器将端口上拉,此时可将其用作输入端口。当用作输入时,由于内阻,从外部下拉的引脚将输出电流(IIL)。
P2口:P2端口是含有内部上拉电阻的8位双向I/O端口。P2输出缓冲器可启动4个TTL逻辑电平。当“1”写入P2端口时,内部上拉电阻器将该端口上拉,此时可以用作输入端口。当用作输入时,由于内阻,从外部下拉的引脚将输出电流(IIL)。
P3口:P3端口是含有内部上拉电阻的8位双向I/O端口。P3输出缓冲器可启动4个TTL逻辑电平。当“1”写入P3端口时,内部上拉电阻器将该端口上拉,此时可用作输入口。当用作输入时,由于内阻,从外部下拉的引脚将输出电流(IIL)。P3端口还用于STC89C52的特殊功能(第二功能),如下表所示在flash编程和验证过程中,P3端口还接收到一些控制信号。
除作为通用I/O口外,P3口还有一些其他复用功能:
引脚替代功能说明
P3.0 RXD串行数据输入
P3.1 TXD串行数据输出
P3.2 INT0外部中断0输入
P3.3 INT1外部中断1输入
P3.4 T0定时器0外部计数输入
P3.5 T1定时器0外部计数输入
P3.6 WR外部RAM写选通输出
P3.7 RD外部RAM读选通输出
图2-2单P3口替代功能
2.1.2 STC89C52单片机电路设计
图2-3单片机最小系统
电源部分:系统电源采用标准3.5mm直流接口输入,稳压后通过线性稳压器7805芯片为电路其它部分供电。为了方便起见,系统还通过一个排针引出输入电源,方便与电缆连接(“2针”为正极)。电路中,电源指示灯LED连接,R2为LED的限流电阻,SW1为电源开关。
图2-4供电部分
复位电路:单片机的设置和复位是将电路初始化到一定的状态。一般来说,单片机的复位电路是将状态机初始化为零状态[7]。在单片机内部,当复位时,单片机将一些寄存器和存储设备加载到制造商的预设值中。单片机复位电路的原理是将单片机复位引脚RST上的电阻和电容相连起来,达成上电复位。当复位水平持续两个以上机器循环时,复位有效。复位电平的延续时间一定要大于单片机的两个工作周期。时间常数可用RC电路计算。复位电路由钥匙复位和上电复位组成。
⑴上电复位:STC89系列单片机和高电平复位,通常在复位引脚上接一个电容器到VCC,再接一个电阻到GND,形成RC充放电电路,保证复位引脚有足够的时间在MCU上电时高电平复位,然后返回低电平,进入正常工作状态。其电阻和电容的值为10K和10uF。
⑵按键复位:按键复位是并联复位电容器上的一个开关。当按下开关时,电容器放电,RST被拉到高位。此外,由于电容器的充电,高电平将保持一段时间以复位MCU。
时钟振荡:时钟是单片机的核心。单片机各功能部分的工作是基于时钟频率的,它工作井然有序。因此,时钟频率直接的影响着单片机的速度,时钟电路的质量直接影响着单片机系统的平稳性。有两种常见的时钟电路:一个是内部时钟电路,另一个是外部时钟电路[8]。
STC89C52采用11.0592Mhz晶体振荡器作为振荡源,因为单片机有内部振荡电路。因此,只有一个晶体振荡器和两个电容器外部连接,电容一般在15pF到50pF之间。
图2-5时钟振荡原理图
2.2语音模块
我们使用WT588D作为语音模块。WT588D语音芯片是一款功能强大的语音MCU芯片,具有反复擦除和写入功能[9]。软件操作方式简单,易于掌握。它集成了语音合成技术,大大缩短了语音编辑时间。一线串行口控制方式可通过代码发送终端控制语音播放、停止、循环播放和音量,或直接触发任何地址为0~219的语音,代码发送速度为600us~2000us;通过发送代码可以切换三线串行口控制模式和三线串行口控制I0端口扩展输出模式。在三线串行口控制模式下,可控制语音播放、停止、循环播放和音量,或直接触发任何0-219地址位的语音。三线串行端口控制I0端口扩展输出可将输出扩展8位。在两种模式之间切换可以使最后一种模式的最后一种状态保持在下一种模式。
图2-6语音模块电路图
2.3太阳能供电模块
太阳能电池板通过吸收光能,将光的辐射能通过光电效应转化为电能。同时,考虑到多晶太阳能电池板的低成本和高性价比,本次设计采用多晶太阳能电池板的设计,以达到更好的性价比。电池储能模块通常由锂电池组成,按规格可分为几种锂电池。常见的是18650块锂电池。太阳能电池板的直接能量不能直接为电池充电。如果直接充电,会损坏电池或降低充电效率。18650电池通常用锂电池管理芯片充电。
图2-7电源系统
2.4超声波测距模块

超声波测距对于环境要求不高,由于穿透力强,可在雨雾天正常工作。因此,在超声波测距电路的设计中采用了HC-SR04型超声波测距模块。该模块有4个插脚,1和4插脚分别接5V电源和接地,2插脚为触发信号的输入端,3插脚为回波信号的输出端,2插脚和3插脚分别接在单片机的p3.4和p3.5上[10]。超声波测距模块的工作原理是:利用单片机的I0口触发测距,即当单片机向超声波模块Trig的输入端发送10us的高电平脉冲时,清除单片机内部定时。当超声波传感器的回波处于高电平时,单片机内部的定时器开始工作;当输出的回波处于低电平时,定时器停止工作,读取定时器至的时间,并通过公式计算距离。
图2-8超声波测距电路图
2.5光电传感器模块
此传感器模块中使用两个并联的RPR220传感器电路。RPR220的四个引脚连接到LM393的正输入端,LM393的负输入端连接到滑动变阻器,滑动变阻器决定负输入端的电压。实际上,+5V电压、R4和U4构成了三极管的最小应用系统。当RPR220检测到光输入时,U4电压约等于0,即LM393的正输入电压为0。因此,LM393的负输入电压大于正输入电压,LM393的输出将输出一个低电平,这样单片机就可以执行程序。相反,当检测不到光时,LM393的正输入电压大于负输入电压,输出电平高,单片机不执行程序。
RPR220是一种集成反射型光电探测器[11]。由于RPR220的塑料透镜,这种传感器具有很高的灵敏度,其内置的可见光滤光片也可以减少杂散光对测量的影响,从而大大降低了检测误差。最后,RPR220光电传感器体积小,结构紧凑,适合放置在垃圾桶外壳的夹层中。
图2-9光电传感器电路图
2.6异味检测模块
本设计采用KQM2800a型空气质量传感器,具有功耗低、使用寿命长、实时调零、自动温湿度补偿、多数据输出、应用简单、响应时间快、恢复时间短、一致性和灵敏度高、适应环境变化等特点,KQM2800a传感器的数据输出接口通过IO分为四级,硬件接口为xh2.54,通信接口与单片机P3.0引脚相连。
图2-10异味检测模块电路图
2.7电机驱动模块
在电机驱动模块中,选择DRV8833作为电机驱动器。直流电机采用单片机输出脉冲信号,并通过驱动器控制电机的正反向动作。以电机驱动器为电机驱动模块的控制中心,通过直流电机的输出端连接DRV8833驱动器的输出端OUT1和OUT2,实现对直流电机的控制。
图2-11电机驱动模块电路图
此外DRV8833是一个双桥驱动器,有2个H桥驱动器,可以驱动两个直流电机,或者一个步进电机。DRV8833具备PWN绕组电流调整/限制,H桥输出的电流1.5A,2A为峰值,工作电压为2.7V-10.8V,为智能垃圾桶提供了良好的解决方案。
第3章光电智能垃圾桶的软件设计
3.1主程序设计
系统通电过后,系统会对每个模块进行初始化。为使超声波测距模块正常运行,完全避开外界的不良因素,设置200ms的延时。延时过后开始计时,达到设定的时间系统会自动喷洒消毒剂。在计时工作的时候,超声测距模块光感模块同时工作,如超声测距模块感应到人与装置小于设置的80cm,电机会转动,之后带有语音播报,如光电检测模块检测到物体,也会语音播报(一号垃圾箱满溢/二号垃圾箱满溢)。
图3-1主程序流程图
3.2超声测距程序设计
图3-2超声测距程序图
超声波测距模块除了可以检测物体是否靠近,还可以在一定范围内测量物体与自身的距离[12]。当MCU向超声波模块触发器的输入端发送一个10us的高电平脉冲时,MCU中的定时器被清除。当超声波传感器输出端的回波位于高电平的时候,单片机其内部的定时器开始运行:当输入端的回波位于低电平的时候,定时器停止运行,识别定时器T0的时间,并使用公式计算距离。
本系统超声波测距子程序如下:
void send_wave()
{c_send=1;
delay();
c_send=0;
TH0=0;
TL0=0;
TR0=0;
flag_hc_value=0;
while(!c_recive)
{flag_time0=TH0*256+TL0;
If((flag_hc_value>1)‖(flag_time0>65000))
{TR0=0;
flag_csb_juli=2;
distance=999;
flag_hc_value=0;
break;}
else
{flag_csb_juli=1;
}}
If(flag_csb_juli==1)
{TR0=0;
distance=TR0;
distance=distance*256+TL0;
distance+=(flag_hc_value*65536);
distance*=0.017;
if(distance>350)
{distance=999;
}}}
第4章系统的控制与测试
4.1系统的控制总体流程
垃圾桶的主控芯片采用STC89C52。为了实现自动开盖功能,引入超声波测距模块检测是否有人扔垃圾,采用光电传感模块检测垃圾桶内垃圾是否装满,异味检测模块用于检测仓内异味浓度。上述三个模块将检测到的信号发送到单片机,单片机经过处理后发送信号。其中,测距模块处理后的信号发送到电机驱动模块,电机驱动模块执行开关盖功能,语音模块接收处理后的异味浓度信号。另外,通过太阳能供电给单片机和电机驱动模块供电。
图4-1系统控制总体流程图
4.2系统的控制和测试
光电智能垃圾桶系统控制程序主要由计算机技术中的C语言编写,并由keil uvisin4实现。其次,将预先编写好的程序输入到智能垃圾桶开发板,实现智能垃圾桶的系统控制。
智能垃圾桶系统设计完成后,需要进行系统控制试验。主要测试内容是人离垃圾桶有多远,垃圾桶会自动打开盖子。首先打开垃圾桶电源2分钟,然后开始测试;其次设置测试次数(不少于15次),根据设定的距离,观察人在距离范围内红外超声波传感器是否有反应;最后整理测试数据,发现问题及时处理。