ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

ThingsBoard 温湿度传感器解决方案的 Edge 边缘计算部署与数据同步实战

ThingsBoard 温湿度传感器解决方案的 Edge 边缘计算部署与数据同步实战 物联网后端数据可视化消息队列【免费下载链接】thingsboardAll-in-one IoT Platform - Device management, data collection, processing and visualization.项目地址https://gitcode.com/GitHub_Trending/th/thingsboard点击查看免费下载导读本文围绕 ThingsBoard 开源 IoT 平台内置的Temperature Humidity Sensors温湿度传感器解决方案讲解如何为其启用可选的ThingsBoard Edge 边缘计算扩展在多地点远程设施场景下把边缘端部署到数据产生现场实现断网自治处理、联网后自动同步到云端并给出边缘设备遥测上报的完整 curl 命令与配置原理。读完本文你将掌握该解决方案中 Edge 实体的组织方式、安装连接流程、实体组分配逻辑以及从源码角度理解解决方案安装指令中占位符的渲染机制。一、温湿度传感器解决方案中的 Edge 扩展定位在 ThingsBoard 仓库中温湿度传感器解决方案的完整定义位于application/src/main/data/json/solutions/temperature_sensors/目录其中 edge_instructions.md 是专门面向Edge 边缘计算扩展的安装与使用说明文档。它在整个解决方案中是一个可选Optionally的增强项与解决方案主体设备配置、告警规则、仪表盘等解耦只有当安装的解决方案需要覆盖分布式远程站点时才启用。ThingsBoard Edge 的核心价值在于两点这也是该文档开篇反复强调的定位将数据分析和设备管理下沉到数据产生的地方——远程设施内的温湿度传感器数据不必绕道云端处理边缘端即可完成实时分析与 ThingsBoard 云端按业务需求无缝同步——边缘端与云端之间的数据、配置、告警双向同步由 ThingsBoard 平台统一协调。在仓库中边缘指令文档并非孤例application/src/main/data/json/solutions/water_metering/edge_instructions.md存在结构完全相同的边缘扩展说明对应 Remote Facility W1 与 Water Metering Customer A说明这是 ThingsBoard 内置解决方案体系中的一套通用设计模式。二、适用场景多地点远程设施的实时控制原文档给出了一类非常典型的边缘计算业务场景值得展开说明假设温湿度传感器解决方案的部署范围覆盖了同一城市、不同城镇甚至不同国家的多个远程设施。此时可以在每一个远程设施内部署一个 ThingsBoard Edge 实例就近处理来自该设施温湿度传感器的数据。这种架构带来的直接收益包括本地实时决策边缘端可即时完成数据分析并作出决策例如根据温度/湿度阈值自动开启或关闭加热器、自动调节温度无需等待云端往返断网自治当与中心 ThingsBoard 服务器的网络连接中断时Edge 继续在本地处理数据不会丢失任何数据关键决策仍然在本地生效联网后回传网络恢复后边缘端积累的必要数据会自动推送push到云端云端最终获得完整的遥测记录配置集中化边缘计算相关的业务逻辑规则链、告警规则等统一在 ThingsBoard 服务器云端配置所有 Edge 实例共享同一套配置来源运维人员无需逐个登录边缘端改配置。三、解决方案预置的 Edge 实体与实体组分配在温湿度传感器解决方案的范围内系统已自动创建了一个新的 Edge 实体Edge 实体名称Remote Facility R1远程设施 R1归属客户Customer D在 edge_instructions.md 中该 Edge 实体的详情页地址以模板占位符${Remote Facility R1EDGE_DETAILS_URL}的形式存在。这里需要特别说明仓库中的指令文档是模板文件占位符会在解决方案安装渲染阶段被替换为真实的相对 URL 路径。从 DefaultSolutionService.java 的源码可以看到替换逻辑// Edge detail URLs for (Map.EntryString, EdgeLinkInfo edgeLinkInfoEntry : ctx.getCreatedEdges().entrySet()) { EdgeLinkInfo edgeLinkInfo edgeLinkInfoEntry.getValue(); StringBuilder edgeDetailsUrl new StringBuilder(); if (EntityType.CUSTOMER.equals(edgeLinkInfo.getOwnerId().getEntityType())) { edgeDetailsUrl.append(/customers/all/).append(edgeLinkInfo.getOwnerId().getId()); } edgeDetailsUrl.append(/edgeManagement/edges/all/).append(edgeLinkInfo.getEdgeId().getId()); String edgeName edgeLinkInfoEntry.getKey(); String edgeDetailsPlaceholder ${ edgeName EDGE_DETAILS_URL}; template template.replace(edgeDetailsPlaceholder, edgeDetailsUrl.toString()); }也就是说${Remote Facility R1EDGE_DETAILS_URL}最终会被渲染为类似/customers/all/customer-id/edgeManagement/edges/all/edge-id的云端控制台路径方便安装者直接点击进入该 Edge 实体的详情页。为了简化边缘部署解决方案还预先为 Edge 实体Remote Facility R1分配了以下实体组Entity Group实体组实体类型归属Customer AdministratorsUSER用户客户 Customer DTemperature Humidity sensorsDEVICE设备客户 Customer DCustomer dashboardsDASHBOARD仪表盘当前租户tenant这三类实体组的作用在于用户组保证 Customer D 的管理员登录 Edge 后有对应权限设备组决定哪些设备会被自动下发到 Edge仪表盘组决定哪些可视化界面会同步到 Edge。实体组分配完成后Edge 的初始部署几乎无需人工逐个添加实体做到了开箱即用。四、安装 ThingsBoard Edge 并连接到云安装流程在原文档中指向 Edge 详情页的操作按钮具体步骤为登录 ThingsBoard 云端控制台进入 Edge 实体Remote Facility R1的详情页即上文渲染后的${Remote Facility R1EDGE_DETAILS_URL}链接点击页面上的Install Connect instructions安装与连接指引按钮按照指引完成 ThingsBoard Edge 的安装并将 Edge 连接到云端。完成安装与连接后即可使用租户账号或客户 Customer D 的用户账号登录 Edge 控制台。这一设计体现了边缘端复用云端同一套用户体系与权限模型的特性——用户凭证在 Edge 上同样有效减少了额外的账号管理负担。五、向 Edge 设备推送遥测数据两种端口下的 curl 命令原文档的核心实操部分是模拟设备向 Edge 上报遥测数据。其前提是Temperature Humidity sensors设备组已分配给 Edge 实体Remote Facility R1因此该组内的所有设备都会被自动下发provisioned到 Edge。登录 Edge 控制台后在Entities - Devices页面即可看到这些设备。以设备Sensor C1为例向其Edge 端推送温度与湿度遥测数据的命令如下设备凭证同样使用模板占位符${Sensor C1ACCESS_TOKEN}在指令渲染时会被替换为真实的访问令牌替换逻辑同样位于 DefaultSolutionService.javacurl -v -X POST -d {\temperature\: 43, \humidity\: 74} http://localhost:8080/api/v1/${Sensor C1ACCESS_TOKEN}/telemetry --header Content-Type:application/json{:copy-code}注命令末尾的{:copy-code}是 ThingsBoard 指令渲染系统支持的标记渲染后界面会为代码块提供一键复制按钮。如果你在 Edge 安装过程中把 Edge HTTP 服务的8080 绑定端口修改为 18080则改用以下命令curl -v -X POST -d {\temperature\: 43, \humidity\: 74} http://localhost:18080/api/v1/${Sensor C1ACCESS_TOKEN}/telemetry --header Content-Type:application/json{:copy-code}对这两条命令的要点说明接口语义POST /api/v1/{accessToken}/telemetry是 ThingsBoard 标准的设备遥测上传 HTTP APISensor C1的设备访问令牌被填入路径中的${Sensor C1ACCESS_TOKEN}位置数据格式Content-Type: application/jsonJSON 载荷包含temperature示例值 43与humidity示例值 74两个键对应温湿度传感器解决方案的核心遥测字段验证方式带上-v参数可以查看 HTTP 请求/响应的完整交互过程便于排错云端同步向 Edge 上的Sensor C1推送数据后该设备的遥测更新会同步出现在云端对应设备上这正是 Edge 与云双向同步机制的直接体现。六、从源码理解边缘指令的注入与渲染机制上述指令文档之所以能在用户侧自动生成可点击的链接与真实的令牌是因为它并不是一个静态文件而是由解决方案安装服务动态组装的结果。核心逻辑位于 DefaultSolutionService.java关键步骤为读取基础指令模板从解决方案目录读取主instructions.md模板Files.readString(instructionsFile)注入边缘指令若主模板包含${edge_instructions}占位符则检查该次安装是否创建了 Edge 实体ctx.getCreatedEdges().isEmpty()未创建 Edge 时置空已创建时读取临时目录中的edge_instructions.md并替换进去template.replace(${edge_instructions}, edgeTemplate)替换 URL 占位符${DOCS_BASE_URL}、${BASE_URL}、${MAIN_DASHBOARD_URL}以及各 Edge 实体的${EdgeNameEDGE_DETAILS_URL}被替换为真实相对路径替换设备凭证占位符遍历本次安装创建的所有设备将${设备名ACCESS_TOKEN}替换为真实凭据并生成设备列表表格${device_list_and_credentials}渲染用户与告警信息替换${user_list}并调用replaceAlarmRules、replaceCalculatedFields、replaceCreatedEntities完成整体组装。这说明仓库中的 edge_instructions.md 是模板 占位符的混合体研究其源码有助于理解 ThingsBoard 解决方案包Solution Template的完整交付机制。七、温湿度传感器解决方案的边缘配套资源除了边缘指令外同一解决方案目录下还包含若干可辅助理解边缘业务逻辑的配套资源建议结合阅读设备配置文件device_profiles/temperature_sensor.json 定义了名为Temperature Sensor的默认设备配置传输类型为 MQTTpayload 为 JSON设备遥测主题为esp/telemetry值得关注的是其defaultEdgeRuleChainId字段引用了RULE_CHAIN类型的 Edge 规则链这正是边缘端独立执行业务逻辑而不依赖云端规则链的配置体现高温告警规则alarm_rules/temperature_sensor_high_temperature.json 定义High Temperature告警当服务器端属性temperatureAlarmFlag为 true 且最新遥测temperature大于temperatureAlarmThreshold默认 30.0时触发CRITICAL级告警温度回落至阈值以下时清除告警低湿度告警规则alarm_rules/temperature_sensor_low_humidity.json 定义Low Humidity告警当humidityAlarmFlag为 true 且humidity低于humidityAlarmThreshold默认 45.0时触发MAJOR级告警。这些告警规则使用TS_LATEST最新遥测与SERVER_SCOPE服务器端属性作为判定依据正是边缘端数据产生地就近分析、就地告警决策的典型实现素材当网络中断时此类规则链在 Edge 上仍可持续评估保障本地设施的安全运行。小结通过温湿度传感器解决方案的 edge_instructions.md可以完整掌握 ThingsBoard Edge 在多地点远程设施场景下的落地路径预置 Edge 实体与实体组 → 云端一键安装连接 → 登录边缘端管理设备 → 本地数据上报与云端自动同步。结合 DefaultSolutionService.java 的渲染源码与设备配置、告警规则等配套资源开发者可以在此基础上定制自己的多站点温湿度监控体系实现边缘自治与云端汇聚的混合部署。赞分享物联网后端数据可视化消息队列【免费下载链接】thingsboardAll-in-one IoT Platform - Device management, data collection, processing and visualization.项目地址https://gitcode.com/GitHub_Trending/th/thingsboard点击查看免费下载相关推荐Flink CDC边缘计算部署在边缘节点实现数据同步Flink CDC边缘计算部署在边缘节点实现数据同步 边缘计算环境下的数据同步痛点与解决方案 传统集中式数据同步方案在边缘计算场景面临三大核心挑战 网络带宽后端数据集成大数据流处理变更数据捕获数据同步AMD NPU加速原理Mistral-7B-Instruct-v0.1_rai_1.7.1_npu_16K的硬件协同设计AMD NPU加速原理Mistral 7B Instruct v0.1_rai_1.7.1_npu_16K的硬件协同设计 Mistral 7B Instrucxiaozhi-esp32基于MCP协议的ESP32 AI聊天机器人技术解析xiaozhi esp32基于MCP协议的ESP32 AI聊天机器人技术解析 你是否想过将大型语言模型的智能能力直接部署到嵌入式设备上实现真正的边缘AI交互人工智能大模型语音交互助手嵌入式物联网智能硬件MCP 服务上一篇cim系统中的技术债务管理重构策略与实践下一篇shadPS4 0.7.0 一启动就崩这份 Windows 11 排障指南帮你 4 步救回 PS4 游戏创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表