基于Arduino 的智能绿色垃圾桶的设计
2022-01-08张博马晓元杨维耿放
张博 马晓元 杨维 耿放
河北轨道运输职业技术学院,河北石家庄 052165
0 前言
1 基本思路和设计方案
基于“不接触即可打开垃圾桶盖”和“绿色、环保、再利用”两大目标,设计的智能垃圾桶主要实现超声波、红外人体检测,手机端App 遥控,伺服电机控制,环境温湿度检测等功能。充分回收使用家庭快递包装盒作为垃圾箱垃圾盛装部分,利用票夹、废旧吸管可快速将伺服电机同垃圾桶盖和桶体组合在一起,垃圾装满后可快速换装新的桶体和桶盖,实现家用废旧物品再利用的目的。图1 是按照设计思路制作的一个智能绿色垃圾桶样图。
所设计的智能绿色垃圾桶的主控制器是Arduino[1],这是一款起源于意大利的开源电子设计平台。Arduino 可以驱动多种传感器件感知周围环境,通过Arduino 编程语言,即Arduino IDE 实现对设备的控制。
当使用者移动到距离垃圾桶感应端40 cm 以内范围后,垃圾桶自动打开,延时3 s 后自动闭合。为提升垃圾桶的服务质量,使用者可以通过手机遥控垃圾桶打开,同时会触发手机端App,收到温度湿度数据。
工作模式一:智能绿色垃圾桶主控制模块为Arduino,超声波传感器和红外人体感应模块共同作用,检测到有物体移动到垃圾桶上方一定距离内(设定为40 cm)后,向Arduino 控制模块发送感应信号,Arduino 控制模块触发伺服电机动作打开垃圾桶盖,延迟一定时间后(参考值3 s),垃圾桶盖自动关闭;
工作模式二:智能绿色垃圾桶主控制模块为Arduino,设计手机端控制软件,利用蓝牙模块实现手机和Arduino 的无线通信,手机端软件可以遥控垃圾桶打开,同时通过安装的温湿度传感器实测环境中的温度、湿度数据发给手机端,方便使用者操作。
智能绿色垃圾桶工作流程图如图2 所示。本次设计的智能绿色垃圾桶硬件组成及各模块之间的关系如图3 所示。
2 传感器选用和硬件组合设计
为实现智能绿色垃圾桶的功能,选用如图4所述型号的Arduino UNO 控制模块和传感器件,并对设备进行组装、连线。
在扬中市智慧城市建设中,建设主体除了政府和市场以外应当还有另一个新的建设主体——扬中市民。市民是智慧城市应用领域的主要体验者,中国城市规划设计研究院徐辉教授曾指出:当前的城市建设要以让人民群众享受到城市化的便利为导向,市民决定着城市建设的依据和动力[6]。因此建设过程中应充分发挥扬中市人民群众的智慧,集民智聚民心,真正解决人民问题。
(1)Arduino 开发板[1],型号为Uno R3。Arduino 主控制模块,运行电压:5 V;数字I/O端子:13 个;输出电压:3.3 V/5 V。
Arduino 通过加装的各式传感器件感知外界环境状态,通过控制舵机、LED 灯、开关等装置影响环境。可以使用Arduino 编程语言编写程序,并将编译好的二进制代码文件通过USB 接口烧录到微型控制器内,上述过程操作起来非常方便灵活。
(2)使用RUS-04 超声波传感器和HW-201 红外人体感应传感器冗余配置,提高对人体感应的准确性和可靠性。设置超声波传感器的有效触发距离在2~ 40 cm 之间,为防止侧向物体干扰,感应角度要缩小,通过实践证明,设置感应角度小于15°可以满足需求。
智能绿色垃圾桶通过超声波模块感应物体靠近[2],超声波模块分为发射器和接收器。发射器向外发射超声波,同时内部计时器开始计时,超声波在传播过程中碰到障碍物阻挡会被反射,被反射回的超声波会有部分被接收器捕捉到,计时器会立即停止计时。工程实践证明,在空气中,超声波速度大约为340 m/s,根据计时器两次计时时间差值,可计算出超声波发射点距离反射点的距离S。
其中,S——距离;
V——超声波在空气中传播速度;
t——计时器两次计时时间差值。
RUS-04 超声波模块[3]如图5 所示,有4 个引脚,分别是 Vcc(供电端)、Trig(触发端)、Echo(回波端)、GND(接地端)。触发端是测距引脚,Trig 引脚检测到时长10 μs 以上高电平信号后,触发发送模块,送出8 个40 kHz 脉冲信号,同时接收模块开始检测回波信号。一旦感应到回拨信号,Echo 引脚输出高电平,高电平持续时间就是超声波从发射端发射出去到接收端接收的时间。根据以上原理,可以使用函数pulseIn()获得距离测量的结果,并计算实际距离,程序示例如下:
distance=pulseIn(SignalPin,HIGH)/58.00
红外避障模块HW-20 如图6 所示,配置有红外发射管和红外接收管。发射管发出固定频率的红外线,在空气中传播的红外线受物体阻挡并反射后被接收管接收,经过电路内置比较器电路处理后输出低电平信号,可通过此信号计算出物体距离发送端距离。
为提高垃圾桶感应的有效性和可靠性,综合采用这两个模块进行冗余配置,在软件控制部分,Arduino 主控制器对RUS-04 超声波模块和HW-20 红外避障模块的信号输入进行“与”逻辑运算。
(3)使用如图7 所述SG-90 伺服电机,将SG-90 伺服电机的壳体固定在垃圾桶垂直侧面顶部,将垃圾桶盖固定在SG-90 伺服电机的旋转端子上以控制垃圾桶箱盖的开合。SG-90 伺服电机性能指标如下,重量9 g;无负载速度0.002 s/°(4.8 V) ;旋转扭矩1.2~1.4 kg/cm(4.8 V)。
SG-90 舵机需使用20 ms 时基脉冲进行控制,时基脉冲的高电平部分在0.5~2.5 ms 范围内。如果伺服电机的动作角度是180°,则高电平脉冲持续时长同伺服电机动作角度的关系如表1 所示。这种伺服电机控制方法称为脉冲调制,脉冲持续时长决定了转向器的旋转角度。表1 所举例子只是几个特殊角度,控制高电平持续时间可以使舵机保持角度在0°~180°范围内任一角度。控制系统发出脉冲信号将转向器移动并固定在某一位置后,转向器角度将始终保持不变,直至控制系统发出下一脉冲信号。
表1 高电平脉冲持续时长同伺服电机动作角度关系
(4)通过使用如图8 所述JDY-16 蓝牙模块[4],在手机和垃圾桶之间建立起无线通信,实现数据的双向传递。JDY-16 透传模块是基于蓝牙4.2 协议标准,工作频段为2.4 GHz 范围,调制方式为高斯频移键控(GFSK),理论最大通信距离80 m,支持用户通过AT 命令修改设备名、服务UUID、发射功率、配对密码等指令,方便快捷,使用灵活。JDY-16 蓝牙模块性能指标如下,有效通信距离:80 m;蓝牙版本:4.2;工作温度:-40~80 ℃;通信速率:8 kBytes/s;工作电压:1.8~3.3 V。
(5)配置如图9 所述DHT-11 温度湿度传感器,增加智能垃圾桶服务内容。DHT11 数字温湿度传感器是一种性能稳定,被广泛使用的温度湿度复合传感器。传感器内部有电阻式湿度感应元件和一个NTC 温度感应元件。DHT11 具有测温、测湿数据响应快,校准温湿度数据抗干扰能力强等优点。
(6)开发手机端控制软件,可以遥控垃圾桶。手机端采用AI2 制作安卓应用程序,AI2 是一个可视化的安卓应用制作平台[5]。如图10 所示,用户使用浏览器打开 AI2 平台网站,通过拖拽组件完成界面设计,通过编写程序实现逻辑功能块,完成安卓应用的制作并下载到手机,手机端App 操作界面如图11 所示。
各组成模块间的关系见图12 设备硬件连接示意图,供电模块为Arduino 提供工作电能,其他设备通过Arduino 上的供电端口获取电能。设备正常工作时,假若有移动的物体靠近感应端,超声波传感器和红外避障模块综合判断并将判断结果发送给Arduino控制板,Arduino 控制板发送动作命令给伺服电机,伺服电机带动垃圾桶盖打开,3 秒后自动关闭。如果手机端App 打开并同蓝牙通信模块建立通信,可以通过手机App 发送打开信号给蓝牙模块,蓝牙模块将收到的信号通过串口传输给Arduino控制板,Arduino 控制板控制伺服电机动作打开垃圾桶盖,同时,Arduino 控制板采集温度、湿度传感器的温湿度数据并通过串口和蓝牙通信模块发送到手机端。
3 智能绿色垃圾桶软件逻辑实现
Arduino 平台使用C/C++语言编写程序,所谓的Arduino 语言是由底层单片机支持库进行二次封装后形成的,是Arduino 核心库文件提供的各种应用程序编程接口(API)的集合。
智能绿色垃圾桶软件逻辑流程图如图13 所示。一个程序流程开始后,第一步进行数据初始化,首先判断串口缓存区是否有数据:如果有数据,则说明当前是在手机App 控制模式,进一步判断当前接收到的是“OPEN”打开指令还是“CLOSE”关闭指令,根据指令不同输出驱动伺服电机打开或者关闭垃圾桶盖子;如果串口缓存区没有数据,说明当前是垃圾桶自动感应模式,将超声波传感器和红外避障模块测量是否有物体靠近的结果取“与”运算,综合判断物体靠近与否,如果确有物体靠近,则驱动伺服电机打开盖子,延迟3 s 后驱动伺服电机关闭盖子。
4 总结
通过在Arduino 平台的硬件连接和软件设计,实现了两种工况下垃圾桶的控制。第一种工况是普通模式,垃圾桶通过超声波传感器和红外传感器感应物体靠近或离开后,自动打开和关闭盖子;第二种工况是遥控模式,使用手机遥控垃圾桶打开和关闭,在App Inventor 2 平台编写手机端控制软件(App),通过蓝牙模块建立手机和垃圾桶间通信。下一步计划加装垃圾桶运动模块,实现垃圾桶自动避障,手机端遥控垃圾桶运动等功能。