资讯动态

树莓派5车间实战复盘:六大坑点排查与稳定运行方案

发布时间:2026/10/7 1:36:18 来源:尧图企业网站定制
树莓派 5 进车间卡在六件事上开头要说清楚一件事树莓派这个板子在办公室玩和在车间用完全是两种项目。我在车间里盯着一台老掉牙的立式铣床想给它做个转速监测和数据记录偷懒不装昂贵的工业传感器套件就把树莓派 5 带进了车间。理想很丰满结果开机第一天就被现实按在地上摩擦。前后折腾了将近两周总结下来就六件事开机没头没脑、源站慢到吐血、电源供电玄学、传感器干扰发疯、风扇噪音逼人、数据采集不上不下。这六个卡点单独拎出来哪个都不算高科技但叠在一起足以把一个成熟的开发流程拖成野路子啃代码现场。这篇就按时间顺序把这六件事完整复盘一遍附带我试过的排查方法和最终稳定运行的方案给想在车间、仓库、户外这类非办公环境部署树莓派的朋友做个参考。裸机进车间开机没头没脑树莓派 5 进车间的第一道坎不是性能不是系统而是它压根没有开机画面。家里玩树莓派随便接个 HDMI 显示器、键盘鼠标就行但车间现场哪有这些东西。我手头只有一台笔记本电脑一个网口和一个 USB 口想着用网线直连树莓派走 SSH 进去应该属于常规操作。结果第一个坑就埋在这里。1.1 没有显示器时如何完成系统烧录树莓派 5 用的是 microSD 卡启动和 NVMe 启动双方案考虑到车间振动环境SD 卡怕松动我直接选了 NVMe 方案用 M.2 HAT 扩展板加一块 256GB 固态。系统烧录用的是树莓派官方 Raspberry Pi Imager选 Ubuntu Server 24.04 LTS。这里有个重要细节Imager 烧录界面的齿轮图标里除了可以预设 SSH 开启和用户名密码还有一个非常关键的选项“Configure wireless LAN”。车间里没 WiFi 或者 WiFi 信号不稳定我直接留空无线配置打算用网线直连。烧录完成后把 NVMe 固态插上扩展板树莓派接上网线另一端插笔记本网口。这时候要注意树莓派默认 DHCP 获取 IP但笔记本那边是自动获取的两边根本没有能通信的 IP 地址。所以必须手动给笔记本的有线网卡配置一个静态 IP比如 192.168.1.100掩码 255.255.255.0然后树莓派启动时 DHCP 找不到服务器会自动回退到一个 link-local 地址也就是 169.254.x.x 段。这个地址不稳定而且 SSH 默认不一定监听在 IPv4LL 上实际很难连上。正确做法是在烧录系统之前直接用 Imager 的高级选项里的“Edit settings”设置一个静态 IP 给树莓派比如 192.168.1.99掩码 255.255.255.0网关 192.168.1.1DNS 留空。然后笔记本网卡设置成 192.168.1.100两边就在同一网段了。上电后等两分钟SSH 到 192.168.1.99用户名是你预设的。这里有个隐藏坑树莓派 5 的板载网卡是千兆的启动时间比树莓派 4B 长一点第一次启动要做文件系统扩展等三分钟以上再 ping 别着急。1.2 SSH 连接不上的真正原因排查我在现场首次 SSH 卡住了提示 connection refused。最开始怀疑是系统没起来但电源灯常亮风扇也在转。把笔记本和树莓派直连抓包看了一下 ARP 请求有响应说明系统起来了网络也通了。问题出在哪后来发现是 SSH 服务没启动。Ubuntu Server 的镜像烧录时Imager 预设 SSH 开启但是这个设置默认只对树莓派 OSRaspberry Pi OS直接生效对 Ubuntu 镜像有时会失效因为 Ubuntu 使用的是 cloud-init 机制它用自己的配置覆盖部分首批启动设置。解决办法很简单要么第一次启动还是接一块临时显示器把服务启动并设为开机自启要么烧录完系统后把 SD 卡或 NVMe 固态插到 Linux 电脑上直接修改根分区里的 cloud-init 配置文件。我更推荐后者毕竟车间里真没有 HDMI 显示器给你用。具体操作把固态挂载到电脑上编辑/etc/cloud/cloud.cfg把ssh_pwauth从false改成true再把/root/.ssh/authorized_keys放进你的公钥或者直接改/etc/ssh/sshd_config 允许密码登录。插回树莓派一次成功。注意树莓派 5 不再支持 32 位系统跑得顺这种说法了官方已经切到 64 位内核Ubuntu Server 24.04 默认就是 arm64。后面装的一切软件和驱动都要认准 arm64 架构不要稀里糊涂下个 armhf 版本运行时会报 Illegal instruction折腾死人。软件源慢到怀疑人生换源是个技术活系统起来了SSH 也进去了当你觉得离成功不远时apt update 给你当头一棒。树莓派在车间环境里没有专线网络走的是车间办公室的宽带访问官方源的速度基本属于不可用级别。等了几分钟下载速度稳定在几 KB/s 到几十 KB/s装个 build-essential 都想放弃。换源是必经之路但换源这件事在树莓派 5 Ubuntu Server 这个组合上有几个隐蔽的坑。2.1 正确选择镜像源并避开版本陷阱换源首先要认清系统版本。树莓派 OSRaspberry Pi OS基于 Debian源配置在 /etc/apt/sources.list 和 /etc/apt/sources.list.d/ 下面。Ubuntu Server 的源配置则在 /etc/apt/sources.list.d/ubuntu.sources 这个文件里是个 deb822 格式和老式 sources.list 写法完全不同。很多教程还在让你 echo 一堆 deb http://... 进去这在 Ubuntu Server 24.04 上不一定生效因为系统默认只读取 deb822 格式。我的做法是编辑 /etc/apt/sources.list.d/ubuntu.sources把里面的 URIs 改成国内镜像站。要注意一个重要细节树莓派 5 是 arm64 架构国内镜像站基本都有 arm64 的 Ubuntu ports 源但有些镜像站只同步了 amd64 的部分软件包apt update 时会出现 404。我实测下来清华源和阿里云源对于 arm64 的 Ubuntu 24.04 支持都比较完整中科大源偶尔会有同步延迟。改完源之后apt update 速度直接飙到几 MB/s这才是正常状态。2.2 apt 指纹验证失败的处理思路换源以后新手容易遇到另一个问题apt update 报错提示某个 Release 文件的签名验证失败。这是因为 Ubuntu 24.04 的源列表里有官方签名密钥镜像站如果同步了 keyring 的路径但没同步最新密钥或者你的系统时间没校准都会导致验证失败。时间不同步这个坑在树莓派上特别常见因为树莓派没有板载 RTC 电池断电重启后时间会重置到 1970 年。你想想一个 1970 年的系统去验证 2024 年的签名能成功才怪。解决办法很简单进入系统后第一时间装 ntp 或者 chrony手动 date -s 设置一个大概时间然后 apt update 一把。如果仍然报 NO_PUBKEY可以执行 apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 导入缺失的密钥但要注意 apt-key 在新版系统中已废弃能用 gpg 导入并挂到 /etc/apt/keyrings 下是最规范的方式。这里推荐一个经验先 date 再 update能省掉一半的密钥报错。供电问题工业现场的电源玄学树莓派 5 进车间后遇到的第二个大问题不是软件而是物理层面的电源。树莓派 4B 时代官方要求 5V 3A 的 USB-C 电源到了树莓派 5官方的要求是 5V 5A因为它的峰值功耗明显提高了特别是外接 NVMe 固态或者 USB 设备的时候瞬时电流可能冲到 3A 以上。车间的电源环境比家里恶劣得多大功率设备启停会造成电压跌落这一点在树莓派上表现特别灵敏。3.1 电源不足导致重启和文件系统损坏我一开始用了一个普通 5V 3A 的手机充电头给树莓派 5 供电当时觉得 3A 够用了。结果马车一开铣床启动瞬间树莓派直接掉电重启。铣床电机启动电流很大车间同一回路上电压被拉低树莓派的电源保护直接触发重启。反复重启的后果是 NVMe 固态的文件系统出现脏标记系统启动时 fsck 卡住或者进入 initramfs 等待。如果你在车间听到树莓派反复“哔”一声重启八成是电源问题。解决思路分两层。第一层换电源必须用官方 27W USB-C 电源或者正规支持 5V 5A 输出的品牌电源。第二层在电源与树莓派之间加一个小型 UPS 或者大电容模块。工业上有个东西叫“掉电保持模块”通过一个大电容在电压跌落时维持几百毫秒的输出刚好够树莓派躲过铣床启动那几十毫秒的低谷。我选的是一个 5V 的 DC-UPS 模块输入接车间 DC 24V 转换后的 5V输出接树莓派实测铣床启动时电压跌落时间从 200ms 缩短到 30ms 以内树莓派不再重启。3.2 如何用绿色指示灯和电压表快速定位供电故障树莓派主板上有几个 LED 指示灯其中电源指示 DIP LED 常亮代表有供电但无法指示电压是否达标。更实用的办法是用万用表测树莓派 5 的 USB-C 接口旁边的测试点 TP1 和 TP2或者直接在 GPIO 排针的 5V 和 GND 引脚上测量。树莓派 5 的 GPIO 第 2 脚、第 4 脚是 5V第 6、9、14、20、25、30、34、39、40 脚是 GND上电后空载电压应该在 5.1V 左右。如果接上外设后电压掉到 4.8V 以下说明供电余量不足不是电源的问题就是连线电阻过大。车间里用劣质 Micro 转 Type-C 转接头最容易引发电压降实测劣质转接头能吃掉 0.3V。我还遇到一个更隐蔽的问题通过 GPIO 排针给树莓派反向供电会导致 SMU 保护启动到一半自动关机。树莓派 5 支持通过 GPIO 5V 引脚供电但官方不推荐与外接 USB-C 电源同时供电。我一开始为了让接线简单把传感器和树莓派共用一个 5V 电源模块树莓派电源接了 USB-C传感器电源接了 GPIO 5V两个电源的压差导致电流倒灌系统不定期挂死。最后统一改成树莓派单独电源供电传感器统一通过 GPIO 5V 供电二者共地再也没出现过倒灌问题。传感器干扰导致读数漂移抗干扰要从接线做起系统的软件环境稳定之后我开始接传感器。项目核心是测铣床主轴的振动和转速用的是 ADXL345 加速度计和霍尔传感器。ADXL345 是 I2C 接口支持 SPI我选了 I2C 模式因为接线少VCC、GND、SDA、SCL 四条线。问题在于车间里到处都是变频器、接触器和电机电缆这些设备工作时会产生强烈的电磁干扰I2C 在长线传输上非常脆弱我的读数开始平均每两次通信就有一次超时或返回全 FF。4.1 树莓派 5 引脚的物理布局与接线避坑树莓派 5 的 GPIO 引脚排列和树莓派 4B 大部分兼容但有一个重要变化I2C 地址和引脚编号的整体定义保留了 Broadcom SoC 的方案物理排针仍然是 40 Pin。常用的 I2C1 对应物理 Pin 3GPIO 2 SDA和 Pin 5GPIO 3 SCL。我给传感器接上杜邦线后读到的原始数据波动剧烈最开始以为是传感器坏了后来用示波器看 SDA 线发现上面叠加了一次约 200mV 的高频噪声。解决办法分三步。第一步缩短杜邦线距离把原来 30cm 的杜邦线换成 15cm 以内的屏蔽线屏蔽层接地。第二步在传感器的 VCC 和 GND 之间加一个 100nF 陶瓷电容和一个 10uF 电解电容旁路高频和低频噪声。第三步启用树莓派的 I2C 内部上拉电阻或者外部接 4.7kΩ 上拉到 3.3V。树莓派 5 的 I2C 1 默认已带内部上拉但上拉强度和线缆电容不匹配时信号边沿仍会失真实测外部上拉 2.2kΩ 效果更稳。改完接线以后ADXL345 的读数终于稳定振动波形的基线不再上下漂移。4.2 I2C 地址冲突与设备枚举排查方法接上 ADXL345 后我顺手把所有 I2C 外设都挂到总线上这时候出现一个经典的坑地址冲突。ADXL345 的 I2C 地址默认是 0x53I2C 地址引脚 SDO 拉高或拉低可以在 0x1D 和 0x53 之间切换。如果总线上还有其他地址相同的设备树莓派读到的数据就是乱的。排查方法很简单执行 i2cdetect -y 1看总线上的设备地址列表。如果某个地址被多个设备占用i2cdetect 显示的内容可能模棱两可需要逐个断开设备定位。此外还要提一下树莓派 5 的 arm64 Ubuntu 上 I2C 设备树使能问题。树莓派 OS 默认在 /boot/firmware/config.txt 里启用 I2C但 Ubuntu Server 不一定。需要编辑 /boot/firmware/config.txt添加 dtparami2c_armon然后重启。没有这一行的话/dev/i2c-1 这个设备节点可能根本不存在或者权限是 root 所有普通用户无法读取。有些人会用 sudo chmod 666 /dev/i2c-1 来临时解决但重启后失效正确做法是把用户加入 i2c 组或者写一个 udev 规则。风扇噪音比机器还响主动散热还得考虑防尘和控速树莓派 5 的发热量相比 4B 有明显提升官方主动散热风扇是必需品。车间环境里唯一不缺的就是灰尘和噪音这个问题一开始严重影响了我在车间待下去的心情。开机满载跑了几分钟散热风扇开始全速转那个声音甚至盖过了旁边的电脑风扇。而且车间里粉尘大风扇高速运转时还会把切削粉尘吸进散热鳍片里几天下来散热性能急剧下降。5.1 树莓派 5 风扇转速控制与 PWM 调速树莓派 5 的风扇接口是一个 4 Pin PWM 风扇接口官方风扇支持通过 GPIO 引脚控制转速。默认情况下固件会根据 SoC 温度自动调节风扇转速但 Ubuntu Server 的默认配置里调速策略偏保守温度一过 50 度风扇就狂转。手动控制的方法有两种。一种是使用树莓派的 fancontrol 服务另一种是直接写 Python 脚本控制 PWM。树莓派 5 使用 /sys/class/thermal/cooling_device*/ 和 /sys/class/hwmon/hwmon*/pwm* 来管理风扇。我写了一个简单的 systemd 服务每 10 秒读取一次 /sys/class/thermal/thermal_zone0/temp根据温度设定 PWM 占空比50 度以下 30%60 度以上 70%70 度以上 100%。实际效果待机时风扇几乎无声满载时温度压到 60 度左右噪音比以前可控很多。注意树莓派 5 的风扇接口是 4 Pin其中 PWM 控制信号是 3.3V 电平不是 5V。有些第三方风扇线序和官方不一样接到板子上可能导致 PWM 不受控甚至烧坏 GPIO。买风扇前先确认规格别图便宜买了三线风扇三线风扇没有调速线插上就是全速转。5.2 车间粉尘环境下的散热改造解决噪音后粉尘问题成了散热能否持续的关键。树莓派 5 原装散热方案是一个铝合金散热片加风扇风扇朝下吹风气流通过散热片后向四周散开。这种方式在干净桌面没问题在车间里等于一个吸尘器。我的方案是加装一个打印的透明防尘罩罩在树莓派和风扇上方进风口处贴一块空气过滤棉出风口保持通畅。实测开机跑了一个月拆开罩子看散热片上的积尘比裸奔状态少了至少 80%。注意要在过滤棉挡住的进风口周围留出足够通风面积保证风扇的风量不会因为阻力过大而明显下降。如果你动手能力强可以做一个风道让气流单向通过散热片效果更好但车间环境很少有这个条件过滤棉方案已经够用。数据采集了却不知道怎么用可视化与远程访问的最后一公里系统跑通了传感器数据也能读了但这只是完成了“采集”的一半。真正有价值的是数据能实时看到、能回看趋势、能报警。车间里不可能一直蹲在树莓派前面看终端所以需要把数据可视化并支持远程访问。这里的坑在于树莓派本身性能足够但你的网络环境和浏览器兼容性会限制方案选择。6.1 用 InfluxDB Grafana 搭一个车间看板我最终选的技术栈是 InfluxDB 2.7 Grafana 11跑在树莓派 5 上。Python 脚本用 Adafruit_ADXL345 库读取加速度数据计算振动烈度每 5 秒写入 InfluxDB。InfluxDB 和 Grafana 都支持 arm64 架构直接通过 apt 或 Docker 安装。我建议直接装 Docker 版本配置管理方便升级也省事但注意树莓派 5 上的 Docker 默认存储驱动 overlay2 性能不错工业现场长时间运行比直接在宿主机装软件更稳定。Grafana 的仪表盘配置可以做到实时折线图、历史趋势和阈值报警。我设置了振动速度超过预设阈值就通过 Telegram Bot 推送到手机。这里要注意一个常用功能坑内置的告警通知渠道在 Grafana 老版本和新版本里的配置方式不同新版 Alerting 使用统一告警引擎需要在 Contact points 里配置通知渠道。我一开始用的是旧教程的 Notification channel 方式结果新版界面里根本找不到那个选项浪费了两个小时。认准版本号去查官方文档不要拿旧教程硬套。6.2 远程访问的安全考虑和固定 IP 方案车间里访问树莓派我不喜欢每次去查 IP 地址所以给树莓派设置了静态 IP 192.168.1.99原因前面已经说过。但远程访问 Grafana 时有个安全隐患它的默认端口 3000 直接暴露在局域网中密码如果设置得简单车间同事手机扫码就能进去看数据改错了还会影响生产。我最终的做法是给 Grafana 加了一层 Caddy 反向代理配了 HTTP Basic Auth 和自签名 HTTPS 证书。虽然局域网内部不做 HTTPS 有点小题大做但至少浏览器不会报警“不安全”而且多一次密码校验能拦住误操作。树莓派本身的 SSH 服务我也没有暴露公网。车间没有远程外网访问刚需所以不做内网穿透需要查看数据时通过类似 Tailscale 的组网工具进入车间局域网这样比直接做端口转发安全得多。如果你的环境必须公网访问建议优先考虑组网工具而不要直接端口映射否则树莓派上的弱口令就会变成大问题。常见问题速查表与避坑经验复盘整个项目把踩过的坑整理成一个表格给想照抄作业的朋友。有些问题看起来和树莓派无关但在工业场景下会以意想不到的方式冒出来。问题现象根因排查/解决方式SSH 连接被拒绝Ubuntu cloud-init 覆盖 SSH 预设初次烧录后修改 cloud-init 配置或首次接显示器启用服务apt update 极慢官方源对国内网络不友好换用 arm64 兼容的国内镜像源使用 deb822 格式系统时间不对树莓派无板载 RTC安装 chrony 或 ntp手动 date 校准后进行 apt 操作运行中随机重启供电电压跌落换 5V 5A 电源加掉电保持模块万用表测 5V 引脚传感器数据跳动线缆过长、干扰大缩短杜邦线、使用屏蔽线、增加去耦电容、调 I2C 上拉电阻风扇噪音大默认温控策略保守PWM 自动调速温度阈值分段控制散热鳍片积灰车间粉尘吸入加防尘罩、进风口过滤棉、定期清理新版 Grafana 找不到老功能教程版本不匹配查官方文档按当前版本配置 Alerting经验总结起来有三条。第一条树莓派 5 进工业现场选型只是第一步真正花时间的是供电和散热这两件事不做稳后面软件做得再漂亮都是白搭。第二条车间环境里做数据采集别迷信高精度传感器先把线缆布好、做好屏蔽和共地处理数据质量会大幅提升。第三条远程访问和安全配置要提前规划不要等到数据上屏了再补漏洞工业现场的安全意识比办公室强得多。最后再分享一个小技巧树莓派 5 在 Ubuntu Server 下的 SD 卡/NVMe 寿命是个容易被忽视的问题。如果你的数据写入频率高比如每 5 秒写一次 InfluxDB长期跑下来固态会明显磨损。建议把 InfluxDB 的数据目录迁移到另一个独立分区或者降低写入频率到 10 秒一次实测寿命可以延长好几倍。这个小改动无法立竿见影但跑三个月后你会回来感谢我。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑