智能家居物联网平台

智能家居物联网平台

智能家居物联网平台

基于微服务+微信小程序实现的物联网平台,目前处于软件实现阶段:模拟了智能灯和温湿度感应器的使用状态,后续打算基于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

[硬核] 别再用网页版聊 Gemini 了:Google AI Studio 最佳实践与 3.0 Pro 参数调教

[硬核] 别再用网页版聊 Gemini 了:Google AI Studio 最佳实践与 3.0 Pro 参数调教

前言 最近 Gemini 3.0 Pro 发布,不少兄弟还在用网页版(gemini.google.com)甚至付费买 Advanced 会员。其实对于开发者或者想深度定制模型行为的人来说,Google AI Studio 才是真正的神器。 它不仅免费(目前 Preview 阶段),而且能让你看到模型的“底裤”——直接控制 Temperature、Top-P,甚至可以看到 Token 的消耗情况。今天分享一下我最近在 AI Studio 里的配置心得,主打一个避坑和提效。 一、 为什么要转战 AI Studio? 简单说,网页版是给大众用的“聊天机器人”,而 AI Studio 是给开发者用的“IDE(集成开发环境)”。 这里最大的优势就是

OpenClaw龙虾图鉴:16只AI Agent选型指南

OpenClaw龙虾图鉴:16只AI Agent选型指南

这里写目录标题 * 🦞 OpenClaw龙虾图鉴:16只AI Agent选型指南 * 🎯 快速选型指南 * 🥇 第一梯队:官方正统 * 1️⃣ OpenClaw - 原生官网框架 * 2️⃣ 🌙 KimiClaw - 云端大存储+Kimi K2.5 * 3️⃣ ⚡ MaxClaw - 成本杀手,10秒部署 * 🥈 第二梯队:极客专精 * 4️⃣ 🔥 NullClaw - 678KB极致疯子 * 5️⃣ 🦀 OpenFang - Rust生产级Agent OS * 6️⃣ 🐍 Nanobot - Python死忠粉 * 7️⃣ 🤖 NanoClaw - 多Agent协作狂魔 * 🥉 第三梯队:场景特化 * 🌱 第四梯队:新兴潜力股 * 1️⃣5️⃣ 🌱 EasyClaw -

Python+Agent入门实战:0基础搭建可复用AI智能体

Python+Agent入门实战:0基础搭建可复用AI智能体

🎁个人主页:User_芊芊君子 🎉欢迎大家点赞👍评论📝收藏⭐文章 🔍系列专栏:AI 文章目录: * 【前言】 * 一、先理清:Python+Agent,到底强在哪里? * 1.1 核心区别:Python脚本 vs Python+Agent * 1.2 2026年Python+Agent的3个热门入门场景 * 1.3 新手入门核心技术栈 * 二、环境搭建:10分钟搞定Python+Agent开发环境 * 2.1 第一步:安装Python * 2.2 第二步:创建虚拟环境 * 2.3 第三步:安装核心依赖包 * 2.4 第四步:配置OpenAI

AI 进化论:从 Function Calling 到 MCP

AI 进化论:从 Function Calling 到 MCP

AI 进化论:从 Function Calling 到 MCP,你的大模型还在“裸奔”吗? 文章目录 * AI 进化论:从 Function Calling 到 MCP,你的大模型还在“裸奔”吗? * 一、 给 AI 装上手脚:Function Calling 到底是个啥? * 1. 专业解释与大白话解读 * 2. 核心功能与代码示例 * 二、 实战演练:搭建你的“门票数据助手” * 1. 业务场景介绍 * 2. 进阶:一次调用,搞定查询 + 可视化 * 三、 MCP:AI 界的“USB-C”接口协议来了! * 1.