智能家居物联网平台

智能家居物联网平台

智能家居物联网平台

基于微服务+微信小程序实现的物联网平台,目前处于软件实现阶段:模拟了智能灯和温湿度感应器的使用状态,后续打算基于STM32制作硬件并接入,接入硬件后会将微信小程序改成Android版本

Gitee地址:仓库链接

技术栈

后端

  • 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.04yml文件中部分配置使用的是192.168.242.137而非本机地址,根据自己的配置进行替换

准备工作

  • 安装MySQLRedis,替换账号密码
  • 安装MQTT中间件EMQX,并新建用户分配权限,将用户名和密码在yml中对应位置进行替换
  • 安装Influxdb,获取自己配置的用户名和密码进行替换,注意要先创建bucketdevice_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自带的主题上下线订阅。在yml文件中,预置订阅的主题$SYS/brokers/+/clients/#可以在设备上下线后推送通知。

**所有的设备在与MQTT建立连接时,设置的client_id为数据库中iot_device**表中的device_sn字段,这样服务器收到消息时可以通过sn(设备序列号)来标识每一个设备

MQTT所有消息体均使用JSON格式

WebSocket连接说明

device-service服务中的WebsocketConfig文件中,可以看到建立连接时会校验token参数,由于token只有在登录成功后才会返回给用户,因此没有携带此参数的连接会被拒绝。这个权限校验方式可能还不太完善,后续会考虑使用其他校验方式

学习说明

本项目目前比较简单,微服务中只拆分了网关服务,用户服务和设备服务

  • 网关服务主要用于负载均衡,Nacos很多特性比如统一配置管理和自动刷新还没有使用;
  • 用户服务权限校验也只是引入了JWT,后续打算使用Spring Security做权限校验
  • 设备服务中Influxdb的定时同步还可以继续优化,目前是逻辑是每2分钟同步一次温湿度消息,可能延迟会有点严重,再想想怎么同步好一点
  • MQTT的监听消息逻辑中,会考虑使用消息队列RabbitMQ或者异步处理,因为在实际操作中,出现过一个BUG,监听消息处理过程中,如果处理时间过长会影响MQTT的心跳,导致MQTT发生重连
  • 最重要一点:目前智能灯的指令下发没有做确认操作,可能会出现指令下发了,但是硬件没有接收,这会导致数据库状态不对,需要对已下发的指令做短时间监听,硬件回传状态后再进行数据库的更改

在这里插入图片描述

Read more

Flutter for OpenHarmony 实战:疯狂头像 App(四)— 通义万相 AIGC 联调与相册持久化实战

Flutter for OpenHarmony 实战:疯狂头像 App(四)— 通义万相 AIGC 联调与相册持久化实战

Jan-31-2026 23-32-23 Flutter for OpenHarmony 实战:疯狂头像 App(四)— 通义万相 AIGC 联调与相册持久化实战 摘要:行百里者半九十。本文作为“疯狂头像”(Crazy Avatar)实战系列的终章,我们将完成从 AI 异步生成到图片系统级保存的全链路闭环。本文将重点攻克鸿蒙(HarmonyOS)侧的 module.json5 权限合规、媒体库写入逻辑及网络请求健壮性处理,助你打造商业级 AIGC 应用。 前言 在之前的《动效篇》中,我们为应用注入了生动的灵魂。但一个真正的 AI 工具,如果不能产生“作品”并持久化到物理存储,它就只是一个精致的“空中楼阁”。 在鸿蒙(HarmonyOS Next)生态中,文件的存储安全与权限管理有着极其严格的标准。

新手如何用AI写小说?全流程教学+3款好用的AI写作软件推荐(附提示词)

新手如何用AI写小说?全流程教学+3款好用的AI写作软件推荐(附提示词)

最近后台私信都要爆了,好多粉丝朋友问我:“大大,我也想做自媒体写网文,但每次对着空白文档就想把键盘吃了怎么办?”、“大纲写得跟流水账一样,还没写到第十章就崩了……” 作为一个在码字圈摸爬滚打多年,掉过无数坑、也熬过无数通宵的写小说的老兵,我太懂这种“甚至不知道第一句话该写什么”的崩溃感了。 这两年为了找顺手的工具,我当真是神农尝百草,把市面上主流的ai写小说工具试了个遍。接下来我会教大家怎么用通用大模型进行一些写作前的准备(包括提示词),准备工作充足后再开始用AI写作工具填充内容。 一、写作前的准备工作 1、确定小说类型与主题 在开始创作前,先明确小说的基本方向: * 赛道选择: 明确核心流派(如赛博朋克、修真、本格推理等)与细分领域。 * 内核设定: 提炼作品的中心思想与核心价值观(Theme)。 * 受众锚定: 清晰画像目标读者群体。 * 竞品调研: 分析市场风向,寻找题材蓝海。 提示词: 请扮演一位资深网文编辑,分析当前玄幻小说市场的热门趋势。请提供 5个具有爆款潜力的创新主题。对于每个主题,请包含以下内容: 核心概念: 一句话概括故事内核。 世界观

日语视频 SRT 字幕生成软件下载:日语视频本地自动翻译SRT字幕生成、日语视频自动翻译 Faster Whisper v1.7 下载与使用教程(含AMD显卡支持)

日语视频 SRT 字幕生成软件下载:日语视频本地自动翻译SRT字幕生成、日语视频自动翻译 Faster Whisper v1.7 下载与使用教程(含AMD显卡支持)

日语视频 SRT 字幕生成软件下载:日语视频本地自动翻译SRT字幕生成、日语视频自动翻译 Faster Whisper v1.7 下载与使用教程(含AMD显卡支持) 关键词:Faster Whisper 教程、Whisper 本地部署、CUDA 12.8 下载、AMD ROCm Whisper、日文转中文 转录工具、Whisper 批处理模式、RTX 50 CUDA 版本选择 下载地址: https://pan.quark.cn/s/b18c407fc471 这篇文章系统整理 Faster-Whisper-TransWithAI-ChickenRice v1.7 的版本说明、显卡选择方式、下载地址以及快速上手流程,尤其是: * ✅ 基础版 vs 海南鸡版区别

文心一言4.5开源模型测评:ERNIE-4.5-0.3B超轻量模型部署指南

文心一言4.5开源模型测评:ERNIE-4.5-0.3B超轻量模型部署指南

目录 * 引言:轻量化部署的时代突围 * 一.技术栈全景图:精准匹配的黄金组合 * 基础层:硬核环境支撑 * 框架层:深度优化套件 * 工具层:部署利器 * 二.详细步骤:精准匹配CUDA 12.6的黄金组合 * 准备环节 * 1.模型选择 * 2.配置实例 * 3.选择镜像 * 4.进入JupyterLab * 5.进入终端 * 6.连接到ssh * 系统基础依赖安装 * 1.更新源并安装核心依赖 * 2.安装 Python 3.12 和配套 pip * 解决 pip 报错 * 深度学习框架部署:PaddlePaddle-GPU深度调优 * FastDeploy-GPU企业级部署框架 * 1.安装FastDeploy核心组件 * 2.修复urllib3