【车联网原型系统|一】项目介绍+需求分析+概要设计


物联网原型系统导航

【车联网原型系统|一】项目介绍+需求分析+概要设计 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将数据反馈给基站(后端)

image-20220714150059825

转发数据流

然后是小车不在基站范围内,但是在其他(基站范围内)小车的通信范围内的数据流图:

  • web前端页面读取用户的操作,并将操作通过调用API 的形式传给后端
  • 后端收取用户操作后,对具体的操作进行处理。然后获得可执行的指令,并通过socket以报文的形式将指令下发给小车(树莓派)。后端发送报文的同时,将操作记录写入数据库。
  • 由于小车不在范围内,所以要对这个报文进行广播(发送给所有基站范围内小车)
  • 收到报文的小车B,在判断这是条转发报文之后,直接将报文转发给小车A。
  • 树莓派A收到报文后,从中解析出需要的指令。然后根据指令对小车进行控制(移动/开关传感)
  • 小车A获取到的数据,通过socket经由树莓派B进行转发,发送给后端服务器。

image-20220714150130408

posted @ 2022-07-17 17:57  Cheney822  阅读(199)  评论(0编辑  收藏  举报