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

news2024/10/6 12:22:24

文章目录

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

摘要

我国是一个以农业为主的国家,在当今社会信息化迅速发展的背景下,将信息技术与农业相融合是必然的趋势。现代信息技术在农业生产中的运用,主要体现在两个领域:一是传感器技术;只要将这些传感器安装在农场内的任何一个地方,就能得到土壤的营养、湿度和温度等信息,这样就算不在农场内,农场主也能随时了解到农场的情况。随着科技的进步,规模化经营模式已被广泛应用于农业生产中,并在农业生产中发挥了重要作用。在分析了有关农业生产的数据基础上,根据本专业的计算机技术特征,开发了一个智能农场监控报警系统。该系统以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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于SpringBoot和Vue的车辆违章信息查询系统

一、绪论 1.1 研究背景 当前社会交通事故频发,车辆违章现象屡见不鲜。为了解决这一问题,车辆违章信息查询系统应运而生。该系统能够自动检测车辆违章行为并提供相关信息,为交通管理提供了便利。 目前,基于 Java 语言的前后端完…

0030Java程序设计-积分管理系统论文

文章目录 摘  要**目  录**系统实现系统功能需求3.2.1 管理员功能3.2.2 柜员功能 开发环境 摘  要 随着计算机和网络的不断革新,世界已经进入了前所未有的电子时代。作为实用性强、应用范围广泛的会员管理系统也正在被越来越多的各类企业用于消费管理领域。然…

丰富你的场景验证用例

即使对于一个非常简单的IP,我们也无法验证充分,或者说无法证明芯片没有bug。一个验证人员所能够做的就是尽可能地发现更多的bug,增强流片成功的信心。 对于芯片的验证用例,在各个基本分支通路都已经覆盖了之后,还需要考…

Proteus仿真--单个数码管循环显示0-9(仿真文件+程序)

本文主要介绍基于51单片机的单个数码管循环显示0-9,Proteus仿真(完整仿真源文件及代码见文末链接) 仿真运行视频 Proteus仿真--单个数码管循环显示0-9(仿真文件程序) 附完整Proteus仿真资料代码资料 百度网盘链接: ht…

【波形图】在X轴上显示时间和日期

下面的VI截图展示了使用“获取日期/时间(秒)VI”的不同方法。 然后需要设置一下波形图的属性。 由“获取日期/时间(秒)(Get Date/Time In Seconds)”VI创建的时间标识表示自世界时间1904年1月1日星期五12:0…

走近Python爬虫(上):爬虫的作用和技术、获取网页内容、解析网页内容

文章目录 一、绪论爬虫的作用爬虫的技术 二、获取网页—requests模块1.requests模块简单使用2.使用多线程 三、解析网页1.XPath 参考 本文是Python爬虫系列博客的第一篇,内容概览如下: 一、绪论 爬虫的作用 收集数据: 爬虫可用于收集数据&…

roboflow标注检测 / 分割数据集

对比了labelme, makesense.ai和roboflow这3个可以标注数据集的工具之后, 总结一下它们的特点: labelme需要配环境安装,标注的结果是json文件,需要转成所需格式。 makesense.ai不需要下载,在线标注,能用来标…

ENSP L2TP Over IPSec

本文拓扑沿用上一篇文章《ENSP L2TP 配置》,相关配置有差异。 拓扑 准备工作 客户端软件:URL 真机网络可以到达LNS10.100.1.254 防火墙上接口划分到相应安全区域,安全策略全开(本文只是测试,现网中根据自己网络情况严格设置安…

Python selenium驱动下载,模块安装以及基本使用

视频版教程:一天掌握python爬虫【基础篇】 涵盖 requests、beautifulsoup、selenium 我们以谷歌浏览器为例讲解。首先我们要去下载谷歌浏览器驱动。 谷歌浏览器驱动下载地址:Chromium History Versions Download ↓ 查看谷歌浏览器版本 右上角三个点 …

SpringCloud之Eureka的学习【详细】

目录 服务架构演变 单体架构 分布式架构 分布式架构需要考虑的问题 微服务 架构比较 微服务技术对比 服务拆分注意事项 案例 服务远程调用 RestTemplate Eureka注册中心 RestTemplate存在的问题 服务调用考虑的问题 Eureka的作用 搭建EurekaServer 服务注册 …

【达梦数据库】数据查询操作(超详细)

文章目录 数据查询1. 单表查询1. 简单查询2. 条件查询总结举例 3. 函数查询常用多行函数常用单行函数1. 字符函数2. 数值函数3. 日期时间函数常用日期型函数举例 4. 转换函数 4. 查询结果排序(order by)参数说明:注意事项: 2. 连接查询1. 交叉连接&#…

0034Java程序设计-基于Java的飞机大战游戏的设计与实现论文

文章目录 摘 要目 录系统设计开发环境 摘 要 现如今,随着智能手机的兴起与普及,加上4G(the 4th Generation mobile communication ,第四代移动通信技术)网络的深入,越来越多的IT行业开始向手机行业转移重心…

JVM虚拟机:从结构到指令让你对栈有足够的认识

本文重点 在前面的课程中,我们学习了运行时数据区的大概情况,从本文开始,我们将对一些组件进行详细的介绍,本文我们将学习栈。栈内存主管java的运行,是在线程创建时创建的,它是线程私有的,它的生命周期是跟随线程的生命期,也就是说线程结束栈内存就释放了,对于栈来说…

web:[网鼎杯 2020 青龙组]AreUSerialz

题目 点进题目发现 需要进行代码审计 function __destruct() {if($this->op "2")$this->op "1";$this->content "";$this->process();}这里有__destruct()函数,在对象销毁时自动调用,根据$op属性的值进行…

数据结构与算法:二叉树之“堆排序”

目录 一、树概念及结构 二、二叉树树概念及结构 特殊的二叉树 三、堆的概念及结构 四、堆的创建 1、声明结构体 2、初始化 3、销毁 4、添加新元素 5、交换元素 6、向上调整 7、判断堆是否为空 8、移除堆顶元素 9、向下调整 10、获取堆元素个数 五、使用堆排序…

【网络编程】传输层——UDP协议

文章目录 一、传输层1. 再谈端口号2. 端口号范围划分3. 认识知名端口号4. 两个问题5. netstat 与 pidof 二、UDP协议1. UDP协议格式2. UDP协议的特点3. 面向数据报4. UDP的缓冲区5. UDP使用注意事项6. 基于UDP的应用层协议 一、传输层 传输层 负责负责两台计算机之间的端到端的…

阿里云2023年双11活动时间、活动入口、活动内容详细解读

阿里云2023年双11活动正在火热进行中,双11活动时间,阿里云推出了金秋上云季活动,活动包括满减礼包福利,云产品降价让利,下面给大家整理分享阿里云双11活动时间、活动入口、活动内容,助力大家轻松上云&#…

网络爬虫-Requests库主要方法解析

一、Requests库的7个主要方法 其中,request()是 基础方法,其他6个方法都是基于request()的,但最常用的是get() 和 head() 二、request() 13个访问控制参数: 三、get(): 获取某一个url链接的相关资源 四、head() 五、post() 六、…

LCR 021. 删除链表的倒数第 N 个结点

这篇也是凑数的 .... 描述 : 给定一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点 题目 : LeetCode 删除链表的倒数第Nge节点 : LCR 021. 删除链表的倒数第 N 个结点 分析 : 首先创建一个虚拟节点(哨兵节点) , 虚拟节点下一节点指向头节…

从 malloc 分配大块内存失败 来简看 linux 内存管理

文章目录 背景Glibc MallocMalloc 分配大块内存失败原因Overcommit_memory 实现OOM (Out Of Memory) 的实现 背景 应用进程 malloc 返回了null,但是观察到的os 的free内存还有较大的余量 ,很奇怪为什么会这样? 不可能是oom导致的&#xff0…