【车联网原型系统|一】项目介绍+需求分析+概要设计
物联网原型系统导航
【车联网原型系统|一】项目介绍+需求分析+概要设计 https://blog.csdn.net/weixin_46291251/article/details/125807297
【车联网原型系统|二】数据库+应用层协议设计 https://blog.csdn.net/weixin_46291251/article/details/125808107
【车联网原型系统|三】树莓派设计+模拟基站程序 https://blog.csdn.net/weixin_46291251/article/details/125808229
【车联网原型系统|四】adhoc组网+frp内网穿透 https://blog.csdn.net/weixin_46291251/article/details/125808621
【车联网原型系统|五】前后端分离 https://blog.csdn.net/weixin_46291251/article/details/125808674
【车联网原型系统|六】效果展示 https://blog.csdn.net/weixin_46291251/article/details/125808845
【源码下载】 https://download.csdn.net/download/weixin_46291251/86227197
【车联网原型系统|一】项目介绍+需求分析
绪论
项目概述
物联网是指通过各种信息传感器、射频识别技术、全球定位系统、红外感应器、激光扫描器等各种装置与技术,实时采集任何需要监控、 连接、互动的物体或过程,采集其声、光、热、电、力学、化学、生物、位置等各种需要的信息,通过各类可能的网络接入,实现物与物、物与人的泛在连接,实现对物品和过程的智能化感知、识别和管理。
本系统通过物联网小车实验器材,实现一个基于物联网小车的环境检测系统。用户通过web页面操作小车、管理小车、查看数据;小车不断运动,每隔一定的时间通过传感器对环境进行监测,得到许多数据,并将这些数据发送给基站;而基站可以连接web页面和小车,将用户下发的命令处理后,发送给小车,并且接收小车发送的数据,将这些数据存放到数据库中,同时发送给web页面。
技术选型
场景 | 技术 |
---|---|
后端框架 | Django(python) |
树莓派编程 | python |
数据库 | Mysql |
前端框架 | vue(html+css+javascript) |
组网 | Adhoc |
需求分析
系统功能
1、 小车采集环境数据,如温度、湿度、光照、音量等;
2、 小车记录自身轨迹数据,如前进/后退距离、转弯方向、转弯角度等;
3、 小车与小车进行数据交换;
4、 小车与基站进行数据交换(优先);
5、 基站在web端可视化展示环境数据;
6、 基站在web端还原运动轨迹;
7、 用户可以在基站(即web端)控制小车运动、传感器工作的开始和结束;
8、 web透网,用户可以在手机访问web服务;
9、 加密所有报文;
10、 设置用户访问控制策略。
子系统
前端
前端获取到的用户指令均需按照指定格式发送给后端。
1、 用户控制
(1) 用户可以在前端页面控制传感器工作的开始和结束;
(2) 用户可以在前端页面控制小车移动的开始和结束;
(3) 用户可以在前端页面控制小车移动的方向、速度、时间;
(4) 用户可以在前端页面控制小车返回出发点;
2、 数据展示
(1) 前端页面可以展示小车实际运动轨迹;
(2) 前端页面可以展示小车预计运动轨迹;
(3) 前端页面可以展示传感器监控到的所有数据;
(4) 用户可以在前端查询指定小车数据,如按时间等;
(5) 用户可以在前端查询指定传感器数据,如按时间、传感器种类等进行查询;
3、 用户管理
(1) 用户登录;
(2) 用户分为管理员用户和普通用户,管理员用户可以看到数据库中存储的所有数据,普通用户只能看到自己操作产生的数据;
后端(基站)
1、 与数据库交互
(1)连接数据库,对设计的数据表进行增、删、改、查操作;
2、 与前端交互
后端需要提供接口供前端访问,具体包括:
(1) 控制传感器工作的开始和结束的接口;
(2) 控制小车移动的开始和结束的接口;
(3) 控制小车移动的方向、速度、时间的接口;
(4) 控制小车返回出发点的接口
(5) 获取小车运动轨迹信息的接口;
(6) 获取传感器监控到的所有数据的接口;
(7) 查询小车数据的接口,;
(8) 查询传感器数据的接口;
3、 与小车交互
(1) 发送控制传感器工作的开始和结束的指令;
(2) 发送控制小车移动的开始和结束的指令;
(3) 发送小车移动的方向、速度、时间的指令;
(4) 发送小车返回出发点的指令;
(5) 获取小车运动轨迹信息;
(6) 获取传感器监控到的所有数据;
小车(树莓派)
1、 接收并执行指令
(1) 接收控制传感器工作的开始和结束的指令;
(2) 接收控制小车移动的开始和结束的指令;
(3) 接收控制小车移动的方向、速度、时间的指令;
(4) 接收控制小车返回出发点的指令;
2、 发送信息
(1) 发送小车运动轨迹信息;
(2) 发送传感器监控到的所有数据;
概要设计
DFD图
常规数据流
首先是常规的数据流图,有以下数据的流动:
- web前端页面读取用户的操作,并将操作通过调用API 的形式传给后端
- 后端收取用户操作后,对具体的操作进行处理。然后获得可执行的指令,并通过socket以报文的形式将指令下发给小车(树莓派)。
- 后端发送报文的同时,将操作记录写入数据库。
- 树莓派收到报文后,从中解析出需要的指令。然后根据指令对小车进行控制(移动/开关传感器)小车上的大量传感器可以对环境进行感知,由于路面可能有障碍物,小车对行径路程可能与移动指令有所不同(自动避障)。小车在移动的过程中不断的记录下传感器数据和路径数据,并通过socket将数据反馈给基站(后端)
转发数据流
然后是小车不在基站范围内,但是在其他(基站范围内)小车的通信范围内的数据流图:
- web前端页面读取用户的操作,并将操作通过调用API 的形式传给后端
- 后端收取用户操作后,对具体的操作进行处理。然后获得可执行的指令,并通过socket以报文的形式将指令下发给小车(树莓派)。后端发送报文的同时,将操作记录写入数据库。
- 由于小车不在范围内,所以要对这个报文进行广播(发送给所有基站范围内小车)
- 收到报文的小车B,在判断这是条转发报文之后,直接将报文转发给小车A。
- 树莓派A收到报文后,从中解析出需要的指令。然后根据指令对小车进行控制(移动/开关传感)
- 小车A获取到的数据,通过socket经由树莓派B进行转发,发送给后端服务器。