# IntelScarecrow2
**Repository Path**: adjaisd/intel-scarecrow2
## Basic Information
- **Project Name**: IntelScarecrow2
- **Description**: 对IntelScarecrow优化
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2022-03-21
- **Last Updated**: 2023-05-30
## Categories & Tags
**Categories**: Uncategorized
**Tags**: SpringBoot, Vue, JavaScript
## README
## 智能稻草人软件设计
项目名为**IntelSCARECROW2**,旨在管理物联网设备与传感器数据的管理。
项目基于Springboot+Vue,前端采用了[vue-element-admin解决方案](https://github.com/PanJiaChen/vue-element-admin)
[原版本算是软件+物联网项目,已废弃,预览地址](http://106.13.74.173:13239/);
新版本为纯软件项目,也可通过emqx与物联网设备交互;
[项目预览地址版本2.0,IntelScarecrow2:2.0](http://106.13.74.173:13240/)
[项目预览地址版本2.1,IntelScarecrow2:2.1](http://106.13.74.173:13241/)
由于服务器可能到期或者数据库原因,预览效果可以在[img目录下](/img)查看
### 需求分析
随着物联网设备的规模化应用,对物联网设备的管理、传感器数据的传输与监控成为一个问题。
本项目将重心集中在对设备管理与对传感器数据的监控,当出现异常或故障,通过预先设定的网络钩子来做出相应的处理,从而减少损失。
### 软件功能需求
目前是单用户对多设备的管理,功能实现上是数据层面的操作,没有验证事物真实存在(比如设备存在、传感器数据存在、应急处理有效);
下面是最终软件各模块功能与当前开发进度.
#### 用户模块
| 序号 | 功能 | 是否完成 | 完成度 |
|:--:|:------:|:----:|:---:|
| 1 | 登录 | ✔ | 80% |
| 2 | 用户信息管理 | × | 0% |
#### 设备管理模块
| 序号 | 功能 | 是否完成 | 完成度 |
|:--:|:--------:|:----:|:---:|
| 1 | 验证设备真实存在 | × | 0% |
| 2 | 设备管理 | ✔ | 80% |
| 3 | 开关设备 | ✔ | 80% |
#### 设备状态管理
| 序号 | 功能 | 是否完成 | 完成度 |
|:--:|:-----------:|:----:|:---:|
| 1 | 查看在线离线设备数 | ✔ | 95% |
| 2 | 查看设备定位 | ✔ | 95% |
| 3 | 查看设备报警趋势 | ✔ | 95% |
| 4 | 查看异常较多的设备 | ✔ | 95% |
| 5 | 设备连接与断连邮箱提醒 | ✔ | 95% |
| 6 | 查看设备详细信息 | × | 5% |
#### 设备指标管理模块
| 序号 | 功能 | 是否完成 | 完成度 |
|:--:|:----------:|:----:|:---:|
| 1 | 验证设备指标真实存在 | × | 0% |
| 2 | 验证应急处理有效 | × | 0% |
| 3 | 设备指标管理 | ✔ | 80% |
| 4 | 数据异常应急处理 | × | 10% |
#### 指标报警管理模块
| 序号 | 功能 | 是否完成 | 完成度 |
|:--:|:--------:|:----:|:---:|
| 1 | 验证应急处理有效 | × | 0% |
| 2 | 指标报警管理 | ✔ | 80% |
| 3 | 查看报警日志 | ✔ | 90% |
| 4 | 报警沉默周期 | × | 0% |
| 5 | 数据异常应急处理 | × | 0% |
| 6 | 最佳生长参数预测 | × | 0% |
#### 视图管理模块
| 序号 | 功能 | 是否完成 | 完成度 |
|:--:|:-------:|:----:|:---:|
| 1 | 视图管理 | ✔ | 90% |
| 2 | 添加和预览视图 | ✔ | 90% |
#### 其他模块
| 序号 | 功能 | 是否完成 | 完成度 |
|:--:|:------:|:----:|:---:|
| 1 | 消息队列认证 | ✔ | 90% |
| 2 | 爬取天气数据 | × | 10% |
| 3 | 应急处理 | × | 2% |
### 硬件程序功能需求
考虑到设备过多,设备数达到上百,再加上传感器数据的高频且不间断特点,后期需要考虑将设备分配到不同网络,网络拓扑呈现树形;
数据传输开始采用消息队列(Message Queue),但有时延迟较高或者收不到消息,后续引入其他传输协议比如Zigbee;
局部网络中心节点汇聚下层节点数据并对其去冗余,最上层的几个节点处理与上层应用的交互;
其中减少冗余可通过数据融合技术,一定区域内的节点数据进行数据融合,可以考虑多种策略,比如取均值、中位数或者滤波算法,后期还要兼容更多数据类型(包括图片、音频、多维数组);
此外所有中心节点应该有一个或多个备份节点,他们间交替工作,不工作的节点进入低功率运行状态,随时进行应急处理;
| 序号 | 功能 | 是否完成 | 完成度 |
|:--:|:----:|:----:|:---:|
| 1 | 数据传输 | ✔ | 30% |
| 2 | 数据融合 | × | 5% |
| 3 | 应急处理 | × | 2% |
### 存在问题
1. 界面需适配移动端
2. 硬件程序功能(消息队列延迟高、数据传输的协议单一、数据融合策略、应急处理)
3. 数据库不完善需重建,后端代码不规范需重构
4. 软件功能尚存在很大不足(验证设备存在、验证设备指标存在、验证应急处理WebHook有效、报警沉默周期、应急处理等)
5. 存在很多需要人工管理,和"智慧"相差较大(设备指标和指标报警,尤其指标报警需种植经验丰富的人能胜任,后期通过累积的数据包括生长环境参数与产量来建立作物生长模型,辅助对数据标记的决策)
### 如何参与开发
#### 软件开发
需修改项目根目录下`backend`目录下的代码,需先对Java代码的方法测试,再进行接口测试,在注明做出的修改后才允许提交;
#### 硬件程序开发
后续会新建仓库存储硬件程序相关的开发,目前处于学习阶段;
#### 运维开发
负责软件镜像的维护与发布、脚本编写、云端软件部署、硬件程序调试.
---
2022-3-25重新开发,在已有功能模块基础上进行开发
---
2022-05-04 软件前后端的主要功能已实现
2022-05-04 [mqtt身份验证使用说明](others/README.md)
2022-05-04 [后端使用说明](backend/README.md)
2022-05-04 [前端使用说明](frontend/README.md)
2023-05-30 更新README.md
2022-05-04 如果遇到问题,可联系作者邮箱:adjaisd@qq.com
---