温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
2023
快递
外卖
收纳
远程
监控
系统
设计
快递外卖收纳柜远程监控系统设计
陈伟汉 吴可测 陈灿华 邓坚成 方锐凯 毋茂盛
摘 要:随着移动互联网技术的开展,越来越多的人喜欢线上购物和叫外卖,快递和外卖量快速增长,无法及时准确接收快递或外卖的问题日益突出。针对这个问题,设计一款基于的远程控制收纳系统,该系统基于安卓平台开发了具有图像实时显示及给收纳箱发送指令的APP,基于阿里云效劳器搭建了nginx-rtmp流媒体效劳器,基于STM32开发了一套硬件控制系统。文中先是介绍了系统的结构和工作原理,然后,论述了相关的硬件设计以及云效劳器开发方法,最后,讨论了APP的程序的设计。
关键词:外卖收纳箱;远程监控;STM32;远程接收;物联网技术;云效劳器
中图分类号:TP393.06文献标识码:A文章编号:2095-1302〔2023〕04-00-03
0 引 言
当前已经成为人们的第二伴侣,用进行网购和叫外卖已经成为很多人的生活习惯,据新华网消息,2023年移动宽带用户总数已达13.1亿户,其中,网购用户规模达
6.1亿。我国的快递业务量,2023年到达507亿件,持续保持世界第一,外卖量也同样惊人。因此,如何及时准确接收快递或外卖的问题变得日益突出[1]。为了解决这个问题,本文设计开发了一款用远程控制的收纳系统。当物主不在家或者不方便出门接收物品时,可以通过APP远程控制收纳箱,实现远程接收快递或外卖物品。
1 系统的结构与工作原理
1.1 系统整体结构
系统的整体结构如图1所示。
系统主要由控制端、阿里云效劳器、收纳箱三大局部组成。控制端包括安卓及安卓APP;效劳端包括效劳端处理程序和数据库;收纳箱包括双控门箱子、控制电路以及相关控制程序。
1.2 工作原理
首先,APP进入绑定功能模块,通过扫描二维码与收纳箱中主控电路板上的WiFi模块连接,配置收纳箱连接的家中路由器的账号密码。同时主控芯片将账号和密码通过串口分享给图像采集模块完成设备的绑定配置。然后,收纳箱通过互联网连接阿里云效劳器开始轮询,不断向效劳器发送状态信息,并查询效劳器的指令信息。
接着APP注册,开始连接云效劳器,效劳器中的数据库会保存用户的注册信息。APP运行过程中会轮询检查设备的状态信息,并将状态信息显示在APP的设备控制界面上。当用户点击控制按钮后,APP会向效劳器发送相关的指令,电子收纳箱轮询到指令后便立即执行指令,实现开、关摄像头以及收纳箱门操作;然后,将执行结果返回给效劳器;最终在APP设备控制界面上显示操作结果。
2 系統实现
2.1 电子收纳箱设计
电子收纳箱控制电路主要包括:主控电路板、图像采集模块、门控制模块等。硬件组成结构如图2所示。
主控电路板采用STM32作为主控芯片控制双路继电器分别接通开门驱动和关门驱动单元;摄像头模块主要由硬件电路及专用摄像头组成,受主控芯片控制,负责摄像信息的采集、传输,控制采集图像上传至效劳器;门控制模块由步进电机、传统锁、电锁等组成,实现收纳箱门的翻开和关闭。
2.1.1 主控电路板开发
主控电路板采用STM32作为主控芯片,该芯片具有睡眠、停止、待机三种低功耗工作模式,使用方便,功能强
大[2]。主控电路板通过串口和WiFi模块与图像采集模块相连。另外,扩展了8个I/O口,5个用于输出,3个用于输入。输出口分别用于控制步进电机脉冲、旋转方向、步进电机电源、电锁的开关、WiFi指示灯;3个输入口分别用于检测门的状态、摄像头的状态和重置按键的状态。重置键用于WiFi账户和密码的重置。主控电路板程序设计框图如图3所示。
2.1.2 图像采集模块
图像采集模块通过串行口与主控电路板连接,完成WiFi配置以及指令接收和返回状态。同时,将采集的图像信息上传至效劳器。
2.1.3 门控制模块
门控制模块由插梢、传统锁、电锁、电机、牵引线、传感器等组成。当设备故障或者停电时,物主用传统方式可以开锁。电锁用于远程的开、关收纳箱。传感器用于采集门的当前状态信息。
2.2 效劳器开发设计
用阿里云效劳器[3]配置tomcat,创立MySQL数据库[4]以及搭建nginx-rtmp环境[5],进行视频推流。用Eclipse创立Web工程等。
2.2.1 数据库开发
创立数据库[6],添加用户信息表,存储客户信息,如账号、密码、密保、、地址等;添加指令表,存放控制收纳箱及摄像头的指令及状态。
2.2.2 Web程序设计
采用Java语言编写连接数据库及操作数据库代码[7]。注册、、修改密码以及传送指令等操作均通过数据库的增删查改实现。注册程序局部代码如下:
try{
con=DriverManager.getConnection〔uri,"root","111"〕;
String condition= "insert into member 〔logname,password,mibao,phone,mailbox〕 values 〔""+logname+"",""+password+"",""+mibao+"" ,""+phone+"" ,""+mailbox+"" 〕";
sql = con.prepareStatement〔condition〕;
int rSet = sql.executeUpdate〔condition〕;
if〔rSet!=0〕 {
out.println〔"registersuccessfully!"〕;}
else {
out.println〔"can not register!"〕;}
con.close〔〕;
}
2.3 安卓APP设计
据统计,目前安卓系统的市场占有率[8]到达76%。所以,在移动端开发软件进行远程控制箱子更加方便操作。
本系统APP采用Java语言基于MVC模式[9]开发,APP主要功能包括:注册,找回和修改密码,扫描二维码读取设备信息并连接设备,设置设备连接家用WiFi账号密码,连接效劳器获取摄像头视频信息并显示,获取设备状态信息并通过灯泡亮灭显示,发送开关门和摄像头指令等。APP功能设计框图如图4所示。
2.3.1 用户信息模块
用户信息模块包括:、注册、密码修改以及指令的处理。用户通过文本输入框录入信息,APP通过TCP/IP协议[10]将信息上传至云效劳器,实现对用户信息的处理和指令的中转。与效劳器通信局部代码如下:
URL url = new URL〔path〕;
URLConnection connection = 〔URLConnection〕 url.openConnection〔〕;
connection.setRequestMethod〔"GET"〕;//获取效劳器数据
connection.setReadTimeout〔8000〕;//设置读取超时的毫秒数
connection.setConnectTimeout〔8000〕;//设置连接超时的毫秒数
InputStream in = connection.getInputStream〔〕;
BufferedReader reader = new BufferedReader〔new InputStreamReader〔in〕〕;
result = reader.readLine〔〕;
//读取效劳器进行逻辑处理后页面显示的数据
connection.disconnect〔〕;
2.3.2 绑定设备程序设计
通过扫描二维码连接设备后,可配置设备连接路由器的账户密码,并进行设备的绑定。
与箱子的通信采用WiFi热点连接,用Socket封装信息。局部代码如下:
socket = new Socket〔HOST,8080〕;
PrintStream ps = new
PrintStream 〔socket.getOutputStream〔〕〕;
ps.println〔content〕;
2.3.3 控制设备程序设计
控制界面包含显示区域和控制区域。顶部是摄像头和门状态的指示灯,中间是视频显示区域,下方是控制按钮。
通过轮询效劳器,APP可以不断获取收纳箱的状态信息。每个按钮对应一种控制指令,按下时会发送指令给效劳器,效劳器修改数据库指令表,箱子查询到指令后便执行。指令的上傳与用户信息上传类似,这里不再累赘,局部APP轮询代码如下:
new Thread〔〔〕 -> {
while 〔true〕 {
try {Thread.sleep〔100〕;
} catch 〔InterruptedException e〕 {
e.printStackTrace〔〕;}
try {Trans alwaystrans = new Trans〔urlpath〕; String url_result = alwaystrans.get〔〕;
if 〔url_result.equals〔"0 btn_chat_check"〕||url_result.equals〔"btn_chat_check btn_chat_check"〕||url_result.equals〔"2 btn_chat_check"〕〕
{ivState.setImageResource〔R.drawable.sxtclose〕;}if 〔url_result.equals〔"0 2"〕||url_result.equals〔"btn_chat_check 2"〕||url_result.equals〔"0 2"〕〕 {ivState.setImageResource〔R.mipmap.sxtopen〕;}} catch 〔Exception e〕 {
e.printStackTrace〔〕;}
}
}〕.start〔〕;
程序运行界面如图5所示。
3 结 语
本文设计了一套用远程控制收纳箱接收外界物品的系统,箱子具有传统开锁功能,视频信息可上传至效劳器,并由效劳器推流,经过不断的进行代码优化,将视频延时控制在3 s内。
注:本文通讯作者为毋茂盛。
参考文献
[1]刘袁梦,黄文彬,许小郡,等.快递物品远程自动接收系统设计与开发[J].物联网技术,2023,6〔12〕:86-88.
[2]张勇.ARM Cortex-M3嵌入式开发与实践:基于STM32F103[M].北京:人民邮电出版社,2023.
[3]基夫·莫里斯.根底设施即代码云效劳器管理[M].北京:人民邮电出版社,2023.
[4]明日科技.MySQL从入门到精通[M].北京:清华大学出版社,2023.
[5]卓郎科技技术团队.直播系统开发:基于Nginx-rtmp-module[M].北京:电子工业出版社,2023.
[6]万常选,廖国琼,吴京慧,等.数据库系统原理与设计[M].3版.
北京:清华大学出版社,2023.
[7]张延军,王保民,何月梅,等.Java程序设计教程:微课·实训·课程设计[M].北京:清华大学出版社,2023.
[8]郭金尚.Android经典工程案例开发实战宝典[M].北京:清华大学出版社,2023.
[9]何成万,余秋慧.MVC模型2及软件框架Structs的研究[J].计算机工程,2002,28〔6〕:274-275.
[10]谢希仁.计算机网络简明教程[M].3版.北京:电子工业出版社,2023.
作者简介:陈伟汉〔1997—〕,男,广东人,本科。
吴可测〔1999—〕,男,广东人,本科。
陈灿华〔1999—〕,男,广东人,本科。
邓坚成〔1999—〕,男,广东人,本科。
方锐凯〔1998—〕,男,广东人,本科。
毋茂盛〔1963—〕,男,河南人,博士,教授,主要研究方向为嵌入式技术。