基于微服务的智能家居物联网平台
基于微服务 + 微信小程序实现的物联网平台,目前处于软件实现阶段:模拟了智能灯和温湿度感应器的使用状态,后续打算基于 STM32 制作硬件并接入,接入硬件后会将微信小程序改成 Android 版本。
技术栈
后端
- JDK:21
- Spring Boot:3.2.5
- Spring Cloud:2023.0.1
- Spring Cloud Alibaba:2023.0.1.0
- Spring Data JPA
- Nacos:2.5.2
- MQTT
- WebSocket
数据库
- MySQL:8.0
- Redis:6.2.x
- Influxdb:2.8.0
前端
- Uniapp
- Vue2
部署流程
需要先确保技术栈中所有的依赖均已安装,MQTT 这里使用的中间件是 EMQX(5.8.9),测试 MQTT 连接使用的是 MQTTX。推荐将中间件安装在 vmware 中,我使用的 Linux 版本是 20.04,yml 文件中部分配置使用的是 <your_server_ip> 而非本机地址,根据自己的配置进行替换。
准备工作
- 安装
MySQL和Redis,替换账号密码 - 安装
MQTT中间件EMQX,并新建用户分配权限,将用户名和密码在yml中对应位置进行替换 - 安装
Influxdb,获取自己配置的用户名和密码进行替换,注意要先创建bucket:device_report - 安装
Nacos用于服务注册
1. 克隆仓库代码
- 后端使用
IDEA软件 - 仓库代码中
iot_miniprogram.zip为前端压缩包,解压后使用uniapp打开
2. MySQL 中运行 iot.sql 文件
3. 启动所有服务
- gateway-service
- user-service
- device-service
4. 在 uniapp 中替换 manifest.json 文件中微信小程序的 AppID 并运行到微信小程序
5. 查看 MySQL 中用户表手机号,使用手机号进行登录,登录成功后可以开始体验
项目中所有的控制器 controller、入参和回参都带注释,可以查看注释了解对应功能
MQTT 主题说明
为了及时更新设备联网状态,使用了 EMQX 自带的主题上下线订阅。在 文件中,预置订阅的主题 可以在设备上下线后推送通知。


