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

保姆级教程:在树莓派上用Node-RED连接Home Assistant,实时监控CPU温度与内存

树莓派硬件监控实战:用Node-RED与Home Assistant打造可视化仪表盘

当你第一次看到树莓派主板上的那颗LED灯规律闪烁时,是否好奇过这颗微型计算机内部的运行状态?CPU此刻的温度是多少?内存使用是否接近临界值?这些隐藏在命令行背后的数据,其实可以通过可视化的方式直观呈现。本文将带你用Node-RED和Home Assistant这两个神器,在树莓派上搭建一个实时硬件监控系统,无需编写复杂代码,只需拖拽节点就能创建专业级的监控仪表盘。

1. 环境准备与基础配置

在开始之前,确保你的树莓派已经安装以下组件:

  • 最新版Raspberry Pi OS(原Raspbian)
  • Node-RED(可通过sudo apt install nodered安装)
  • Home Assistant(推荐使用官方安装脚本)

关键组件版本要求

组件最低版本推荐版本
Node-RED2.03.0+
Home Assistant2023.12023.7+

提示:如果尚未安装Home Assistant,可以使用以下命令快速部署:

curl -Lo install.sh https://raw.githubusercontent.com/home-assistant/supervised-installer/master/install.sh bash install.sh

登录Home Assistant控制台(通常地址为http://树莓派IP:8123),在左侧面板点击"配置"→"系统"→"硬件",确认能够看到CPU温度、内存占用等基础监控项。这些原生传感器将成为我们数据可视化的基础来源。

2. 获取Home Assistant API访问凭证

要让Node-RED与Home Assistant通信,需要创建一个长期有效的访问令牌:

  1. 在Home Assistant界面点击左下角用户头像
  2. 滚动到页面底部选择"创建令牌"
  3. 输入描述性名称(如"Node-RED监控")
  4. 点击确定后立即复制生成的令牌字符串

重要:令牌只显示一次,请妥善保存。若遗失需重新生成。

这个令牌相当于系统的万能钥匙,我们将它配置到Node-RED的Home Assistant节点中。打开Node-RED编辑器(通常运行在1880端口),按照以下步骤操作:

// 示例配置对象 { "name": "Home Assistant Server", "url": "http://localhost:8123", "access_token": "你的长令牌字符串", "verify_ssl": false }

在Node-RED流程编辑器中,从左侧面板拖拽"home assistant"节点到工作区,双击节点后点击服务器配置旁的铅笔图标,填入上述信息。

3. 构建硬件监控数据流

现在我们来搭建核心监控流程,主要使用三类节点:

  • server-state-changed:监听硬件状态变化
  • function:数据格式转换
  • ui_gauge/ui_chart:可视化展示

3.1 CPU温度监控实现

从节点面板依次拖拽以下节点并连线:

  1. server-state-changed节点(配置实体ID为sensor.cpu_temp
  2. function节点(添加以下处理逻辑):
    // 将原始数据转换为适合仪表盘显示的格式 msg.payload = { value: Math.round(msg.payload.state), topic: msg.payload.attributes.unit_of_measurement }; return msg;
  3. ui_gauge节点(类型选择"gage",设置量程0-100℃)

温度仪表盘关键参数

  • 颜色分段:绿色(<60℃)、黄色(60-80℃)、红色(>80℃)
  • 单位显示:℃
  • 刷新频率:默认5秒

3.2 内存占用监控方案

对于内存监控,我们采用饼图形式展示使用比例:

// 内存数据转换函数 const totalMem = 3839; // 树莓派4B总内存MB数 msg.payload = { value: Math.round((msg.payload.state / totalMem) * 100), label: `${msg.payload.state}MB` }; return msg;

配置ui_gauge节点为"donut"类型,设置:

  • 量程:0-100%
  • 分段阈值:30%和70%
  • 动态标签显示当前使用量

4. 高级可视化技巧

4.1 历史趋势图表配置

添加ui_chart节点来展示温度变化曲线:

{ "chartType": "line", "legend": false, "xformat": "HH:mm:ss", "interpolate": "linear", "ymin": "20", "ymax": "90", "removeOlder": "1", "removeOlderUnit": "3600" }

专业建议:对于高频监控数据,可以添加batch节点进行数据采样,避免图表刷新卡顿。

4.2 移动端适配方案

Node-RED的仪表盘默认支持响应式布局,但我们可以通过CSS注入优化移动端显示:

/* 在Dashboard页面的site属性中添加 */ @media (max-width: 768px) { .ui-gauge { min-width: 120px !important; } }

5. 异常报警与自动化扩展

当温度超过安全阈值时,可以扩展流程实现邮件通知:

  1. 添加switch节点判断温度值
  2. 连接email节点配置SMTP服务
  3. 添加delay节点避免重复报警
// 温度报警逻辑 if (msg.payload > 80) { msg.topic = "CPU高温警报"; msg.payload = `当前温度${msg.payload}℃,请检查散热!`; return msg; }

对于更复杂的监控场景,可以考虑:

  • 将数据持久化到InfluxDB
  • 集成Telegram机器人通知
  • 添加系统负载关联分析

6. 性能优化实践

在长期运行中,建议实施以下优化措施:

节点配置调整

  • 设置合理的轮询间隔(非关键数据可设为30秒)
  • 禁用不需要的调试输出
  • 使用exec节点直接读取/sys/class/thermal数据作为备用方案

系统级优化

# 调整Node-RED内存限制 sudo nano /etc/default/nodered

修改以下参数:

NODE_OPTIONS="--max-old-space-size=256"

经过这些步骤,你的树莓派将拥有一个实时、美观且低资源占用的硬件监控系统。无论是放在工作室作为状态看板,还是集成到智能家居的中控系统,这个方案都能提供可靠的数据可视化支持。

http://www.jsqmd.com/news/688892/

相关文章:

  • 2026年黄金回收指南:这五家高评价实体店为何备受信赖? - 品牌企业推荐师(官方)
  • 智驾进阶之路:V2X打通车与万物互联,航芯安全芯片守护产业行稳致远
  • 订单中心怎么设计?一次讲清订单主链路、状态流转、拆单模型与核心边界
  • 告别触摸屏!用4个物理按键玩转LVGL界面(附焦点保存与恢复实战代码)
  • 仅限SRE/SecOps内部传阅:Docker 27 Registry安全基线27项强制项(含FIPS 140-2合规对照表)
  • Windows与Office终极激活指南:KMS_VL_ALL_AIO智能脚本完全教程
  • 抖音批量下载工具:从零开始构建高效视频收集工作流
  • 概率流常微分方程(PFODE)
  • Umi-CUT:彻底解决图片黑边困扰的终极批量处理工具
  • 2026年健康早餐新选择:这份黑麦吐司榜单,好吃到颠覆你的认知 - 品牌企业推荐师(官方)
  • 别再只会画折线图了!用Qt Charts搞定5种实用图表(附完整源码)
  • CUDA 13算子开发必踩的5大安全陷阱:从内存越界到PTX注入攻击,一线GPU工程师紧急避坑指南
  • 别再手动建文件夹了!Android Studio 2023.3.1 一键生成多语言资源目录(附完整国家/地区代码表)
  • 20260423 紫题训练
  • ComfyUI-Manager:彻底改变AI绘画插件管理体验的智能解决方案
  • 别再傻等Importing了!保姆级教程:用Docker快速部署Unity CacheServer(含Windows/Linux配置)
  • 5步快速上手《缺氧》存档编辑器:Duplicity终极指南
  • 球类运动自动跟拍怎么实现?AI尚运动相机实测揭秘
  • Windows右键菜单清理神器:ContextMenuManager让你的右键菜单焕然一新
  • 别再只用to_string()了!盘点Pandas中DataFrame与字符串互转的5种方法及适用场景
  • Mac Mouse Fix终极指南:5分钟让你的普通鼠标超越苹果触控板
  • 【信创开发环境黄金标准】:2026年工信部推荐VSCode配置模板——已通过中国电科、航天信息、中航信三大央企红蓝队渗透测试
  • 深度测评Alpha AI:大模型加持下,这款AI量化引擎表现如何?
  • AM32开源代码中的delay函数详解:STMICRO/GIGADEVICES/ARTERY三种计时器实现对比
  • 【收藏级】2026年AI与金融大模型深度解析:两条技术路径对比+落地指南(小白程序员入门必看)
  • 面试官最爱问的字符串算法:最长回文子串的两种解法(中心扩展 vs Manacher)
  • LVGL内存优化实战:当你的嵌入式Linux板子报‘段错误’时该怎么办?
  • 社交产品测试
  • 实战指南:在Voxel R-CNN与CenterPoint中集成Focals Conv模块提升3D检测性能
  • 三步搞定抖音下载:免费无水印批量下载终极指南