《基于物联网的智能物流系统》.docx
- 文档编号:8545157
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:17
- 大小:62.66KB
《基于物联网的智能物流系统》.docx
《《基于物联网的智能物流系统》.docx》由会员分享,可在线阅读,更多相关《《基于物联网的智能物流系统》.docx(17页珍藏版)》请在冰豆网上搜索。
《基于物联网的智能物流系统》
基于物联网的智能物流管理系统
TheIntelligenceLogisticsManagementSystem
BasedonTheInternetofthings
队名:
安徽工程大学参赛队
队员:
金忠、孙永莉、潘士奇
指导教师:
刘涛、帅兵、谢永宁
摘要
本系统采用基于ARMCortex-M3内核的处理器LM3S811,结合射频ID读
卡模块、Zigbee无线传输模块实现物流公司收发货的智能管理,并通过固定终端PC与网络数据库实现交互,将整个物流公司的收发货信息整合到一起,简化收发货的过程,同时降低了出错率。
关键词:
ARM、ID射频读卡、Zigbee无线传输、网络数据库、智能物流
0引言
随着网络技术的不断发展,网络应用在现实生活中越来越普遍,网购作为网络应用的一个实例也在不断发展,继而导致物流行业也随之壮大。
物流行业的迅速发展也给物流行业带来了更高的要求,伴随业务量的增加,要求物流公司的运作速度必须提升,然而传统的人工运作显然已经满足不了要求。
本课题的目标就是要利用嵌入式技术设计一个系统,投入到物流的收发货管理过程中,提高物流公司收发货的速度,再结合网络数据库整合所有物流收发货信息,降低物流运作中的出错率,提高物流的可靠性,满足物流行业快速发展提出的高要求。
1系统方案设计
1.1设计的基本思想
本系统分为三个模块:
分别是固定终端,网络数据库,移动终端。
从货物进入物流公司开始:
首先,发挥作用的是固定终端,固定终端配有录入软件、读卡设备和无线传输模块,读卡设备读取分配给货物的卡号并传入录入软件,录入软件将货物信息通过网络传入网络数据库保存。
其次,当要发送货物时,移动终端扫描从仓库中拿出的货物,读取卡号生成发货清单,通过集成的Zigbee无线传输模块将清单传入固定终端保存,固定终端同时将货物清单传入网络数据库保存。
接着,当货物配送到达目的地时,目的地固定终端从网络数据库下载货物清单并通过无线传输模块传入目的地的移动终端中,移动终端在接收货物时读取货物的卡号,控制器将读到的卡号和清单对比,实现核对清单的功能。
1.2系统框图
按照设计的思想,本系统由固定终端,网络数据库和移动终端三个模块构成,三个模块之间的结构如图所示:
网络数据库
固定终端1
网线
固定终端n
网线
````````````````````
Internet网络
移动终端
Zigbee
无线传输
Zigbee
无线传输
移动终端
图1系统框图
2硬件系统设计
2.1固定终端:
本系统中的固定终端可以由一台PC机构成,PC机通过2个USB口分别外接一个ID读卡器和一个Zigbee无线传输模块。
结构图如下:
USB
Zigbee模块
PC机
USB
ID读卡器
图2固定终端
ID读卡器:
用于读取为货物分配的卡号(订单号),通过USB接口将读取的卡号传入PC机中的录入软件。
Zigbee模块:
和移动终端上的Zigbee模块自组无线网络,进行信息传递,
实现PC机与移动终端的信息交换。
2.2移动终端:
本系统中的移动终端主要由控制器、ID读卡模块、Zigbee无线传输模块、矩阵键盘4个模块组成。
结构框图如下:
PB0PB1
Wiegand26
读卡模块
串口UART
Zigbee模块
控制器
PD1~PD7
矩阵键盘
图3移动终端
控制器:
是移动终端的核心,本设计对控制器的基本要求是至少具有1个UART接口和2组GPIO口,分别用来连接Zigbee模块、ID读卡模块、矩阵键盘。
我们选用了北京精仪达盛科技有限公司的EXP-LM3S811模块,LM3S811内有2个完全可编程的UART和丰富的GPIO口,UART支持高达460.8Kbps的数据传输速率,完全满足本设计的基本要求。
读卡模块:
本设计采用近距离的非接触式ID读卡模块,检测距离在1米左右。
在实验中,我们采用了XN-K01系列125KHz的非接触式ID卡专用模块,ID卡的读取我们采用Wiegand26接口,与控制器的PB0和PB1相连接。
Zigbee模块:
设计中需要移动终端和固定终端进行无线数据传输,距离在1~200米范围内,我们采用的是深圳鼎泰克公司的DRF1605Zigbee无线传输模块,该模块无线频率2.45GHz,传输距离达400米,完全满足本设计对无线模块的要求。
矩阵键盘:
设计中的矩阵键盘用于方便使用者对移动终端的控制,控制器读取按键的值调用不同的函数,实现不同的功能。
3软件设计
3.1数据库设计
本物流系统中,所有的货物订单信息和配送清单信息都会存储于一个网络数据库中,这样的设计保证了货物订单信息和配送清单信息的集中管理,方便了各个营业点之间的货物配送。
本系统数据库使用的是SQLSERVER2000。
SQLServer是由Microsoft开发和推广的关系数据库管理系统(DBMS)。
SQLServer是客户机/服务器体系结构,它提供了图形化用户界面,使系统管理和数据库管理更加直观、简单。
附带了丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地。
3.2数据库主要表设计
该数据库用于存储货物的订单信息和配送清单信息,相关的表结构设计如下:
货物信息Good
属性名
数据类型
可否为空
含义
完整性约束
Good_ID
Bigint(8)
否
货物流水号
主码
Good_Num
Char(10)
否
货物订单号
Good_Name
Char(50)
否
货物名称
Good_Type
Char(50)
否
货物类型
Good_Quantity
Char(10)
否
货物数量
Good_Weight
Char(10)
否
货物重量
Good_Status
Char(10)
否
货物状态
已签收,已到站或运输中,已入库,默认值已入库
Good_TrackTime
Char(20)
可
当前检测时间
Good_Remark
Char(10)
可
货物备注
订单详细信息OrderMessage
属性名
数据类型
可否为空
含义
完整性约束
Ord_ID
Bigint(8)
否
订单流水号
主码,自动
Good_ID
Bigint(8)
否
货物流水号
外码
Rec_ID
Bigint(8)
否
收货人流水号
外码
Sen_ID
Bigint(8)
否
发货人流水号
外码
Ord_Fromstation
Char(50)
否
发货站
Ord_Tostation
Char(50)
否
收货站
Ord_Acctime
Datetime(8)
否
业务接洽时间
Ord_Charge
Char(10)
否
费用
Ord_Ispay
Char
(2)
否
是否付款
是或否,默认值否
Ord_Finished
Char
(2)
否
业务是否完成
是或否,默认值否
收货人信息Receiver
属性名
数据类型
可否为空
含义
完整性约束
Rec_ID
Bigint(8)
否
收货人流水号
主码,自动
Rec_Name
Char(10)
否
收货人姓名
Rec_Tel
Char(11)
否
收货人电话(手机)
Rec_HomeTel
Char(12)
否
收货人固定电话
Rec_Add
Char(150)
否
收货人地址
Rec_Code
Char(6)
否
收货人邮编
发货人信息Sender
属性名
数据类型
可否为空
含义
完整性约束
Sen_ID
Bigint(8)
否
发货人流水号
主码,自动
Sen_Name
Char(10)
否
发货人姓名
Sen_Tel
Char(11)
否
发货人电话(手机)
Sen_HomeTel
Char(12)
否
收货人固定电话
Sen_Add
Char(150)
否
发货人地址
Sen_Code
Char(6)
否
发货人邮编
3.3录入软件设计
录入软件安装在固定终端上,作用是将货物的信息录入并传入数据库,录入软件在硬件上和固定终端外接的ID读卡器及Zigbee模块有信息传输,和网络数据库也有连接,录入软件实现了货物信息登记的简化。
本软件采用VisualStudio2010制作,由前台工作人员将物品信息录入软件并传入数据库。
使用Zigbee模块,使得此软件能够与移动终端进行通信。
3.3.1软件界面截图
图软件主要部分界面
3.3.2软件主要功能实现程序
1.与数据库连接程序
应用C#语法建立与SQLServer数据库的连接。
通过访问数据库验证用户信息。
privatevoidbutton1_Click(objectsender,EventArgse){
//建立数据库连接
stringsqlcon="DataSource=.;Database=bsb;Userid=sa;PWD=";
//抓捕异常
try{
using(SqlConnectionMy_con=newSqlConnection(sqlcon)){
My_con.Open();//打开连接
stringsqlstr="select*fromloginuserwhereuser_logname='"+txt_LoginName.Text.Trim()+"'anduser_pwd='"+txt_LoginPwd.Text.Trim()+"'";
SqlCommandsqlcom=newSqlCommand(sqlstr,My_con);
SqlDataReaderSDR=sqlcom.ExecuteReader();//执行SQL语句
SDR.Read();//读取查询结果
if(SDR.HasRows)//读取到数据说明存在该用户,可以登录
timer1.Start();//渐变效果
else//否则用户不存在
MessageBox.Show("用户名或密码错误","错误");
My_con.Close();//关闭连接
}
}
catch(SqlException){//异常处理
MessageBox.Show("远程客户端无响应,请稍后再试!
","错误");
return;
}
}
2.与Zigbee模块串口通信实现程序
在visualstudio2010中使用seriaPort控件。
配置属性:
设置其波特率BaudRate=38400,其端口号PortName=COM3。
privatevoidbutton2_Click(objectsender,EventArgse){
serialPort1.Open();//打开端口
stringstr=serialPort1.ReadLine();//接受数据
intlength=textBox1.Text.Length;//计算长度
char[]chars=str.ToCharArray();//转换为数组
while(length%6!
=0){
string[]str2=newstring[str.Length];
for(inti=0;i str2[i]=str.Substring(i*6,6);//将接收到的字符串平均分配到数组中 ListViewItemlist;//添加进ListView控件中 for(inti=0;i list=listView1.Items.Add((i+1).ToString()); list.SubItems.Add(str2[i]); } } } privatevoidbutton3_Click(objectsender,EventArgse){ byte[]data=Encoding.Unicode.GetBytes(text);//获取要发送的数据 stringstr=Convert.ToBase64String(data); serialPort1.WriteLine(str);//发送数据 serialPort1.Close();//关闭端口 } 3.3.3移动终端软件设计 移动终端的功能主要有: 生成发货清单、传送发货清单、接收发货清单、收货核对清单、生成缺/错货清单、传送缺/错货清单等功能,实现这些功能的代码在源代码中将给出,此处就不做赘述了。 移动终端的重点部分在于ID读卡模块、Zigbee模块,此处将给出移动终端的流程图和这两个模块与MCU之间的部分驱动代码: 1.移动终端工作流程图 开始 开机 发货/收货? 读卡 保存货物卡号 (生成发货清单) 下载货物清单 读卡 保存? 验证 发货 收货 成功 成功 蜂鸣器 蜂鸣器 失败 失败 保存货物卡号 (生成核对清单) 货物发送完毕? 否 否 结束 是 是否为清单中货物? 是 货物接收完毕? 是 清单核对完毕? 是 否 发送货物清单到固定终端 发送核对清单到固定终端 否 2.移动终端ID读卡模块程序设计 ID读卡模块采用中断模式触发,中断口采用GPIOB口,卡号读取采用Wiegand26接口,主要程序如下: //卡号获取代码: voidgetSignalString(void){//如果allSignalflag=1调用该函数,获得卡号。 inti; //对IDData初始化; for(i=0;i<=2;i++) IDData[i]=0; for(i=1;i<=24;i++){//忽略校验位; if(signalString[i]&0x02) IDData[(i-1)/8]=(IDData[(i-1)/8]<<1)&0xfe; //date1为低,date0为高。 为1 if(signalString[i]&0x01) IDData[(i-1)/8]=(IDData[(i-1)/8]<<1)|0x01; } //将所得到的数据转换为文本形式输出。 如0xA3转换为‘A’‘3’; for(i=0;i<=4;){ IDStrings[i]=DB_num_asci[(IDData[i/2]>>4)&0x0f];//整除2; IDStrings[i+1]=DB_num_asci[IDData[i/2]&0x0f]; i+=2; } } ····//PB口中断代码 voidGPIO_Port_B_ISR(void){ GPIOPinIntClear(GPIO_PORTB_BASE,GPIO_PIN_0|GPIO_PIN_1); pinsState=GPIOPinRead(GPIO_PORTB_BASE,GPIO_PIN_0|GPIO_PIN_1); signalString[signalNum]=pinsState; signalNum++; if(signalNum==26){ allSignalflag=1; sendMessage(); signalNum=0; } } 3.移动终端Zigbee模块程序设计 Zigbee模块的通信我们采用的是串口UART0,对其的初始化代码如下: voiduart0Init(void){ SysCtlPeriEnable(SYSCTL_PERIPH_UART0);//使能UART模块 SysCtlPeriEnable(SYSCTL_PERIPH_GPIOA);//使能RX/TX所在的GPIO端口 GPIOPinTypeUART(GPIO_PORTA_BASE,//配置RX/TX所在管脚为 GPIO_PIN_0|GPIO_PIN_1);//UART收发功能 UARTConfigSet(UART0_BASE,//配置UART端口 38400,//波特率: 38400 UART_CONFIG_WLEN_8|//数据位: 8 UART_CONFIG_STOP_ONE|//停止位: 1 UART_CONFIG_PAR_NONE);//校验位: 无 UARTEnable(UART0_BASE);//使能UART端口 } 4.矩阵键盘驱动程序 矩阵键盘我们采用线反转法读取键值。 //8个引脚全部上拉电阻有效 GPIOPadConfigSet(KEYBOARD_LIN_BASE,KEYBOARD_LIN_PIN, GPIO_STRENGTH_8MA,GPIO_PIN_TYPE_OD_WPU); GPIOPadConfigSet(KEYBOARD_COL_BASE,KEYBOARD_COL_PIN, GPIO_STRENGTH_8MA,GPIO_PIN_TYPE_OD_WPU); GPIOPinTypeOutOD(KEYBOARD_LIN_BASE,KEYBOARD_LIN_PIN);//设置行线为输出 GPIOPinTypeIn(KEYBOARD_COL_BASE,KEYBOARD_COL_PIN);//设置列线为输入 GPIOPinWrite(KEYBOARD_LIN_BASE,KEYBOARD_LIN_PIN,0xF0);//行线输出为0000 //使用指针操作GPIODR8R; p=(void*)(0x40007000+0x510); *p=0xFF; p=(void*)(0x40007000+0x508); *p=0XFF; Delay(1*(TheSysClock/4000)); do{ temp1=GPIOPinRead(KEYBOARD_COL_BASE,KEYBOARD_COL_PIN);//读取列线的值 }while(temp1==0x00); //8个引脚全部上拉电阻有效 GPIOPadConfigSet(KEYBOARD_LIN_BASE,KEYBOARD_LIN_PIN, GPIO_STRENGTH_8MA,GPIO_PIN_TYPE_OD_WPU) GPIOPadConfigSet(KEYBOARD_COL_BASE,KEYBOARD_COL_PIN, GPIO_STRENGTH_8MA,GPIO_PIN_TYPE_OD_WPU); GPIOPinTypeOutOD(KEYBOARD_COL_BASE,KEYBOARD_COL_PIN);//设置列线为输出 GPIOPinTypeIn(KEYBOARD_LIN_BASE,KEYBOARD_LIN_PIN);//设置行线为输入 GPIOPinWrite(KEYBOARD_COL_BASE,KEYBOARD_COL_PIN,0x0F);//列线输出为0000 //使用指针操作GPIODR8R; p=(void*)(0x40007000+0x510); *p=0xFF; p=(void*)(0x40007000+0x508); *p=0XFF; Delay(1*(TheSysClock/4000)); do{ temp2=GPIOPinRead(KEYBOARD_LIN_BASE,KEYBOARD_LIN_PIN);//读取行线的值 }while(temp2==0x00); temp=temp1|temp2;//行列值组合得到键盘的码值 4实验与测试 由于资源的限制,试验中,本系统只配置了一个固定终端,一个移动终端,所以只能演示系统的基本功能。 其完整的功能演示需要更多的固定终端和移动终端。 4.1测试设备 1.PC机一台 2.LM3S811套件一套 3.XN-K01系列ID模块一块 4.USB口ID读卡器一个 5.Zigbee模块2个 6.矩阵键盘一块 4.2接线与软硬件初始化 ⑴固定终端: A: 为PC机连接好ID读卡器; B: 为PC机连接好Zigbee模块,安装Zigbee底板的驱动程序。 C: 安装SQLSERVER2000数据库软件,并导入数据库文件。 D: 安装录入软件。 ⑵移动终端 A: 连接好矩阵键盘与GPIOD口1~7脚的连线。 B: 连接好MCU与Zigbee模块。 C: 连接好MCU与ID读卡模块 4.3功能测试 本系统是为物流收发货提供的整套系统,所以,在功能测试时,我们模拟物流收发货的过程,测试整个系统的功能。 A.测试固定终端的功能 理论上固定终端能实现ID读卡、与数据库通信、与移动终端通信。 步骤: (1)物流公司接收货物,客户填单,前台客服人员将客户填好的货物信息录入软件中。 (2)为该货物分配卡号,利用ID读卡模块读取卡号,卡号自动写入录入软件的订单号文本框中。 (3)信息录入完毕后,点击提交按钮,打开数据库,查看数据库记录。 (4)调出货物信息,选择部分货物,生成发货清单,发送给移动终端。 实验结果与分析: 1.ID读卡后,卡号自动写入软件。 【验证ID读卡器与软件通信正确】; 2.点击提交按钮后,数据库中生成了和刚刚录入货物信息相同的货物记录。 【验证软件和数据库的通信正确】 3.与移动终端通信后,我们利用串口调试助手对移动终端中保存清单的数组内容进行输出,显示卡号和软件中选中的货物卡号一致。 【验证固定终端向移动终端通信正确】 B.测试移动终端功能 理论上移动终端能实现: ID读卡、保存卡号(生成相应清单)、与固定终端通信、核对清单。 步骤: (1)物流发货,按发货按钮,移动终端读取卡号。 (2)按发送发货清单按钮,将发货清单传送给固定终端。 (3)复位移动终端,从固定终端接收发货清单。 (4)按收货按钮,读取卡号,(故意少读一张、读入一张不是清单内的卡号)。 (5)按下发送缺货清单按钮。 (6)按下发送错货清单按钮。 实验结果与分析: 1.我们利用串口调试助手将移动终端中保存清单的数组内容进行输出,显示的卡号序列和刚刚读入的所有卡号一致。 【验证发货清单生成正确】 2.按发送发货清单按钮后,固定终端软件的清单列表中显示的清单列表和读入的卡号一致,并且软件根据卡号调出对应货物的部分具体信息。 【验证移动终端向固定终端通信正确】
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于物联网的智能物流系统 基于 联网 智能 物流 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)