# home **Repository Path**: inspirej/home ## Basic Information - **Project Name**: home - **Description**: 这是一个简化的智能家居项目,由服务(server)和多个节点(node_x)构成,节点向服务上报自身信息,服务提供管理页面,展示上报的节点信息,管理人员(user)通过管理页面管理节点。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-22 - **Last Updated**: 2025-06-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 简介 这是一个简化的智能家居项目,由服务(server)和多个节点(node_x)构成,节点向服务上报自身信息,服务提供管理页面,展示上报的节点信息,管理人员(user)通过管理页面管理节点。 角色和所处网络示意图: ``` WIFI or Other WIFI server & user <--> LAN <--> node_x ``` 实拍: ![实拍](/doc/assets/running.gif) 注意点: + 服务与节点需要互相访问,最好在局域网**同一网段**; + 节点通过WIFI接入网络,节点的数量小于WIFI的最大节点数,普通WIFI的最大节点数是8个; + 明文传输,安全问题严重,切勿在互联网环境使用; + 管理页其实可以直接向节点发起HTTP请求的指令,实际上控制指令是由服务转发,一避免跨域,二为安全,三是管理员代理访问时可能无法直接访问节点。 # 需知 项目结构: ``` node 节点代码:vs code platformio - esp32c3 server 服务代码 home-server-back 服务接口代码: idea - springboot3 home-server-front 服务管理页代码: vs code - vue3 elementplus ``` 服务由一个后台和管理页前台构成,后台接口列表如下: | 方法 | 路径 | 描述 | | --- | --- | --- | | GET | /api/v1/device/map | 查看所有节点 | | POST | /api/v1/device/report | 上报节点状态 | | POST | /api/v1/device/control | 向节点发起控制指令 | 节点以 [LuatOS ESP32C3-CORE 开发板](https://wiki.luatos.com/chips/esp32c3/index.html) 为例,板载两颗可控的LED,用于模拟家居中的控制单元。 节点对外提供的接口如下: | 方法 | 路径 | 描述 | | --- | --- | --- | | POST | /api/v1/control | 控制接口 | # 计划 ## 节点配置优化 节点连接WIF和后续向服务上报自身信息,需要获取WIFI和服务信息,当前是直接烧录到节点中的,需改为可配置,当前考虑开启热点,用户访问节点的配置页,配置完成后重启设备。 ## 安全优化 引入证书机制 ## 网络优化 目前只支持同一网段的局域网,使用条件苛刻,改用Websocket或心跳机制,只需节点能够访问服务。 ## 功能完善 目前只支持开关量控制,接下来将支持,模拟量和数字量的控制,如灯的亮度。 服务管理页未实现部署。