# java+mqtt+8266物联网工程 **Repository Path**: jason0131czy/java-mqtt-8266-second-iot ## Basic Information - **Project Name**: java+mqtt+8266物联网工程 - **Description**: 这是我的第二个物联网工程后 java作为服务器后端,进行数据的持久化和转发, 8266作为硬件交互端接收java的信息进行对应的操作, Vue-admin作为管理员界面 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 2 - **Created**: 2022-04-06 - **Last Updated**: 2025-05-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 物联网项目 ## 1 JAVA-MQTT 服务端 ### 1.1 技术栈 SpringBoot + SpringMvc + MybatisPlus + Mqtt + Swagger + Redis + Shiro ### 1.2 简介 作为本项目的核心服务端。 **SpringBoot** 实现后端的快速搭建 **MybatisPlus** 实现智能家具的设备日志,设备的持久化记录 **Mqtt** 实现后端硬件之间的交互通信 **Swagge** 实现接口文档方便进行测试等。 **Redis** 实现常用数据的高可用缓存,作为缓存中间件,防止数据库产生过大压力 **Shiro** 实现用户登录校验加密,权限验证 > **TODO :** > > - Netty进行和前端部分的消息传递(是否可以直接考虑也用MQTT进行和前端的消息传递???) > > - 权限验证还未完善 > - 前端显示的路由路径改为存储在数据库 > - 项目最初偷懒,硬件交互层没做不同用户的ID,只做了设备ID的校验,后面要慢慢修改成用户id + 设备id进行消息转发和校验的匹配机制 ### 1.3 后端功能 - **设备注册登记** 记录你所拥有的所有设备 - **板载led日志记录** 记录板载led设备的操作数据 - **设备日志记录** 记录所有设备的操作数据 - **心跳机制** 利用硬件发送心跳消息到 JavaServer 端,java里维护一个map,key为设备id,value为最后一次的心跳时间,然后开启一个定时任务轮询该map判断上下线 - **注册设备功能** 接收设备发送的注册请求,判断是否重复注册并进行设备注册 - **操作板载LED** 通过接收前端传来的请求,进行转发到mqtt,最后由硬件接收,对硬件的板载led进行开关,闪烁,闪烁速度调节的操作 - **记录温度** 接收前端请求 , 转发到mqtt并查询redis然后持久化到mysql中 - **记录有人走过** 该消息先由硬件端检测发到服务器,服务器先存在redis中,定时任务每隔四小时取出redis的所有数据存到数据库的日志里 - **响应有无人走过** 接收前端请求,直接将redis中对应的ID的数据全部取出放到数据库中,再查询数据库 ## 2 8266 器件端 ### 2.1 技术栈 Wifi + JSON + ArduinoBase + Mqtt + DHT11 ### 2.2 简介 8266作为一个简易的wifi芯片,并且具有单片机的基础功能,非常适合用来作为智能家居的硬件控制终端。 所以选择它作为本项目的硬件交互层 **WiFi库**联网,实现无线控制 **MQTT库**实现和JavServer端的通信,接收JAVA转发的前端请求并进行响应。 ### 2.3 基础功能 - 心跳机制 开启定时器,每5s发送一个心跳包给java端进行处理 - 注册 每次上电或者复位时,发送一条请求给java端进行处理 ### 2.4 板载led设备 - 灯的开关 - 灯的闪烁,以及闪烁间隔控制 ### 2.5 人体检测设备 - 检测到有人走过时,上报到服务器,服务器暂存到redis的列表里 ### 2.6 温湿度检测设备 - 温度湿度上报 , 每隔5s将温度上报给服务器,服务器转存到redis中 ### 2.7 心率检测设备 ### 2.8 后续加入更多的智能终端 ## 3 Vue-Admin 管理界面端 ### 3.1 技术栈 Vue + Element-ui + Axios ### 3.2 简介 **Vue框架** 实现前端界面的快速开发 **Element-ui** 实现快速构造美观的UI界面 **Axios** 实现异步数据的拦截,解决回调问题 ### 3.3 功能 - 设备管理的显示 - 日志监控的显示 ## 4 小程序端 原生 + Vant组件 ### 4.1简介 目前 利用微信开发者工具进行简单的开发 ### 4.2 功能 - 设备的展示 - 不同设备的路由 - 控制灯 - 显示某位置温度 >TODO > >- 更多的智能终端界面 >- 个人日志的展示