随着智能家具等物联网设备的不断发展,越来越多的家庭会选择构建全屋智能来提升生活的质量和便利性。在上述背景下,本项目旨在将各种智能家具上云,扩展设备的功能,用户可以统一管理设备。 SentinelCore 是一个构建在嵌入式Linux设备(如NXP i.MX6ULL开发板)上的边缘智能网关服务,旨在实现设备数据的高效采集、安全上云、以及强大的远程监控与控制功能。本系统通过集成物联网通信协议(MQTT),结合云平台和Web应用,为用户提供一个“硬件-边缘-云-应用”一体化的解决方案。
SentinelCore 作为一个 All-in-one 边缘智能网关,具备以下核心能力:
-
多源数据采集能力: 支持多种本地设备接入:能够从各类下挂硬件设备(如通过串口、I2C总线、GPIO等接口连接的传感器、执行器等)采集数据。 网络数据集成:预留通过TCP等网络协议接入其他智能设备的接口。
-
边缘侧数据处理与存储: 在本地嵌入式设备端进行初步的数据解析、预处理和逻辑判断。 支持数据的本地存储,保障数据可靠性,应对网络不稳定情况。
-
安全高效的云端通信: MQTT协议通信:通过标准的MQTT协议,安全、低延迟、高效地将边缘设备数据上报至云平台(如阿里云或其他自定义MQTT Broker)。 发布/订阅模式:设备作为MQTT客户端发布传感器数据;Web应用订阅数据以进行展示。
-
全面的远程控制与管理: 远程硬件控制:支持通过云平台远程控制下挂硬件设备,例如切换GPIO状态(控制LED等)、操作蓝牙模块。 传感器数据获取:Web应用能实时订阅并展示设备连接的温湿度传感器、环境光传感器等数据。 网关自身管理:支持远程配置更新和OTA(Over-The-Air)固件升级,确保系统持续迭代和维护。 控制指令下发:Web应用作为MQTT客户端发布控制指令;设备订阅指令并执行相应操作。
-
直观友好的Web可视化: 提供基于Web的服务和应用界面,用于优雅地展示采集到的数据。 通过Web界面进行设备远程控制,实现人机交互的便捷性。
- 功能描述:实时获取并监控嵌入式设备的系统运行状态,包括CPU温度、CPU负载(利用率)以及系统内存使用情况。
- 实现细节:通过读取Linux内核提供的 /sys 或 /proc 文件系统中的相关数据节点,解析并提取所需的系统指标。这些数据是后续上传至云平台进行可视化和告警的基础。

- 功能描述:集成环境光传感器,实时检测环境光强度、距离感应及红外光强度。
- 实现细节:
- 采用 AP3216C 型号的环境光和接近传感器。
- 通过 I2C 总线 与 i.MX6ULL 开发板进行通信,读取传感器寄存器数据。
- 能够准确获取环境光强度 (ALS)、接近距离 (PS) 数据以及红外强度 (IR) 数据。

- 功能描述:嵌入式设备作为 MQTT 客户端,与远程 MQTT Broker 建立连接,实现数据的发布和控制指令的订阅。
- 实现细节:
- 项目中的嵌入式应用程序实例化为一个 MQTT 客户端,采用 MQTT v3.1.1 协议 与服务器端的 Broker 进行通信。
- 利用多线程技术,确保数据采集、MQTT 连接管理、数据发布以及指令订阅等任务能够并发、稳定运行。
- 数据发布:设备将采集到的 CPU温度、CPU负载、内存使用率、环境光数据、温湿度数据 等信息,发布到预设的 Topic,实现数据的安全上云。
- 指令订阅:设备同时订阅用于远程控制的 Topic,准备接收来自云平台或 Web 应用的控制指令。

- 设备信息监控模块:获取sentinel设备的运行状态,包括CPU温度,CPU使用率和内存使用率等。
- 温湿度传感器模块:采集环境的温湿度信息,用于监控家庭环境变化情况。
- 环境光传感器模块:用于采集环境光数据,包括光照强度、红外线强度
- 扩展功能:与PWM LED控制模块,控制家庭灯光亮度。
- PMW LED控制模块:集成脉冲宽度调制(PWM)功能,实现对 LED 灯或其他模拟量输出设备的远程精确控制
- MQTT 协议规范约定:设计 Topic ,使其清晰、有层次、可扩展。使用JSON规范 Payload,易于解析且人类可读。
- json 命令格式解析:实现标准化的 JSON 数据格式解析器,用于处理从云端或 Web 应用接收的复杂控制指令和配置信息,提高系统灵活性和可扩展性。
- 蓝牙连接模块:开发蓝牙通信功能,使网关能够与附近的蓝牙设备进行连接,实现数据的采集或控制,拓展边缘设备的连接能力。
- Sentinel的MQTT客户端:运行在sentinel设备,用于设备和云服务器(Broker)通信
- MQTT 上传数据:实现将设备数据转化成 Topic 发送到 Broker
- MQTT 通信安全功能:提升 MQTT 通信的安全性
- 添加 MQTT 设备登录功能:增强安全性。在 MQTT 连接建立时,引入用户名和密码的认证机制,确保只有授权设备才能连接到 Broker。
- 提升 MQTT 链接的安全性:SSL/TLS 加密:为了进一步保障数据传输的机密性和完整性,将升级 MQTT 连接,支持 SSL/TLS 加密通信,防止数据被窃听或篡改。
- Web 客户端数据展示:开发前端 Web 应用,用于以直观、友好的方式展示设备上传的各种数据(图表、实时曲线等),并提供远程控制操作界面。
- Web 后台应用订阅 Sentinel Topic并解析和存储数据。