系统架构
数据库的选择
系统用户操作数据——mysql
用来存储系统必要的数据,如:硬件标识相关数据,用户登录数据,用户工作记录数据
硬件感知数据——InfluxDB
考虑到硬件采集数据都是按秒甚至毫秒为单位做数据采集,这里我打算使用InfluxDB这个时序数据库来实时收集硬件端收集到的数据并及时记录入库。毕竟这个数据库它专为快速、高效地存储、查询和处理大型时间序列数据而设计,可以存储高容量、高吞吐量的时序数据,并有丰富的聚合函数、特殊函数和数据采样函数,用以支持高效的数据查询和分析。
图片数据——七牛云存储
系统中会有摄像头采集到的图片、以及用户登录后的头像图片等相关图片数据要做存储,为了让图片可以公网访问,而不是仅在本地可看的情况,我这里选择的是云存储的方式,通过自己提供的域名+相应的图片路径来实现图片的公网访问
传输协议选择
为了实现软硬件数据的互通,我这里选择的是MQTT协议进行数据传输。MQTT是一种轻量级、发布/订阅模型的协议,能够支持大量的传感器设备进行数据传输。这样,您的项目就可以轻松地添加新的传感器设备,而不用担心传输和处理的性能问题。
演示效果
这里只是做部分功能的大致介绍啊,详细的写有点多,我就长话短说啦
登录
LED灯控制
按钮点击开灯
可以看到硬件的led灯亮起
温湿度及低头距离统计
摄像头监控
逻辑是这样的实现的
效果如下:
用户运动拉伸统计
通过摄像头的运动识别算法来检测镜头中的用户是否有活动的行为
当久坐超过一定时间,会通过小程序来进行消息提醒,如图
传感器心跳包监控
通过监测各个传感器发送数据的情况来判定该传感器是否正常工作,如图所示,红色心跳表示传感器不工作或者异常,绿色心跳则是传感器正常工作的情况
可以优化的地方
- 登录只是做了简单的登录,重心更多放在了硬件数据和用户行为的解析上了
- 硬件没有做跟用户绑定的关系逻辑
- 硬件的使用程度不高,只是简单的要求其数据采集上传到软件端,并没有在硬件端做过多的逻辑实现及数据处理
- 小程序的ui交互欠佳,更多是类似于一个数据展示的地方,后续改进可以引入更多的需求的功能
- 软件后端没有做一个公共的数据接收逻辑来兼容不同类型的数据,或者说规定好数据格式来针对不同的传感器数据样式,这是后期可以优化的地方
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!!
内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618654289)
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!!