当前位置: 首页 > news >正文

从 Home Assistant 到 JetLinks:构建双层智能家居与社区管理平台实训全景

时间:2025年10月
关键词:JetLinks、Home Assistant、MQTT、物模型、规则引擎、Pegasus智能家居、鸿蒙小车


一、项目背景

在当前物联网(IoT)教学与产业融合趋势下,许多高校正尝试将智能家居控制社区级物联网平台结合,构建从“设备端 → 家庭端 → 社区端”的多层实训体系。
本项目以两套实验设备为基础:

  • 🧩 Pegasus智能家居开发套件 —— 基于 OpenHarmony 的 IoT 入门平台;
  • ⚙️ 玄武 F103 嵌入式实验仪 —— 以 STM32F103ZET6 为核心的智能家居实验平台。

学生通过编程与系统集成,可以亲手实现:

  • 智能家居数据采集与远程控制;
  • 家庭自动化控制(Home Assistant 层);
  • 社区级设备管理与大数据分析(JetLinks 平台层)。

二、系统总体架构

整个系统采用三层架构:

┌───────────────────────────────┐
│          JetLinks 平台层(社区级) │
│  - 物模型定义 / 规则引擎 / OTA升级 │
│  - 统一管理多个 Home Assistant 实例 │
└──────────────▲────────────────┘│ MQTT▼
┌───────────────────────────────┐
│     Home Assistant 家庭层(控制中心)│
│  - 设备联动自动化 / 场景控制        │
│  - Button控制、状态可视化          │
└──────────────▲────────────────┘│ MQTT▼
┌───────────────────────────────┐
│ Pegasus / 玄武 嵌入式设备层(终端)│
│  - 温湿度采集 / 电机控制 / 红外检测 │
│  - 执行前进、后退、左转、右转动作  │
└───────────────────────────────┘

三者通过独立的 Mosquitto MQTT Broker 实现数据交换。
这样不仅保持模块解耦,还便于学生分组调试与扩展。


三、设备与功能设计

1️⃣ Pegasus 智能家居开发套件 → 模拟鸿蒙小车

功能模块对应板卡实现内容
温湿度采集环境监测板(DHT11)采集温湿度上报 Home Assistant
运动控制通用底板 + 智能红绿灯板(LED)模拟小车前进/后退/转向(LED亮度表示角度)
显示输出OLED 显示板显示当前方向与速度
通信模块WiFi SoC Pegasus(H1386JVV100)通过 MQTT 与 Home Assistant 通信

Home Assistant 中放置 4 个 Button:

  • Forward(前进)
  • Backward(后退)
  • Left(左转)
  • Right(右转)

点击后通过 MQTT topic 发送控制指令给 Pegasus,实现动作模拟。


2️⃣ JetLinks 平台 → 社区与多家庭集控层

JetLinks 在本系统中承担“云管平台”的角色,具备三大核心功能:

✅ (1)物模型(Thing Model)

定义每类设备的数据结构,包括:

  • 属性(Properties):温度、湿度、方向、角度;
  • 功能(Functions):前进、后退、左转、右转;
  • 事件(Events):如“超温报警”。

示例定义(JSON):

{"properties": [{ "id": "temperature", "name": "温度", "valueType": {"type": "double"} },{ "id": "humidity", "name": "湿度", "valueType": {"type": "double"} },{ "id": "direction", "name": "方向", "valueType": {"type": "string"} }],"functions": [{ "id": "moveForward", "name": "前进" },{ "id": "moveBackward", "name": "后退" },{ "id": "turnLeft", "name": "左转" },{ "id": "turnRight", "name": "右转" }]
}

JetLinks 会根据物模型自动生成交互 API,使设备、规则引擎、可视化面板保持统一语义。


✅ (2)规则引擎(Rule Engine)

相当于平台内的“自动逻辑控制中心”。

举例:

  • 当温度 > 40℃ 时,自动下发“停止前进”指令;
  • 当湿度低于 20% 时,通过 MQTT 通知 HA 弹出警报。

规则流程图:

[设备属性上报]↓
[条件判断:temperature > 40]↓
[动作:执行函数 stopMove()]

配置示例(JavaScript表达式):

return input.temperature > 40;

✅ (3)OTA(远程升级)

JetLinks 支持上传 .bin 固件,对 Pegasus 或 STM32 设备进行远程升级。

典型流程:

上传固件 → 创建OTA任务 → 推送设备 → 设备下载并更新 → 上报结果

设备端订阅:

/device/tempCar001/firmware/update

上报:

{"progress": 100, "status": "success"}

四、通信协议设计

为简化教学,使用 JetLinks 官方 MQTT 协议jetlinks-official-protocol)。

Topic 示例:

类型Topic示例
属性上报/report/property/{deviceId}/report/property/tempCar001
功能执行/invoke/function/{deviceId}/invoke/function/tempCar001

Payload 示例:

{"deviceId": "tempCar001","messageType": "REPORT_PROPERTY","body": { "temperature": 25.5, "humidity": 60 }
}

JetLinks 自动解析 body 并映射到物模型属性。
若设备发的数据结构不同,也可通过“脚本协议”手动解析。


五、Home Assistant 控制界面配置

MQTT Button 定义

configuration.yaml 中添加:

mqtt:button:- name: "Forward"command_topic: "car001/move/forward"- name: "Backward"command_topic: "car001/move/backward"- name: "Left"command_topic: "car001/move/left"- name: "Right"command_topic: "car001/move/right"

Pegasus 小车端订阅这些 Topic,接收到指令后执行对应动作。
如左转可附带角度值:

{"action":"left","angle":45}

六、整合运行步骤

步骤操作内容工具/位置
1安装 Mosquitto MQTT BrokerUbuntu/Windows
2部署 Home Assistant(Core 安装)Python 虚拟环境
3启动 JetLinks(使用 Docker)http://localhost:9000
4Pegasus 编写 MQTT 客户端OpenHarmony IDE
5在 JetLinks 创建产品、定义物模型Web 控制台
6在 HA 创建 4 个按钮、配置 MQTTconfiguration.yaml
7启动设备上报数据、测试控制MQTTX 或 HA 面板查看
8JetLinks 开启规则引擎、OTA 实验平台操作

七、方案对比:双层 vs 三层结构

方案层次结构优点缺点推荐场景
A:Home Assistant + 设备二层简单、快速实现无集中管理、数据分散小型实验或家庭应用
B:JetLinks + HA + 设备三层可管多户、可升级、可数据分析架构复杂一点校企实训、社区级项目

👉 本实训采用 三层方案(推荐),可扩展性强、贴近工业应用。


八、结语:从“玩硬件”到“玩平台”

通过本实训,学生不只是点亮一盏灯、测个温度,而是完整经历:

  1. 设备侧嵌入式开发(Pegasus / STM32);
  2. 家庭级智能控制(Home Assistant 自动化);
  3. 平台级物联网运维(JetLinks 云端管理);
  4. 协议对接与数据解析(MQTT、物模型、规则引擎)。

这正是当下智能物联网岗位所需的核心能力。
从家居实验走向工业级物联网应用,
从“物理连接”到“数据价值”,
这,就是物联网教育最有生命力的方向。


📘 下一步扩展建议:

  • 集成 JetLinks 时序数据库 InfluxDB 实现数据可视化;
  • 用 Node-RED 或 Vue.js 构建车控仪表盘;
  • 设计多车联动、路径规划、温湿度群控实验。

http://www.dtcms.com/a/469713.html

相关文章:

  • 什么是BUG,你对BUG的了解有多少?
  • 有哪些网站做任务有佣金手机活动网站模板
  • 阿里下场造“机器人”:从通义千问到具身智能,中国AI正走向“实体化”阶段
  • 盐城网站建设jsxmt公司网站域名管理
  • Cherry Studio 核心功能简介
  • 阿里巴巴国际站开店流程及费用网站建设与网络编辑综合实训课程指导手册pdf
  • 网站备案收费幕布用wordPress搭建图片库
  • Java版座位预约系统★共享自习室系统源码★学校/培训机构座位预约系统
  • 全网首发/Qt结合ffmpeg实现rist推拉流/可信赖的互联网流媒体协议/跨平台支持各个系统
  • leetcode二分查找(C++)
  • 生成对抗网络(Generative Adversarial Network,GAN)
  • 18-基于STM32的智能医嘱手环设计与实现
  • encodeURIComponent() 函数详解
  • 在JavaScript中,map方法使用指南
  • 手机网站好还是h5好找大学生做家教的网站
  • vue项目安装使用,npm、webpack版本问题注意
  • Arbess从入门到实战(12) - 使用Arbess+Gitee+SonarQube实现Node.js项目自动化构建部署
  • 旅游网站模板 手机网站构建
  • 单遍聚类:实时数据流聚类解决方案
  • 使用TimeSformer进行模型训练(mvp验证)
  • MES系统业务流程全面解析
  • ASE03-树叶随风晃动-02收尾
  • 有哪些网站可以免费做外销用自己电脑建网站
  • 【算法】1019.链表中的下一个更大节点--通俗讲解
  • 福州seo建站互联网营销师考试题库
  • Flutter中的动效实现方式
  • Agent 的感知-决策-行动循环实现
  • Azure托管标识完整指南:安全无密码的云身份验证
  • Azure Front Door 在中国区正式上线
  • 基础 - 正则表达式