基于4G和微信平台的社区垃圾回收系统

时间:2022-08-11 10:18:52

基于4G和微信平台的社区垃圾回收系统

摘 要:为实现智慧社区的垃圾循环利用,培养居民的环保意识,文中提出了一个基于STM32微控制器的垃圾回收系统,该系统具有称重、扫描二维码、满溢报警以及显示等功能。采用4G模块USR-LTE-7S4通过HTTP协议与微信公众平台通信,系统结合网络时间生成随机字符串,并采用SHA-1安全哈希算法生成签名,保证数据传输的安全性。试验表明,该系统成本低,能够长期稳定运行,值得应用和推广。

关键词:垃圾回收系统;STM32;USR-LTE-7S4;微信公众平台;HTTP;SHA-1

中图分类号:TP23 文献标识码:A 文章编号:2095-1302(2017)06-00-04

0 引 言

传统社区大多采用垃圾桶进行垃圾回收,存在着垃圾分类难、再生资源循环利用率低、垃圾满时得不到及时清理、人工维护成本高等诸多弊端[1]。

随着物联网技术的发展,为推动垃圾分类、改善社区环境,国内很多社区已开始陆续尝试垃圾智慧回收解决方案[2]。但这些垃圾回收系统均存在成本高昂、功能单一以及使用场景受限等问题。为解决以上问题,本文基于4G模块以及微信公众平台(以下简称“平台”)设计了一套垃圾回收系统。用户先使用系统的二维码扫描枪对垃圾袋上的二维码进行扫描,然后通过按键选择垃圾种类,系统对垃圾称重后,通过4G模块将信息上传到平台,平台返回用户姓名和积分等信息并用液晶模块显示。系统检测到垃圾满时,自动向平台报警,通知工作人员回收。该系统成本极低,可扩展性强,满足了大多数社区的使用场景。

1 系统结构

系统以STM32F103C4T6为主控芯片(以下简称“MCU”)。整体结构如图1所示,各模块的功能如下所示:

(1)称重模块:测量回收的垃圾重量,通过4G模块将信息上传到平台。

(2)满溢检测模块:检测垃圾是否已经堆满,若堆满则通过蜂鸣器提醒用户,并通过4G模块向平台报警。

(3)二维码扫描模块:扫描垃圾袋上的二维码,获取用户身份信息,并通过4G模块上传到平台。

(4)显示模块:显示操作提示信息、用户相关信息以及系统异常信息。

(5)4G模块:连接系统和平台,将垃圾重量、种类和二维码上传到平台,然后接收平台返回的用户信息及异常信息。

(6)电源模块:为系统供电,使系统能够独立运行。

(7)其他模块:蜂鸣器,产生提示音和报警音;按键,用来选择垃圾种类。

2 硬件系统设计

2.1 称重模块

称重模块由压力传感器及A/D转换芯片构成,原理图如图2所示。

压力传感器采用JHBL悬臂式传感器,由上下各两片应变片组成桥式电路,输出电压与受到压力线性相关。桥式电路能有效消除共模干扰,提高灵敏度[3]。

A/D转换芯片采用24位精度的HX711,片内集成稳压电源和时钟振荡器,可靠性高;采用差分输入,具有高达128增益的低噪声放大器,采用串行通信协议,其输出速率高达80Hz[4]。

2.2 满溢检测模块

采用一对红外发射与接收管检测系统状态,具有成本低,安装方便,抗干扰好等优点。发射管发射红外线,遇到垃圾被反射回来,接收管接收到时电阻发生变化,输出电压经LM393比较器后输出低电平,采用外部中断方式检测。可通过电位器调节检测范围(3~80 cm),检测角度为30°。

2.3 二维码扫描模块

虽然摄像头成本较低,硬件电路也越来越集成化,但二维码解码涉及图像处理,不仅消耗大量内存资源,且算法复杂,运算量大。本系统选用的MCU的RAM为6 KB,CPU的主频为72 MHz[5],无法实现稳定、高效的解码工作。因此选用ST2200二维码扫描模块,其内部采用激光头对二维码进行扫描并识别,识别结果以ASCII码通过串口发送至MCU。采用5 V电源供电,无需驱动程序,配置简单,可进行连续的、多种二维码的扫描。不工作时进入休眠状态,以降低功耗。

2.4 其他模块

采用LCD12864作为显示模块,分辨率为128×64,内置16点阵的汉字字库。采用5 V供电,将PSB引脚接地,通过串行模式连接MCU。

按键作为输入,连接MCU的PA4和PA5,按下输出低电平触发MCU外部中断。通过MCU的PA0控制作为输出的蜂鸣器,高电平有效。

2.5 4G模块

为适应多种使用环境,采用4G模块通信。USR-LTE-7S4(以下简称“4G模块”)是一款基于嵌入式Linux系统研发的串口转4G透明传输模块,将MCU输入的串口数据通过4G网络发送,接收返回数据解析为串口数据输出给MCU。集成SIM卡功能,支持联通、移动、电信4G及联通3G和2G网络。通过AT指令配置工作参数,支持自定义注册包、心跳包功能,具有4路Socket连接,支持FTP更新和自更新协议[6]。具有两种工作模式:网络透传模式将串口数据封装为TCP或UDP数据,支持长连接和短连接;HTTPD模式则将串口数据组包为HTTP数据包发送。

考虑平台业务的可扩展性和通信的安全性,选择HTTPD模式;HTTP数据包相较于TCP/UDP数据包长度更大,故采用TDD-LTE网络,其下传输速率能达到下行150 Mb/s,上行速度50 Mb/s,满足系统的实时性要求。

4G模块采用5 V电源供电,串口工作电压为3.3 V,可直接与MCU连接。外接SMA接口的全频段吸盘天线,增益为8 dB。模块采用LED显示工作状态,指示灯引脚LINKA/LINKB、WORK、NET分别为网络连接状B、工作状态和网络状态指示输出。

模块的连接示意图如图3所示。

2.6 电源模块

本系y选用的所有模块均采用5 V电源供电,各模块的工作电流见表1所列。

本系统采用12 V锂电池作为电源。稳压电路采用TI的LM2576开关稳压电源,具有3 A的负载驱动能力,完全满足系统运行所需电流;电压调整率和电流调整率都很小,内置过热保护电路和过流保护电路,确保系统稳定运行;相较于线性稳压源,LM2576效率更高,能提供更长的续航时间[7]。

3 软件系统设计

3.1 微信公众平台

平台一方面处理垃圾桶发送的HTTP请求,并返回数据给垃圾桶,另一方面向用户提供垃圾回收的相关服务,包括二维码领取、回收消息提醒、积分管理和意见反馈等。用户需要关注公众号,绑定手机并完善相关信息。根据用户角色的不同,系统分配了不同的权限,普通用户只能接收回收消息提醒,而管理员则可查看垃圾回收的详细信息,处理垃圾桶满溢报警等。平台接受垃圾桶发送的HTTP请求字段见表2所列。

平台返回给垃圾桶的数据格式如下,其中内的内容为必填,[]中的内容为可选,以逗号作为分隔符,即

,,[用户姓名],[返还金额]

主要有以下5种返回数据:

(1)0,成功,张三,0.5元:表示投放成功,用户名为张三,返还金额为0.5元;

(2)0,成功:满溢报警成功;

(3)-1,签名失败:签名不正确;

(4)-2,签名重复:随机字符串与之前的重复;

(5)-3,用户不存在:无该用户信息。

3.2 系统软件实现

软件整体流程图如图4所示。

3.2.1 系统初始化

系统初始化包括液晶、蜂鸣器、红外对管、称重模块、串口、外部中断和定时器的初始化。初始化完成后,用户按下垃圾投放按钮,手动选择垃圾种类,随后进行二维码扫描、称重,最后将二维码信息、垃圾种类和垃圾重量通过HTTP发送到平台,平台返回处理结果,并通过液晶显示。另一方面,当垃圾桶满时,红外对管输出低电平,触发外部中断,此时蜂鸣器响,并将满溢报警信息发送至平台。

3.2.2 二维码扫描

ST2200自动扫描二维码,扫描结果为字符串形式,以回车符(0x0D)结尾,通过串口发送到MCU。采用USART1中断接收,当检测到回车符且100 ms内未接收到其他字符时则发送结束,并存储二维码信息。

3.2.3 称重

HX711通过串行接口与MCU连接,读取重量时,先将时钟引脚拉低,使能AD,然后查询数据引脚,当其为低电平时,转换结束。随后控制时钟引脚发送一个脉冲并读取数据引脚,完成1 b的读取,连续读取24次后得到转换结果。转换结果最后通过线性变换得到真实重量。称重时,连续读取重量,当相邻几次平均变化小于5 g时,完成称重。

3.2.4 HTTP请求

完成一次HTTP请求的过程如图5所示。

由于SHA1算法要求原始数据具有防冲突性,即每次发送的随机字符串不重复。通常产生随机数采用rand函数,首先调用srand函数初始化随机数种子,当随机数种子相同时,会导致rand函数产生的随机数为固定序列,因而产生的是伪随机数[8],无法满足要求。为产生不重复的随机字符串,采用以下方法:

(1)向平台发送请求,获取当前网络时间,系统返回时间字符串如20161220132748,取后10个字符为1220132748,记为St;

(2)采用rand函数连续产生6个随机数,查找随机数对应的ASCII字符,得到6个字符,将St与之结合得到随机字符串。由于随机字符串包含了当前时间,即使rand函数具有相同的随机数种子,也能得到不重复的随机字符串。

3.2.5 签名参数

签名参数包含ticket和随机字符串。ticket为4G模块与平台通信的临时票据,为避免频繁刷新,简化流程,采用用户自定义的固定ticket,长度为86个字符。将ticket和随机字符串(nonceStr)采用字典序排序,最后加上请求的URL,中间用“&”连接。

3.2.6 SHA-1

为保证通信的安全性,采用SHA-1加密算法对上述字符串加密,得到20个字节的签名(signature)。SHA-1是一种散列算法,能将任意长度的信息映射为固定长度的唯一值,散列值和原始信息一一对应。其加密性强,不可逆,无法通过散列结果推出原始信息[9]。

用M表示原始信息,其长度为n b,哈希值分别为H0、H1…H5,每个值为32 b。ROTLk表示左移k位。SHA-1算法流程如下:

SHA-1预处理

(1)补充消息:将M转换为二进制,然后添加1个二进制“1”和k个二进制“0”,使得n+1+k448mod512,最后添加64 b的消息长度信息;

(2)消息分块:将消息分为N个512 b的数据块,记为M(1)、M(2)…M(N),每个数据块可分为16个32 b的小数据块,记为M0(i)、M1(i)...M15(i);

(3)哈希值初始化:参照SHA-1标准,初始化H0、H1…H5的值,记为H0(0)、H1(0)…H5(0);

4 仿真和实验

首先采用Http Requester代替4G模块向平台发送POST请求,以验证在各种情况下平台返回的数据是否正确,如图6所示。测试投放塑料瓶,平台返回数据,其中包含用户姓名、投放垃圾类型以及返还金额。

最后进行系统测试,分别测试满溢报警以及投放纸质垃圾,液晶显示如图7(a)所示,平台推送消息如图7(b)所示。

5 结 语

为推动智慧社区的垃圾分类,基于STM32设计了一套垃圾回收系统,采用4G模块通信,使得该系统可适应不同的使用环境。采用微信公众平台提供服务,向用户反馈垃圾回收信息。相对于现有的垃圾回收系统成本低,适用场景广,具有友好的人机接口和报警机制,值得应用和推广。

参考文献

[1]邓俊,徐琬莹,周传斌.北京市社区生活垃圾分类收集实效调查及其长效管理机制研究[J].环境科学,2013, 34(1):395-400.

[2]佚名.北京:“垃圾智慧分类”进社区[J].城乡建设, 2016(1):38.

[3]王来志,王小平.基于电阻应变片式传感器的电子秤设计[J].物联网技术,2014,4(2):58-60.

[4]海芯科技.HX711电子秤专用模拟/数字(A/D)转换器芯片[R]. 2011.

[5] ST Microelectronics Corporation.STM32x4/STM32x6 Datasheet[Z].2010.

[6]济南有人物联网技术有限公司.USR-LTE-7S4 V1.0.5[Z].2016.

[7] Wang M. High Reliable MCU Power Supply Design Based on LM2576[Z].International Electronic Elements, 2004.

[8] Mccullough B D.Random Number Generation and Monte Carlo Methods[M].Random Number Generation and Monte Carlo Methods. Springer,2004:431-432.

[9] U.S. Department of Commerce. Secure Hash Standard - SHS: Federal Information Processing Standards Publication 180-4[M].CreateSpace Independent Publishing Platform, 2012.

上一篇:农村高中历史课堂沉默现象的分析 下一篇:自动变光焊接面罩的使用和保养