朱效恒,禹素萍,许武军,范 红
(东华大学信息科学与技术学院,上海 201620)
互联网的云计算、云存储、数据库等技术极大促进了物联网监测技术的发展,智能垃圾监测系统得到开发及应用。Aazam 等提出一种基于云的智能垃圾管理系统。该系统垃圾箱内嵌有传感器,可以监视垃圾箱内部信息,将垃圾箱数据传到云端;Babyc 等提出一种智能垃圾报警系统,使用“机器学习”概念收集特定区域垃圾生成数据,对产生的垃圾量进行预测;Minhaz 等提出一种基于智能物联网的集成系统。该系统以Arduino 作为控制器,传感器用于识别和测量垃圾数据,系统可连续监测垃圾桶数据并通过LCD 显示屏显示百分比,使用GSM 模块通知相应人员收集垃圾;于芳等提出一种基于安卓的智能车载垃圾桶实时监测系统。该系统由STC89C52 单片机作为主控制器,桶内连接传感器,实现异味监测、蜂鸣器报警、积液监测、紫外线杀菌等功能。该系统可通过APP 实时监测,通过蓝牙模块控制系统的满溢提醒模块和紫外线消毒模块;刘欣雨等提出一种基于STM32 单片机的垃圾分类回收监测系统。该系统采用STM32 处理器,控制重力传感模块和语音播报模块。重力模块负责垃圾箱的称重,语音模块对错误垃圾行为给予建议。通过ZigBee 协议将数据传输到上位机模块,通过上位机查看垃圾分布、垃圾容量等数据,实时监控垃圾站工作情况。
近年垃圾分类在我国备受重视,促进了智能垃圾设备研究。张林等提出一种基于STM32 的智能垃圾桶,该垃圾桶具有语音识别、挥手开盖、障碍躲避和打扫等功能;王科举等提出一种基于树莓派和Arduino 的智能垃圾桶,该垃圾桶结合yolov3-tiny 深度学习模型识别分类垃圾;徐爱兰等提出一种基于NB-IOT 的垃圾满溢监测结点设计,该系统利用超声波测量垃圾桶内垃圾容量,通过NB-IOT将告警信息传送至云服务端,方便工作人员对垃圾桶管理;丁小伟等进行智能垃圾设备设计,该设备采用STC89C51 作为控制器,人体感应自动开盖,具有温度监测及报警功能,可通过APP 控制智能垃圾桶;刘鹏等提出一种基于语音交互功能的智能分类垃圾箱,该垃圾箱以Arduino 作为控制器,LD3320 语音模块作为人机语音交互功能和语音识别播报系统,实现垃圾桶的开合、倾倒和自动打包功能。2019 年底新冠肺炎疫情给我国卫生体系带来了巨大挑战,智能垃圾分类设备和基于物联网技术的监测系统需要进一步整合,以保障公共卫生安全。
但以上方法均未在垃圾监测系统能耗上进行研究,未进行基于微信小程序的垃圾桶监测设计。在前述研究基础上,本文结合树莓派、传感器技术、微信小程序、Onenet 等技术,采用国产USB 北斗接收机三模GNSS 替代GPS 作为定位模块,并采用轻量级微信小程序替代传统的手机APP 软件作为垃圾设备监测端,实现数据折线图显示,通过微信报警实时通知工作人员。
如图1 所示,垃圾分类监测系统核心模块包括智能垃圾桶采集端、云服务器端、微信小程序监测端。智能垃圾桶采集端包含若干个垃圾收集设备子系统,每个垃圾收集设备子系统有4个垃圾桶,分别是可回收垃圾桶、干垃圾桶、湿垃圾桶和有害垃圾桶。
Fig.1 System structure图1 系统结构
子系统硬件结构如图2 所示,垃圾收集子系统以树莓派3B+作为主板,包含人体红外感应器模块、满溢检测模块、防火检测模块、位置定位模块、杀菌消毒模块、供电模块。微信小程序数据实时监测端包含实时数据监测模块、实时报警模块、报警历史信息模块和个人信息模块。云服务器数据存储端负责系统的数据存储与中转,作为数据采集端和数据监测端的桥梁。
Fig.2 Subsystem hardware structure图2 子系统硬件结构
以树莓派3B+作为主控制器,控制智能垃圾桶端实现命令信息发送,各个模块自上而下运行,实现垃圾分类并获取垃圾桶内部数据信息,工作流程如图3 所示。
Fig.3 Work flow of intelligent garbage equipment图3 智能垃圾设备工作流程
(1)人体红外感应模块。出于节能和防止语音垃圾桶误操作考虑,在没有人投放垃圾时,语音模块系统进入自动休眠状态。当有人靠近垃圾桶一定距离时,通过人体红外传感器感应,系统启动进入工作状态,语音模块启动,垃圾桶进入正常工作状态。该模块采用HC-SR501 人体红外传感器,工作电压为直流5~20V、感应范围锥角小于120°、距离小于7m,传感器有3个引脚:VCC、GND 和DATA。
(2)语音控制模块。为预防垃圾桶作为中介带来病菌交叉感染,设计用户在投放垃圾时不需要用手打开垃圾桶。采用LD3320 语音模块,通过语音控制舵机旋转打开垃圾桶投放口。为节省能耗,方便树莓派模块休眠又不影响垃圾桶工作,采用语音模块微控制器Arduino。LD3320语音模块工作电压为直流3~5V,模块的引脚分别是VCC、GND、CLK、DO、DI、CS、RST 和IRQ。模块通过控制舵机打开垃圾桶盖,180 度SG90 舵机控制垃圾桶盖开合,舵机电压工作范围为直流4.8V-6V,通过PWM 控制特定角度旋转,舵机有3个引脚:VCC,GND 和OUT。
(3)满溢检测模块。垃圾桶满溢监测设计自动测量垃圾桶内垃圾容量,当垃圾量没有超过设定值时正常工作,当垃圾容量超过设定值后垃圾箱的满溢指示灯点亮,采用HC-SR04 超声波传感器自动将垃圾桶容量信息和满溢信息上传至云服务器。其工作电压为直流5V,探测距离小于4.5m,精度0.2cm。超声波模块的引脚为VCC、Trig、Echo、GND。
(4)防火检测模块。桶内高温或在桶内错投未熄灭的烟蒂,很容易引发桶内火灾。从防火安全和保护元器件考虑,当桶内温度超过50°C 时防火提示灯点亮,并将数据上传。模块采用DS18B20 温度传感器,电压范围为直流3.0~5.5V,温度范围-55~+125°C,在-10~85°C 时精度为±0.5°C。传感器的引脚为VCC、GND 和OUT。
(5)位置定位模块。垃圾桶位置安放会不断调整,因此垃圾桶安放点具有不确定性。为每个子系统安装定位模块,垃圾桶报警通知,保洁人员可通过地图进行定位找到对应垃圾桶,进行相关处理。此模块采用USB 北斗接收机三模GNSS 定位模块。USB 接口树莓派可以免驱动,支持BDS、GPS 和GLONASS 系统,定位精度为2.5m。
(6)消毒杀菌模块。2019 年底新型冠状肺炎爆发,公共卫生安全引起人们高度重视。为防止病毒和细菌滋生,在垃圾桶内安装了紫外线灯,每12个小时杀毒消毒模块工作半小时。该模块通过继电器控制消毒灯开关进行定时杀菌消毒工作,采用LED 紫外线杀菌UV 灯,工作电压12V。
(7)供电模块。树莓派输出电压有3.3V 和5V 两种电压,无法满足高于5V 的电压以及多元器件负载,有必要设计一个独立供电模块,负责树莓派供电以及其它元器件供电。在无人投放垃圾时树莓派进入休眠状态,防止满溢模块、防火模块等损耗电能。为了依据现实情况便捷移动垃圾设备,供电模块采用太阳能电池板供电。
垃圾设备监测系统移动端大多采用电脑上位机Web网页端或手机APP 程序。近年微信用户发展很快,手机移动端一般都安装有微信软件。微信小程序具有开发简单、使用便捷的优势。
(1)应用程序文件结构。应用程序主要使用的技术有JS(Javascript)、JSON、和WXSS。.js 文件应用程序是逻辑文件,.json 文件应用程序是配置文件,.wxss 应用程序是定义公共样式。应用程序主要由实时数据、实时报警、报警历史和个人信息4个页面组成,程序文件目录结构描述如表1所示,该程序的重要代码模块说明如表2 所示。
Table 1 Application file directory structure表1 应用程序文件目录结构
Table 2 Important code description表2 重要代码说明
(2)小程序与云服务器数据交互。小程序端调用wx.login()方法获取到当前用户代码,传给服务器。Wx.request 发起HTTPS 网络请求,GET 方法获得云服务器数据,POST 方法发送数据到云服务器,传输数据是String 类型。通过统一资源定位器(Uniform Resource Locator,URL)和API-KEY 获取云服务器数据。
(3)实时数据和报警历史界面。调用wx-charts 应用程序图形,它基于canvas 绘制,具有体积小的优点,支持饼图、线图、柱状图、区域图等图表类型。实时数据页面显示垃圾设备的温度和容量折线图,报警历史界面柱状图显示调取云服务器的温度、满溢报警次数。
(4)实时报警页面。实时报警页面显示报警模块信息。从云服务器获取到报警信号后,在页面显示垃圾设备类型。微信用户通过appid 和seret 连接微信接口,报警信息通过微信接口实时发送报警信息到指定微信用户。
(5)个人信息页面。注册页面,在WeUi 基础样式库找到对应样式,使用input 实现输入框。个人信息页面与注册页面布局相似,通过注册页面输入生成如姓名、手机号等信息。在相应的JavaScript 文件的data 数组定义变量userinfo。Userinfo 的值通过后台需求访问,获取用户信息并保存在本地,通过onload()函数从本地读取赋值。
收集硬件端垃圾桶的数据信息,负责储存数据,起到数据中转站的作用。
(1)创建产品。选择http 协议传输数据,平台侧提供以下功能:存储设备上报的数据点,提供API 接口实现设备管理,提供数据推送到应用;登录注册中国移动物联网平台,进入平台选择控制台的多协议接入选项,创建产品;添加产品参数,如表3 所示。
Table 3 Adding product information表3 添加产品信息
(2)添加设备。每个产品对应多个设备,通过设备设置数据流,用于接收垃圾箱采集端的各种数据。本文以一个智能垃圾设备(1 号智能垃圾设备,鉴权信息为smartnumber1)为例进行阐述,其它垃圾设备设置同理。
(3)添加数据模板。为收集智能垃圾采集端的数据,在创建设备中添加数据流模板。该智能垃圾监测系统主要对垃圾桶内温度、垃圾容量、温度报警次数、满溢报警次数、故障报警次数、位置经纬度、杀菌消毒次数等信息进行采集。数据模板如表4 所示。
Table 4 Data template表4 数据模板
如图4-图7 所示,在“实时数据显示”页面中,折线图查看垃圾设备内4个桶的温度和容量信息;在“实时报警信息”页面中,依次可以看到温度报警模块、满溢报警模块和故障报警模块信息;在“报警历史信息”页面中,柱状图显示满溢和防火报警情况,以此观察报警次数,柱状图显示“1”代表某个时间报警信息,不显示则为正常工作;在“个人信息页面”可以查看用户的微信头像、姓名、手机号、性别、工作区域、工号、入职年份等信息。
Fig.4 Real-time data page图4 实时数据页面
Fig.5 Real-time alarm page图5 实时报警页面
Fig.6 Alarm history page图6 报警历史页面
Fig.7 Personal information page图7 个人信息页面
为配合垃圾分类政策,贯彻现代社会绿色可持续发展理念,本文利用物联网和互联网各自的优势,依靠数据采集和分析合理分配资源,结合微信小程序、云服务器等互联网技术,设计了一种智能垃圾设备监测系统。采用树莓派和Arduino 双控制板,Arduino 控制树莓派的独立电源,达到节省能耗的目的。本文还设计了一款协助保洁人员管理垃圾设备和收集垃圾的微信小程序,直观显示采集数据的动态信息,可直接查看报警信息。后续工作是将系统优化,增加后台管理平台,利用大数据处理技术分析垃圾设备数据,使垃圾设备分布更加合理,配合保洁人员更加高效地进行垃圾分类,提高设备利用效率。