仓储物联网管理系统1FS4412.docx
《仓储物联网管理系统1FS4412.docx》由会员分享,可在线阅读,更多相关《仓储物联网管理系统1FS4412.docx(10页珍藏版)》请在冰豆网上搜索。
仓储物联网管理系统1FS4412
物联网仓储管理系统
项目文档
第1章项目简介
1.1项目背景
随着社会经济的迅速发展和科学技术的全面进步,计算机事业的飞速发展,以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期。
随着经济文化水平的显著提高,人们对于生活质量及工作环境的要求也越来越高。
与此同时为了管理大量的物品,仓库也大量的出现,仓库的管理问题也就提上了日程。
随着仓库大量的增加,其管理难度也越来越大,如何优化仓库的日常管理也就成为了一个大众化的课题。
传统的仓库管理,一般依赖于一个非自动化的、以纸张文件为基础的系统来记录、追踪进出的货物,完全由人工实施仓库内部的管理,因此仓库管理的效率极其低下。
对此,我们利用基于ZIGBEE无线射频技术的仓库智能管理系统,该系统能够增强库房作业的准确性和快捷性、减少整个仓库物资出入库中由于管理不到位造成的非法出入库、误置、偷窃和库存、出货错误等损失,并最大限度地减少储存成本、保障仓库物资的安全。
1.2术语定义
ZigBee:
ZigBee是基于IEEE802.15.4标准的低功耗个域网协议。
根据这个协议规定的技术是一种短距离、低功耗的无线通信技术。
这一名称来源于蜜蜂的八字舞,由于蜜蜂(bee)是靠飞翔和“嗡嗡”(zig)地抖动翅膀的“舞蹈”来与同伴传递花粉所在方位信息,也就是说蜜蜂依靠这样的方式构成了群体中的通信网络。
其特点是近距离、低复杂度、自组织、低功耗、低数据速率、低成本。
主要适合用于自动控制和远程控制领域,可以嵌入各种设备。
简而言之,ZigBee就是一种便宜的,低功耗的近距离无线组网通讯技术。
A9多核:
ARMCortex-A9处理器是首款结合了Cortex应用级架构及用于可扩展性能的多处理能力的ARM处理器。
M0:
Cortex-M0处理器,是市场上现有的最小,能耗最低的ARM处理器。
第2章系统概述
本系统是基于PC、ARMCortex-A9、GPRS、ARMCortex-M0等设备,依托在各项互联网,物联网,传感器等技术的基础上编写,以实现仓储物联网管理系统;用户可以实时的查看库房环境信息、货物信息;并可以通过设置在库房的摄像头来监控库房,以及实现远程控制库房的灯光,风扇等等。
本系统主要分为三大模块:
核心服务器端(PC)、前端数据中心(A9)和远程监控终端(ARMCortexM0)。
第3章使用说明
3.1硬件清单
表:
硬件清单
名称
描述
FS4412
主控板,FS4412采用的处理器使用Samsung最新的ARMCortex-A9四核CPU的
Exynos4412,主频达到1.41.6GHz。
该芯片采用了最新的32nm的先进工艺制
程,功耗方面有了明显的降低。
FS11C14
基于高性能的Cortex-M0处理器,完美支持重力、温湿度、光照等多种传感器,
全开源的RFID、ZigBee组件。
可以实现仓库需要采集的全部信息。
摄像头
摄像头模块,采集视频数据
3.2功能演示
第4章
前端数据中心(A9)总体设计
4.1系统框架,线程关系
4.1.1系统框架
●先通过M0模块进行实时采集环境参数,例如温度、湿度、光感数据;
●再通过ZigBee协调器进行数据接收,然后把采集到的环境参数通过串口发送给A9;
●由A9的transfer线程负责接收环境参数,并将其放入链式队列中;
●由A9的analysice进行数据处理,并放入到共享内存中;
4.1.2线程间关系
4.2数据接收模块
4.2.1功能描述
Zigbee节点采集的信息,通过Zigbeee协调器接收,再经USB转串口传递给A9板。
此线程负责从串口读取消息交给处理模块,并继续接收消息。
4.2.2数据描述
表:
变量说明
类型
名称
功能
int
dev_uart_fd
串口文件描述符
queue_t
pth_queue
队列头
pthread_mutex_t
pth_mutex
数据保护互斥锁
pthread_cond_t
pth_noempty_cond
数据处理唤醒条件变量
4.2.3流程图
4.2.4详细说明
本线程被创建后,先打开串口ttyUSB1这一设备节点,得到文件描述符dev_uart_fd,通过调用serial_init(dev_uart_fd)来进行串口的初始化;之后线程通过read串口进行睡眠,一旦有数据,就从串口里读取,并判断包头是否正确,若正确则读取数据,加入数据链表缓存。
4.3数据处理
4.3.1功能描述
处理接收到的信息,因为接收到的信息是按一定规律进行编码的,所以进行解码后,激活数据库线程,保存数据,激活内存刷新数据,更新实时环境信息,判断数据是否越界,若越界则激活设备控制线程进行相应的控制。
4.3.2数据描述
4.3.3流程图
4.3.4详细说明
4.4处理客户端请求
4.4.1功能描述
接收CGI以及别的线程检测到异常发送设备控制请求的线程。
4.4.2数据描述
结构体名称
成员类型
成员名称
功能
structmsg
long
type
收发消息类型
long
msgtype
消息类型
char
text[N]
消息正文
数据类型
数据名称
功能
char
dev_uart_mask
M0设备操作掩码
int
dev_uart_fd
串口文件描述符
4.4.3流程图
4.4.4详细说明
本线程主要用来接收从消息队列里传入的请求,主要是硬件设备的操作,本线程大部分完成的是一个数据的转发过程,因为通信的结构在发送线程与设备之间已经定义好了相应的协议。
4.5数据库模块
4.5.1sqlite3介绍
sqlite3提供的是一些C函数接口,你可以用这些函数操作数据库。
通过使用这些接口,传递一些标准sql语句(以char*类型)给sqlite函数,sqlite就会为你操作数据库。
sqlite3跟MS的access一样是文件型数据库。
就是说,一个数据库就是一个文件,此数据库里可以建立很多的表,可以建立索引、触发器等等,但是,它实际上得到的就是一个文件。
备份这个文件就备份了整个数据库。
sqlite3不需要任何数据库引擎,这意味着如果你需要sqlite来保存一些用户数据,甚至都不需要安装数据库。
4.5.2数据库流程图
4.5.3pthread_sqlite.h文件详解
●互斥锁及条件变量部分
externpthread_cond_sqlite;
解析:
数据库线程部分的条件变量,pthread_cond_wait之后,当其他线程使用相同的条件变量才能唤醒数据库线程。
4.6环境智能检测控制
4.6.1功能描述
首先在网页上面把智能检测功能打开,然后配置临界值,最后提交。
观查M0的即时数据,对即时数据可人为改动(例如:
用手遮挡光照传感器,对温湿传感器进行哈气等),观看智能控制效果。
4.6.2流程图
4.6.3详细说明
判断网页临界值是否变化,是——就把最新临界值放进数据库中(否——直接进入共享内存),然后共享内存获取最新临界值,数据与临界值进行比较且发送控制命令。
功能与条件:
1、打开蜂鸣器:
a)温度小于最低值或温度大于最高值;
b)湿度小于最低值或湿度大于最高值;
c)光照大于最高值;
2、打开风扇:
a)温度大于最高临界值;
b)湿度大于最高临界值;
3、打开led
a)光照小于最低临界值;
4、关闭功能
a)打开蜂鸣器条件不成立——关闭蜂鸣器
b)打开风扇条件不成立——关闭风扇
c)打开led条件不成立——关闭led
4.7摄像头模块
4.7.1功能描述
采集室内图像信息,实现远程视频监控和拍照功能。
4.7.2流程图
4.7.3数据描述
表:
互斥锁
名称
类型
功能
mutex_camera
pthread_mutex_t
摄像头模块控制线程互斥锁
表:
条件变量
名称
类型
功能
cond_camera
pthread_cond_t
摄像头模块控制线程被唤醒条件变量
表:
其他
名称
类型
功能
dev_camera_mask
unsignedchar
摄像头模块操作掩码
dev_camera_fd
int
摄像头模块设备节点