0028Java程序设计-智能农场监控报警系统设计与实现

文章目录

    • 摘要
    • 目 录
    • 系统设计
    • 开发环境

摘要

我国是一个以农业为主的国家,在当今社会信息化迅速发展的背景下,将信息技术与农业相融合是必然的趋势。现代信息技术在农业生产中的运用,主要体现在两个领域:一是传感器技术;只要将这些传感器安装在农场内的任何一个地方,就能得到土壤的营养、湿度和温度等信息,这样就算不在农场内,农场主也能随时了解到农场的情况。随着科技的进步,规模化经营模式已被广泛应用于农业生产中,并在农业生产中发挥了重要作用。在分析了有关农业生产的数据基础上,根据本专业的计算机技术特征,开发了一个智能农场监控报警系统。该系统以MVC架构为基础,利用HTML和JavaScript技术,使农业生产由手工作业向信息化和科技化转型。本文主要实现的功能有土地管理、设备管理、监控管理、环境监控、阈值控制、预警信息和数据分析等。

关键词:智能农场监控报警系统,B/S架构,MySQL数据库

目 录

1 绪论… 1

1.1 课题背景… 1

1.2 课题意义… 1

1.3 研究现状… 2

1.4 研究内容… 2

2 相关技术… 4

2.1 MVC结构… 4

2.2 B/S架构… 4

2.3 MySQL数据库… 5

2.4 小结… 6

3 需求分析… 7

3.1 技术可行性分析… 7

3.2 经济可行性… 7

3.3 功能需求… 7

3.4 小结… 8

4 系统设计… 9

4.1 系统结构… 9

4.2 数据库设计… 9

4.2.1 数据库ER图… 9

4.2.2 数据库表设计… 10

4.3 小结… 11

5 系统的实现… 17

5.1 登录界面… 17

5.2 土地信息… 17

5.3 环境监控… 18

5.4 监控管理… 18

5.5 预警管理… 18

5.6 数据分析… 19

5.7 小结… 19

6 系统测试… 21

6.1 测试目的… 21

6.2 测试方法… 21

6.3 测试步骤… 21

6.4 测试实施… 22

6.4.1 功能测试… 22

6.4.2 性能测试… 22

6.4.3 兼容性测试… 23

6.5 小结… 23

7 总结与展望… 25

7.1 总结… 25

7.2 展望… 25

参考文献… 26

致谢… 27

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DbUtil {
	private String dbUrl="jdbc:mysql://127.0.0.1:3306/database?serverTimezone=UTC&useSSL=false"; // 数据库连接地址
	private String dbUserName="root"; // 用户名
	private String dbPassword="123456"; // 密码
	private String jdbcName="com.mysql.cj.jdbc.Driver"; // 驱动名称
	/**
	 * 获取数据库连接
	 * @return
	 * @throws Exception
	 */
	public Connection getCon(){
		try {
			Class.forName(jdbcName);
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		Connection con = null;
		try {
			con = DriverManager.getConnection(dbUrl, dbUserName, dbPassword);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return con;
	}
	/**
	 * 关闭数据库连接
	 * @param con
	 * @throws Exception
	 */
	public void closeCon(Connection con)throws Exception{
		if(con!=null){
			con.close();
		}
	}
	
	public static void main(String[] args) {
		DbUtil dbUtil=new DbUtil();
		try {
			dbUtil.getCon();
			System.out.println("数据库连接成功!");
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.out.println("数据库连接失败");
		}
	}
}


系统设计

img

登录模块:

a. 用户名和密码校验:用户输入用户名和密码,系统将用户名和密码与数据库中存储的用户信息进行比对,如果匹配成功,则允许用户登录系统,否则提示登录失败。

b. 权限控制:系统根据用户的角色和权限设置,控制用户在系统中的操作权限和访问权限。

土地管理模块:

a. 新增土地信息:管理员可以输入土地的面积、状态、所属农场等信息,将其存储到数据库中。

b. 修改土地信息:管理员可以选择需要修改的土地信息,并进行相应的修改操作。

c. 查看土地信息:管理员可以查询系统中所有的土地信息,并进行相应的查看操作。

d. 删除土地信息:管理员可以选择需要删除的土地信息,并进行相应的删除操作。

e. 导出土地信息:管理员可以将系统中的土地信息导出为Excel或PDF格式,以方便管理和分享。

设备管理模块:

a. 新增设备信息:管理员可以输入设备的类型、状态、所属土地、安装时间等信息,将其存储到数据库中。

b. 修改设备信息:管理员可以选择需要修改的设备信息,并进行相应的修改操作。

c. 查看设备信息:管理员可以查询系统中所有的设备信息,并进行相应的查看操作。

d. 删除设备信息:管理员可以选择需要删除的设备信息,并进行相应的删除操作。

e. 导出设备信息:管理员可以将系统中的设备信息导出为Excel或PDF格式,以方便管理和分享。

监控管理模块:

a. 新增监控信息:管理员可以输入监控设备、监控时间、监控结果等信息,将其存储到数据库中。

b. 修改监控信息:管理员可以选择需要修改的监控信息,并进行相应的修改操作。

c. 查看监控信息:管理员可以查询系统中所有的监控信息,并进行相应的查看操作。

d. 删除监控信息:管理员可以选择需要删除的监控信息,并进行相应的删除操作。

e. 导出监控信息:管理员可以将系统中的监控信息导出为Excel或PDF格式,以方便管理和分享。

环境监控模块:

a. 新增环境信息:管理员可以输入温度、湿度、光照等环境参数,将其存储到数据库中。

b. 修改环境信息:管理员可以选择需要修改的环境信息,并进行相应的修改操作。

c. 查看环境信息:管理员可以查询系统中所有的环境信息,并进行相应的查看操作。

d. 删除环境信息:管理员可以选择需要删除的环境信息,并进行相应的删除操作。

e. 导出环境信息:管理员可以将系统中的环境信息导出为Excel或PDF格式,以方便管理和分享。

阈值控制模块:

a. 设置阈值规则:管理员可以设置温度、湿度、光照等环境参数的阈值,将其存储到数据库中。

b. 监控阈值:系统会自动监控环境参数,当环境参数超出设定阈值时,系统会自动发出警报提醒管理员进行调整。

预警信息模块:

a. 查看预警信息:管理员可以查询系统中所有的预警信息,并进行相应的查看操作。

b. 处理预警信息:当系统发出预警信息时,管理员可以根据预警内容和类型进行相应的处理操作。

数据分析模块:

a. 分析土地信息:管理员可以对土地信息进行统计和分析,了解农场的土地利用情况和规划情况。

b. 分析设备信息:管理员可以对设备信息进行统计和分析,了解农场的设备使用情况和运行情况。

c. 分析环境信息:管理员可以对环境信息进行统计和分析,了解农场的环境状况和优化策略。

d. 分析预警信息:管理员可以对预警信息进行统计和分析,了解农场的安全状况和风险情况。

e. 导出数据分析报告:管理员可以将数据分析结果导出为Excel或PDF格式的报告,以方便管理和分享。

修改密码模块:

a. 修改密码:用户可以输入原密码和新密码,系统将新密码更新到数据库中,确保账户的安全性和保密性。

5.1 登录界面

登录角色有用户和管理员,输入对应的账号和密码可以进入相应的界面,不同身份进入系统的操作权限不一样。登录界面如图5-1所示。

img

5.2 土地信息

用户登录系统点击“农场管理”按钮,进入土地信息列表,在该界面可以看到土地的相关信息,还可以导出数据。土地信息如图5-2所示。

img

5.3 环境监控

用户可以查看每一块土地的环境监控,也可以在该界面导出环境监控信息,环境监控如图5-3所示。

img

5.4 监控管理

管理员登录系统之后可以对监控信息进行管理,可以新增监控的土地区域和监控机器,编辑和删除监控信息。监控管理界面如图5-4所示。

img

5.5 预警管理

管理员可以查看每块土地的状态,出现预警状况会显示警告状态。预警管理界面如图5-5所示。

img

5.6 数据分析

管理员可以查看农场每一块土地的数据分析,也可以新增和删除。数据分析如图5-6所示。

img

开发环境

开发工具:idea、Navicat

数据库:MySQL8.0

环境配置:jdk1.8 、Tomcat8.5

开发人员:IT012201

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/109526.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

一文了解什么是JWT 与sessions

​session 和 JSON Web 令牌 (JWT) 是在调用之间维护此身份验证状态的两种最流行的方法。两者各有利弊,在它们之间进行选择需要了解这些权衡以及它们与应用程序的特定需求之间的关系。 一、基于session的身份验证 在基于session的身份验证(也称为基于 c…

DbVisualizer和DBeaver启动不来,启动报错

启动报错 大多数启动报错都是因为你没有用管理员身份运行程序,提示的错误都是八竿子打不着的什么jdk、jvm问题。 比如DbVisualizer提示什么jvm配置参数,实际dbvis.exe 用管理员身份打开即可(右键 dbvis.exe->属性->兼容性->勾上 “…

vue2+antd——实现动态菜单路由功能——基础积累

vue2antd——实现动态菜单路由功能——基础积累 实现的需求:效果图:登录接口处添加以下代码loadRoutes方法内容如下: 最近在写后台管理系统,遇到一个需求就是要将之前的静态路由改为动态路由,使用的后台框架是&#xf…

QMI8658A_QMC5883L(9轴)-EVB 评估板

1. 描述 QMI8658A_QMC5883L(9轴)-EVB 评估板是一款功能强大的9轴IMU传感器,它利用了QMA8658A 内置的3轴加速度计和3轴陀螺仪,同时结合QMC5883L的3轴地磁数据,来测量物体在三维空间中的角速度和加速度(严格意义上的IMU只为用户提供…

linux驱动开发-点亮第一个led灯

linux驱动开发-点亮第一个led灯 一.背景知识二.如何写驱动程序三.实战演练3.1 查询原理图3.2 配置引脚为gpio模式3.3 配置引脚为输出模式3.4 DR寄存器 四.代码实例4.1 驱动层4.2 应用层 一.背景知识 我们这里使用的是百问网的imx_6ullpro的开发板。这里和裸机不同的是&#xf…

【Java】电子病历编辑器源码(云端SaaS服务)

电子病历编辑器极具灵活性,它既可嵌入到医院HIS系统中,作为内置编辑工具供多个模块使用,也可以独立拿出来,与第三方业务厂商展开合作,为他们提供病历书写功能,充分发挥编辑器的功能。 电子病历基于云端SaaS…

1300*C. Social Distance(贪心构造)

Problem - 1367C - Codeforces 解析&#xff1a; 统计出所有连续0序列&#xff0c;并且记录其左右两侧有没有1&#xff0c;然后对于四种情况分别判断即可。 #include<bits/stdc.h> using namespace std; int t,n,k; signed main(){scanf("%d",&t);while(…

论坛搭建.

目录 一.配置软件仓库 二.安装http php miriadb 三.配置数据库 四.源码拖拽并解压 五.防火墙通过 六.浏览器安装测试 七.界面参数设置 一.配置软件仓库 1.进入仓库目录 cd /etc/yum.repos.d 2.创建仓库文件 vim local.repo 3.在 local.repo中写入:(粘贴的时候注意位…

栈队列OJ练习题(C语言版)

目录 一、括号匹配问题 思路&#xff1a; 完整版C语言代码&#xff1a; 讲解&#xff1a; 二、用队列实现栈 思路&#xff1a; 完整版C语言代码&#xff1a; 讲解&#xff1a; 三、用栈实现队列 思路&#xff1a; 完整版C语言代码&#xff1a; 讲解&#xff1a…

任正非说:扩张必须踩在坚实的基础上,擅自扩张只能是自杀。

嗨&#xff0c;你好&#xff01;这是华研荟【任正非说】系列的第23篇文章&#xff0c;让我们继续聆听任正非先生的真知灼见&#xff0c;学习华为的管理思想和管理理念。 一、要想赢&#xff0c;要么在剑法上高于人&#xff0c;要么在盾牌上坚于人。若果剑不如人&#xff0c;就要…

虚拟机上的linux centos7无法连接ssh

1、排查有没有安装 openssh-server&#xff0c;在终端中输入 yum list installed | grep openssh-server此处显示已经安装了 openssh-server&#xff0c;如果又没任何输出显示表示没有安装 openssh-server&#xff0c;通过输入 yum install openssh-server进行安装 2、找到了…

Selenium3-当元素通过@FindBy获取时,返回元素为null

报错: 在获取元素的js属性时一直获取不到&#xff0c;报空指针&#xff0c;定位到元素时&#xff0c;发现是FindBy的元素没有找到 解决方法: 在page类的构造函数中加上了 界面初始化&#xff0c;让元素先隐式加载&#xff0c;这样就不会出现返回元素为空的情况辣 PageFactory…

15. 机器学习 - 支持向量机

Hi, 你好。我是茶桁。 逻辑回归预测心脏病 在本节课开始呢&#xff0c;我给大家一份逻辑回归的练习&#xff0c;利用下面这个数据集做了一次逻辑回归预测心脏病的练习。 本次练习的代码在「茶桁的AI秘籍」在Github上的代码库内&#xff0c;数据集的获取在文末。这样做是因为我…

pytorch深度学习实践(一):线性模型y=w*x和y=w*x+b的代码和绘图实现

目录 题目描述1. yw*x2. yw*xb 代码第一题: y w*x第二题:y wxb 绘图工具 学习视频&#xff1a; 刘二大人pytorch1-线性模型 题目描述 1. yw*x 使用线性模型y w*x计算模型的损失值并且使用matplotlib给出cost function图像。 2. yw*xb 使用线性模型y w*xb给出cost funct…

计算机网络基础三

课程目标 理解路由表的作用 能够读懂路由表信息 能够使用图形抓包工具 wireshark 进行数据包的抓取 &#xff0c;如&#xff08; TCP/IP 的三次握手四次断开&#xff09; 一、路由表 思考&#xff1a; 什么是交换,什么是路由,什么是路由表&#xff1f;1. 交换是指同网络访…

外卖跑腿小程序开发如何满足不断变化的用户需求?

外卖跑腿小程序市场竞争激烈&#xff0c;用户需求不断演变。为了保持竞争力&#xff0c;开发团队需要不断适应变化&#xff0c;提供新功能和改进用户体验。本文将讨论如何通过技术手段来满足不断变化的用户需求。 1. 灵活的后端服务 后端服务是外卖跑腿小程序的核心&#xf…

如何优雅地单元测试 Kotlin/Java 中的 private 方法?

翻译自 https://medium.com/mindorks/how-to-unit-test-private-methods-in-java-and-kotlin-d3cae49dccd ❓如何单元测试 Kotlin/Java 中的 private 方法❓ 首先&#xff0c;开发者应该测试代码里的 private 私有方法吗&#xff1f; 直接信任这些私有方法&#xff0c;测试到…

css画一条虚线,用到background-image:linear-gradient线性渐变的属性

CSS实现虚线的方法_css 虚线_saltlike的博客-CSDN博客 渐变属性(background-image)全解析_background-image linear_大聪明码农徐的博客-CSDN博客 Background:linear-gradient()详解_background: linear-gradient_小白白中之白的博客-CSDN博客 注意&#xff1a; 必须要写高…

最短路径:迪杰斯特拉算法

简介 英文名Dijkstra 作用&#xff1a;找到路中指定起点到指定终点的带权最短路径 核心步骤 1&#xff09;确定起点&#xff0c;终点 2&#xff09;从未走过的点中选取从起点到权值最小点作为中心点 3&#xff09;如果满足 起点到中心点权值 中心点到指定其他点的权值 < 起…

C++进阶语法——智能指针【学习笔记(五)】

文章目录 1、智能指针简介1.1 原始指针&#xff08;raw pointer&#xff09;的⼀些问题1.2 智能指针&#xff08;smart pointers&#xff09; 2、智能指针&#xff08;smart pointers&#xff09;——unique_ptr2.1 unique_ptr 的声明2.2 unique_ptr 的函数2.3 ⾃定义类型使⽤ …