刘西阁
(常州信息职业技术学院软件与大数据学院,江苏常州,213164)
垃圾污染问题是当今城市环境卫生最重要的问题之一,随着时代的发展,城市规模越来越大,城镇化人口也越来越多,城市生活垃圾数量也随之在迅速增加,垃圾的及时清理就显得特别重要。另外2019年6月,住建部、发改委、生态环境部等九部门联合印发《住房和城乡建设部等部门关于在全国地级及以上城市全面开展生活垃圾分类工作的通知》,提出自2019年起在全国地级及以上城市全面启动生活垃圾分类工作,垃圾分类回收是实现垃圾再利用,建立绿色循环经济的关键[1]。
智能垃圾箱的种类各式各样,有感应式垃圾箱、自动压缩式垃圾箱、分类式垃圾箱[2]。目前国内的研究主要集中在自动翻盖[3]、语音播报、满溢检测[4]、智能分类[5-6]功能,有的还加入了太阳能供电功能[7]。为了研发功能更全面、使用更方便、设计更合理的垃圾箱,本文结合云平台,利用STM32单片机设计了一款智能回收垃圾箱,具有分类回收、满溢报警、实时监控、用户识别等功能。
本设计以STM32单片机为核心芯片,根据功能要求,外围扩展光电传感器、温湿度传感器、称重传感器、GPS、GPRS、语音播报等模块,系统总体框架如图1所示,单片机通过GPRS和云平台建立远程连接,相互之间进行数据上报和指令下发,云平台上能实时显示垃圾箱相关信息供用户查询。垃圾箱实现的功能有垃圾投放用户识别、分类投放、环境监测、满溢报警、重量监测、位置定位。
图1 系统总体框架图
本系统选用的单片机型号为STM32F103ZET6,该芯片是一款性能较高,功耗较低的大容量增强型单片机,共有112个通用IO口、3个SPI、2个I2C、5个串口等多个通信接口,可以外接扩展设备,符合本设计外接多个模块的要求。
晶体振荡器电路的作用是给系统提供基本时钟信号,本系统包含两部分晶振电路,如图2所示,OSC接外部高速晶振8MHz,用来产生高速外部用户时钟,OSC32接外部低速晶振32.768Hz,用来产生低速外部用户时钟。
图2 晶振电路图
晶振电路主要由两个15pF负载电容和晶体振荡器组成,晶体振荡器为系统提供参考频率,负载电容的变化会使两端电压不同从而导致晶体振荡器所产生的正弦波不是完全对称,因而本次应用两个15pF的负载电容。
GPRS模块采用的是Air202型号,其为四频段GSM/GPRS模块,采用的是RDA8955平台。内置32Mb NorFlash和32Mb SRAM,支持三种开发模式:Lua脚本开发模式,AT命令开发模式以及C语言SDK开发模式。Air202有丰富的外围接口,可支持最多16个GPIO,并支持ADC、音频输入和输出功能,且具有省电模式。本设计选用单片机的串口1和Air202数据通信,将Air202模块的UART1_TXD和UART1_RXD接口与单片机的PA9和PA10两个引脚相连,除了电源和接地引脚外,其他没有用到的管脚悬空,如图3所示。
图3 Air202模块图
GPS定位模块选用的是Air530,该模块是一款高性能,高集成度的多模卫星定位导航模块,硬件上采用了射频基带一体化设计,集成了DC/DC、LDO、LNA、射频前端、基带处理、32位RISC CPU、RAM、FLASH存储、RTC和电源管理等功能。GPS定位模块,方便清理人员能快速的找到满溢的垃圾箱,提高清理人员清理的效率。该模块共有四个引脚,和单片机的串口2相连,具体连接方式为1脚接电源,2脚接单片机的PA2端口,3脚接单片机的PA3端口,4脚接地,如图4所示。
图4 Air530模块图
满溢检测采用E18-D80NK光电传感器,发射与接收集成在一起,发射出的红外线是由发射头经处理后发出,接收发射回来的红外线也需要接受头进行解调处理才可以输出,用于垃圾箱满溢状态检测,该模块DO数字信号引脚和单片机PA8接口相连。
温湿度传感器采用SHT10,它是一款用数字信号输出的复合型传感器,此传感器可以进行相对湿度和温度的测量。该模块共有四个引脚,1脚和4脚分别连接GND和5V电源,2脚和3脚为数据引脚和时钟引脚,分别连接单片机的PD9和PD8接口,具体如图5所示。
图5 SHT10温湿度模块图
垃圾称重模块采用HX711模块+5kg压力传感器,HX711是一款高精度的测重24位A/D转化器芯片。称重模块的数据引脚和时钟引脚分别连接单片机的PE2和PE3接口。
语音模块采用JQ6500语音芯片,外加一个扬声器。芯片共有24个管脚,采用SSOP塑料进行封装,芯片内部集成了一个微型控制器和一个音频数字信号处理器。其中数据收发引脚连接单片机的PD2和PC12即串口5,SPK+和SPK-引脚连接喇叭用于语音播放,具体连接如图6所示。
图6 JQ6500语音模块图
扫描枪采用的是CP2100,这是一种便携性高,性能好,高集成度,高稳定性的嵌入式二维码通信模块。该模块共有5个引脚,数据通信引脚连接单片机串口4(PC10和PC11)。
垃圾箱需定期将环境信息和定位信息发送到云平台,方便垃圾箱管理者做出决策。程序中首先通过设备序列号和云平台建立连接,如果连接成功,将相应TLINK_DATA_LINK标志位置位,采集垃圾箱相关数据,并按照规定的数据格式(M,重量,满溢,温度,湿度,GPS定位,E)封装,每隔30秒通过GPRS模块上报云平台,数据采集上报的程序流程图如图7所示。
图7 数据采集上报流程图
GPS定位信息采集要先设置Air530模块的工作模式,该模块支持NMEA协议,单片机按GKC接口数据格式向其发送配置命令,设置模块上报定位消息时间间隔和上报数据内容。当收到GPS消息后,判断定位数据内容是否有效、数据格式是否正确,并将定位消息存入特定变量,GPS定位信息采集流程图如图8所示。
图8 GPS定位信息采集流程图
对于垃圾投放者,垃圾箱需进行智能提示协助完成垃圾分类投放,通过用户的手机号或二维码识别垃圾投放者身份,先检测手机号或二维码是否合法,然后利用语音播报提示用户进行选择,根据用户选择打开相应的垃圾箱实现分类投放,流程图如图9所示。
图9 用户交互流程图
本项目云平台选用的是TLINK平台,一种免费开放的物联网设备连接平台,平台上可以根据项目需要添加监控的设备,设备创建完成后,可在监控中心查看每个设备的实时数据、连接状态、数据更新时间等信息,因此该平台功能完全满足本项目对垃圾箱远程监控的需求。
创建设备需要先明确设备的功能和参数,根据项目需求分析可知,云平台上需要创建有温度、湿度、满载、称重和定位功能的设备,创建设备的流程为:
(1)添加设备定义设备名称,本设计的设备名称为智能二分类回收箱。
(2)选择连接协议,本设计选用TCP传输协议,该协议具有顺序控制、重发控制等机制,保证传输数据的正确性。
(3)添加传感器,根据项目需求,给设备添加温度、湿度、满载、重量和定位五个传感器。温湿度数据保留一位小数,总重量保留零位小数,满载状态用0、1来表示,定位传感器为定位型数值。
(4)位置信息,添加一个地理位置给设备,可以通过搜索查询到需要的经纬度信息。
(5)设置数据格式,平台通过协议标签的组合来解析数据包,在协议标签中设置规范的数据格式,这样平台才能够准确接收并正确解析到设备上传的数据。一个完整的协议标签要严格按照规范,依次是数据头标签,分隔符标签,数据标签,以及结束符标签。
创建完成后的设备界面如图10所示。
图10 云平台监测界面
硬件和软件设计完成之后,需要对系统进行功能测试,搭建硬件测试环境如图11所示,将软件程序代码下载到STM32单片机,按照系统方案里要实现的功能点进行验证,具体的测试内容包括:
图11 智能垃圾箱测试系统
(1)数据上报:云平台上能实时监测到上报的温湿度、重量、满载和定位信息。改变垃圾箱实际环境,云平台监测数据会随着环境的改变而变化。
(2)用户识别:能通过扫描二维码和输入手机号进行投放用户识别,并根据用户的选择打开相应垃圾回收箱的控制门进行垃圾分类投放。
(3)语音播报:用户操作时除了显示屏显示提示信息外,语音模块应能正常播报相应提示内容。
智能回收垃圾箱在美化城市环境卫生上具有举足轻重的作用,本设计以STM32为核心芯片,实现了垃圾箱信息监测、用户识别、分类投放功能。但系统功能还可以再继续改进,比如增加用户积分、垃圾自动分类等。