物联网毕设——居家工作状态监测系统

使用技术

后端:java11、springboot

前端:Hbuilder开发小程序

ui设计:墨刀工具设计

硬件:MicroPython框架

前言

居家工作状态监测系统旨在为用户提供一个实时的居家环境监测服务,让用户能够了解自己周围的环境变化,并采取相应的措施保护自己的健康。该系统将采集光敏、温湿度、人体红外、超声波等传感器数据,通过摄像头配合运动识别算法来识别用户运动状态,以及通过一定的软硬件逻辑监测低头距离和持续时间、室内光线控制,最后通过小程序提供实时数据显示和记录分析等功能。【嗯,单纯是我毕设自己构思的简单功能】

功能需求分析

image-20231128152327914

(1)实时数据采集:后台系统需要在不影响用户正常使用的情况下,实时采集各个传感器的数据,并能储存和处理这些数据。

(2)软件端数据显示和分析:小程序端需要将采集的数据以可视化的方式呈现给用户,提供用户针对实时数据可视化展示、历史数据查询等功能。

(3)光敏控制LED:系统需要根据采集的光敏数据控制LED的亮度和开关。

(4)小程序控制LED:小程序端可以通过发送指令来控制LED灯的开关。

(5)久坐时长统计:系统需要记录用户的久坐时长,并通过小程序向用户提供活动建议和提醒,以降低久坐风险。

(6)摄像头拍照:摄像头需要每一秒抓拍图片并把图片推送到小程序端给用户查看。

(7)用户拉伸次数统计:通过对摄像头对用户的运动请求进行分析并记录拉伸运动次数,以便为用户的健康提供建议。

(8)低头时长监测:检查用户久坐时的久坐情况,并给予适当的提示,让其纠正过近的距离

(9)光敏强度监测:系统需要监测周围环境的光强度,并提醒用户适当调整照明设备或避免长时间在电子屏幕前工作造成眼睛疲劳。

系统架构

image-20231128152259006

数据库的选择

系统用户操作数据——mysql

用来存储系统必要的数据,如:硬件标识相关数据,用户登录数据,用户工作记录数据

硬件感知数据——InfluxDB

考虑到硬件采集数据都是按秒甚至毫秒为单位做数据采集,这里我打算使用InfluxDB这个时序数据库来实时收集硬件端收集到的数据并及时记录入库。毕竟这个数据库它专为快速、高效地存储、查询和处理大型时间序列数据而设计,可以存储高容量、高吞吐量的时序数据,并有丰富的聚合函数、特殊函数和数据采样函数,用以支持高效的数据查询和分析。

img

图片数据——七牛云存储

系统中会有摄像头采集到的图片、以及用户登录后的头像图片等相关图片数据要做存储,为了让图片可以公网访问,而不是仅在本地可看的情况,我这里选择的是云存储的方式,通过自己提供的域名+相应的图片路径来实现图片的公网访问

img

传输协议选择

为了实现软硬件数据的互通,我这里选择的是MQTT协议进行数据传输。MQTT是一种轻量级、发布/订阅模型的协议,能够支持大量的传感器设备进行数据传输。这样,您的项目就可以轻松地添加新的传感器设备,而不用担心传输和处理的性能问题。

img

演示效果

这里只是做部分功能的大致介绍啊,详细的写有点多,我就长话短说啦

登录

img

LED灯控制

按钮点击开灯

img

可以看到硬件的led灯亮起

img

温湿度及低头距离统计

img

摄像头监控

逻辑是这样的实现的

img

效果如下:
image-20231127105859262

用户运动拉伸统计

通过摄像头的运动识别算法来检测镜头中的用户是否有活动的行为

img

当久坐超过一定时间,会通过小程序来进行消息提醒,如图

image-20231127110417261

传感器心跳包监控

通过监测各个传感器发送数据的情况来判定该传感器是否正常工作,如图所示,红色心跳表示传感器不工作或者异常,绿色心跳则是传感器正常工作的情况

img

可以优化的地方

  1. 登录只是做了简单的登录,重心更多放在了硬件数据和用户行为的解析上了
  2. 硬件没有做跟用户绑定的关系逻辑
  3. 硬件的使用程度不高,只是简单的要求其数据采集上传到软件端,并没有在硬件端做过多的逻辑实现及数据处理
  4. 小程序的ui交互欠佳,更多是类似于一个数据展示的地方,后续改进可以引入更多的需求的功能
  5. 软件后端没有做一个公共的数据接收逻辑来兼容不同类型的数据,或者说规定好数据格式来针对不同的传感器数据样式,这是后期可以优化的地方
  6. 硬件端容易因为频繁的数据采集导致硬件设备僵死
  7. 系统的日志记录和数据统计有待完善,目前只是简单做了一个初版
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值