【非常小白的后端学习笔记二】设计一个简单的智能家居管理系统(已更新效果图)

经过上一篇文章中对后端发展技术的总结,我认为我可以根据这个发展过程逐步增加自己项目中的技术点。因此,我需要设计一个具体的项目,不断往这个项目中增加内容。
以下内容是我在gpt老师的帮助下共同完成的,内容很多,且目前还没设计完成,我将把笔记分成多个博客上传,下面上传的是到今天为止已经完成的部分。
另外,我把实验过程上传到CSDN,一方面是为了督促自己学习,另一方面是为了方便查看笔记,所以会有自己的侧重点,也可能会有出错的地方,这是不够完美的笔记,请不要介意。以及,如发现错误,欢迎批评指正,感恩~

智能家居管理系统1.0

  • 简介
    • 引言
    • 用户可以做什么
    • 相关技术
  • 一、概念结构设计
    • 1.1 E-R图
      • 1.1.1 实体与属性
      • 1.1.2 完整的E-R图
    • 1.2 数据字典:
  • 二、逻辑结构设计
    • 2.1 关系模式:
  • 三、系统功能模块图
    • 3.1 功能设计
    • 3.2 效果图(部分)
  • 四、详细设计
  • 五、系统实现与设计

简介

我设计了一个智能家居管理系统,这一版本的功能比较简单,版本号命名为1.0。

引言

在现代社会,科技的飞速发展正在深刻地改变着我们的生活方式。智能家居管理系统正是在这一大背景下应运而生的创新产品。它不仅代表着居家生活的未来趋势,而且彰显了科技带来的便利和舒适。本系统的核心理念是通过高度集成的智能化解决方案,将家庭成员的日常生活与科技无缝对接,从而提升生活品质,增强家居安全,实现能源效率的最大化。

用户可以做什么

在目前的初步设计下,用户可以通过本系统实现以下功能:

  1. 家庭管理: 用户可以添加并管理自己的家,无论是一个还是多个,每个家都有一个独立的识别ID和详细信息。

  2. 访客管理: 系统提供了访客记录功能,使得用户可以查看所有访问者的信息,包括到访时间,确保家庭安全。

  3. 健康与环境监测: 实时监控空气质量、温度和湿度,为家庭成员提供健康舒适的居住环境。

  4. 能源监控: 对家中的用电、用水、燃气和网络使用情况进行监测,帮助用户合理规划能源使用,降低开支。

  5. 智能家居控制: 无论用户身在何处,都可以通过系统远程控制家中的智能设备,包括灯光、暖气等。

  6. 售后服务: 用户可以方便地查询家电的购买和保修信息,系统还将与商家连接,为用户提供便捷的售后服务。

相关技术

本系统将采用Java语言搭配Spring Boot框架进行后端开发,利用MySQL数据库管理数据。前端将应用现代网页技术,包括但不限于HTML, CSS, JavaScript等,来构建一个直观、响应式的用户界面。

在开发过程中,由于对前端部分不够了解,我将利用gpt共同完成。另外,在这个过程中,我预期实现的目标包括:

  1. 深入理解并应用Spring Boot框架处理请求,实现业务逻辑和响应数据,掌握其依赖注入、安全性、数据管理等核心功能。
  2. 采用MyBatis操作MySQL数据库,通过编写SQL语句和Mapper接口,采用了动态SQL和XML映射文件等技术,实现基本的增删查改等功能。
  3. 除了数据库的基本操作以外,还将涉及更复杂的操作,包括分页查询、预编译SQL、查询优化、事务管理、触发器等。
  4. 了解前端开发技能,包括构建动态网页和用户界面(非我的学习重点)。
  5. 使用Maven对项目进行依赖管理和构建。
  6. 学习使用版本控制工具如Git来进行代码管理。

下面开始我的的项目设计。由于项目目前还没有设计完成,且内容比较多,后续我将继续更新,写成多篇笔记。

一、概念结构设计

1.1 E-R图

1.1.1 实体与属性

  1. 用户(user):
    用户ID(user_id)、用户名(username)、密码(password)、电话号码(phone_num)。
  2. 家(home):
    家ID(home_id)、地址(address)、家的名称(name)。
  3. 访客管理系统(visitor_management):
    记录ID(record_id)、家ID(home_id,外键)、访客ID(visitor_id)、访问时间(visit_time)。
  4. 健康和环境监测系统(health_environment_monitoring):
    记录ID(record _id)、家ID(home_id,外键)、监测时间(monitoring_time)、空气质量(air_quality)、温度(temperature)、湿度(humidity)。
  5. 能源监控系统(energy_monitoring):
    记录ID(record_id)、家ID(home_id,外键)、监测时间(monitoring_time)、用电量(electricity_usage)、用水量(water_usage)、燃气使用量(gas_usage)、网络使用情况(internet_usage)。
  6. 家电(appliance):
    设备ID(device_id)、家ID(home_id,外键)、家电类型ID(type_id,外键)、当前模式(current_mode, 外键)、产品名称(product_name)、购买时间(purchase_date)、保修期(warranty_period)、商家ID(vendor_id,外键)。
  7. 家电类型(device_type):
    类型ID(type_id)、家电类型名称(type_name)。
  8. 智能模式(mode):
    模式ID(mode_id)、模式所属类型ID(type_id,外键)、模式名称(mode_name)、模式描述(mode_description)。
  9. 商家(vendor):
    商家ID(vendor_id)、商家名称(vendor_name)、电话号码(phone_num)。

1.1.2 完整的E-R图


联系说明:

  1. 用户与家:多对多关系(需多建立一张对应表)。
  2. 家与访客管理系统:一对多关系。
  3. 家与健康和环境监测系统:一对多关系。
  4. 家与能源监控系统:一对多关系。
  5. 家与家电:一对多关系。
  6. 家电与商家:一对多关系。
  7. 家电类型与家电:一对多关系。
  8. 家电类型与智能模式:一对多关系。
  9. 家电与智能模式:多对多关系(需多建立一张对应表)。

1.2 数据字典:

1.	用户(user)
•	user_id:整型(INT),主键。
•	username:字符串(VARCHAR),用户的名字。
•	password:字符串(VARCHAR),加密的密码。
•	phone_num:字符串(VARCHAR),联系方式。
2.	家(home)
•	home_id:整型(INT),主键。
•	address:字符串(VARCHAR),地址。
•	name:字符串(VARCHAR),家的名称。
3.	用户-家的对应表(user_home)
•	user_id:整型(INT),外键,指向用户表。
•	home_id:整型(INT),外键,指向家表。
4.	访客管理系统(visitor_management)
•	record_id:整型(INT),主键。
•	home_id:整型(INT),外键,指向家表。
•	visitor_id:整型(INT),访客的标识。
•	visit_time:日期时间(DATETIME),访问时间。
5.	环境监测系统(health_environment_monitoring)
•	record_id:整型(INT),主键。
•	home_id:整型(INT),外键,指向家表。
•	monitoring_time:日期时间(DATETIME),监测时间。
•	air_quality:字符串(VARCHAR),空气质量。
•	temperature:浮点型(FLOAT),温度。
•	humidity:浮点型(FLOAT),湿度。
6.	能源监控系统(energy_monitoring)
•	record_id:整型(INT),主键。
•	home_id:整型(INT),外键,指向家表。
•	monitoring_time:日期时间(DATETIME),监测时间。
•	electricity_usage:浮点型(FLOAT),用电量。
•	water_usage:浮点型(FLOAT),用水量。
•	gas_usage:浮点型(FLOAT),燃气使用量。
•	internet_usage:字符串(VARCHAR),网络使用情况。
7.	家电(appliance)
•	device_id:整型(INT),主键。
•	home_id:整型(INT),外键,指向家表。
•	type_id:整型(INT),外键,指向家电类型表。
•	current_mode:整型(INT),外键,指向智能模式表。
•	product_name:字符串(VARCHAR),产品名称。
•	purchase_date:日期(DATE),购买时间。
•	warranty_period:字符串(VARCHAR),保修期。
•	vendor_id:整型(INT),外键,指向商家表。
8.	商家(vendor)
•	vendor_id:整型(INT),主键。
•	vendor_name:字符串(VARCHAR),商家名称。
•	phone_num:字符串(VARCHAR),电话号码。
9.	家电类型(device_type)
•	type_id:整型(INT),主键。
•	type_name:字符串(VARCHAR),家电类型名称。
10.	智能模式(mode)
•	mode_id:整型(INT),主键。
•	mode_name:字符串(VARCHAR),模式名称。
•	mode_description:字符串(VARCHAR),模式描述。
•	type_id:整型(INT),外键,指向家电类型表。
11.	家电与智能模式的对应表(appliance_mode)
•	device_id:整型(INT),外键,指向家电表。
•	mode_id:整型(INT),外键,指向智能模式表。

二、逻辑结构设计

2.1 关系模式:

1.	user(user_id, username, password, phone_num)
•	主码:user_id
•	外码:无
•	满足的范式:3NF
2.	home(home_id, address, name)
•	主码:home_id
•	外码:无
•	满足的范式:3NF
3.	user_home(user_id, home_id)
•	主码:(user_id, home_id)
•	外码:user_id 引用 user(user_id),home_id 引用 home(home_id)
•	满足的范式:3NF
4.	visitor_management(record_id, home_id, visitor_id, visit_time)
•	主码:record_id
•	外码:home_id 引用 home(home_id)
•	满足的范式:3NF
5.	health_environment_monitoring(record_id, home_id, monitoring_time, air_quality, temperature, humidity)
•	主码:record_id
•	外码:home_id 引用 home(home_id)
•	满足的范式:3NF
6.	energy_monitoring(record_id, home_id, monitoring_time, electricity_usage, water_usage, gas_usage, internet_usage)
•	主码:record_id
•	外码:home_id 引用 home(home_id)
•	满足的范式:3NF
7.	appliance(device_id, home_id, type_id, current_mode, product_name, purchase_date, warranty_period, vendor_id)
•	主码:device_id
•	外码:home_id 引用 home(home_id),type_id 引用 device_type(type_id),vendor_id 引用 vendor(vendor_id),current_mode 引用 mode(mode_id)
•	满足的范式:3NF
8.	vendor(vendor_id, vendor_name, phone_num)
•	主码:vendor_id
•	外码:无
•	满足的范式:3NF
9.	device_type(type_id, type_name)
•	主码:type_id
•	外码:无
•	满足的范式:3NF
10.	mode(mode_id, mode_name, mode_description, type_id)
•	主码:mode_id
•	外码:type_id 引用 device_type(type_id)
•	满足的范式:3NF
11.	appliance_mode(device_id, mode_id)
•	主码:(device_id, mode_id)
•	外码:device_id 引用 appliance(device_id),mode_id 引用 mode(mode_id)
•	满足的范式:3NF

三、系统功能模块图

3.1 功能设计

整体效果:
整体效果

能源监测系统:
能源监测效果
访客管理系统:

健康与环境监测系统:

家电系统:

3.2 效果图(部分)

登录:主界面

注册:点击登录界面下方的“立即注册”进入注册界面,注册完成后会自动跳转到登录界面,或直接点返回

家选项界面:登陆后进入家选项界面,右侧将根据后端查询的结果,显示对应数量的家居号和编号

家信息修改界面:点击左下角,可管理当前账号的家

家界面:在家选项界面的右侧,点击家居号,可进入具体的家居管理界面,界面包括主要的四个功能

能源监测:点击能源监测,进入当前监测界面,可选择具体的监测内容

以电界面为例:左侧显示当前数据,右侧显示具体的变化曲线

水、燃气、网效果相同,不再展示,。

访客管理系统包括三个主要功能:

监控:这里用暂时用本地摄像头模拟。

访客列表和信任列表均展示表格,且做了添加/移除信任的操作:


健康与环境系统和能源监测系统类似,这里不再展示。

最后是家电界面,为了减轻前端部分的工作量,我简化了网页内容,涉及的内容如下:

  1. 照明类:吊灯、台灯、地灯、智能LED灯、智能灯带、其他
  2. 窗帘类:遮光帘、透光帘、其他
  3. 空调类:中央空调、普通空调、空气净化器、加湿器、除湿器、暖气片、其他
  4. 机器人类:扫地机器人、助理机器人、宠物机器人、教育辅助机器人、其他
  5. 厨房类:智能冰箱、智能水龙头、智能料理机、其他
  6. 娱乐类:智能电视、游戏机、家庭影院系统、数字音乐播放器、智能音箱、其他
  7. 安防类:智能门锁、智能车库门控制器、其他
  8. 健康类:智能健康监测设备、其他
  9. 家居自动化类:智能插座、自动宠物喂食器、智能浇花系统、其他

在第一个下拉栏中选择设备类型(如照明类)、在第二个下拉栏中选择具体设备(如台灯),表格将展示屋内所有已录入的设备类(如全部台灯,不同台灯有着不同编号/名称等)。
如下图所示:

点击智能模式的修改,出现悬浮窗,可更改模式,具体设备可选择的模式不同,这里需要读取后端的智能模式(mode)表,查询当前类型设备可选模式,图中为效果样例:

上述效果图的代码见我的GitHub,双击login进入主界面。

后续内容将在下一篇笔记中说明。

四、详细设计

4.1 环境准备
4.1.1 sql建表语句:
4.1.2 数据准备
4.1.3 springboot等开发环境准备
4.2 接口文档
4.3 前端准备
4.4 后端(详细)

五、系统实现与设计

版权声明:本文为博主作者:晴崽噼里啪啦原创文章,版权归属原作者,如果侵权,请联系我们删除!

原文链接:https://blog.csdn.net/weixin_42730271/article/details/135414334

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
乘风的头像乘风管理团队
上一篇 2024年5月6日
下一篇 2024年5月6日

相关推荐