You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

树莓派3与Node-RED搭配Grove电容式湿度传感器报错求助

问题描述

树莓派3搭配Grove扩展板、Node-RED开发,已完成DHT11、Ds18b20、继电器的正常连接及手机远程控制,但使用node-red-contrib-grove-capacitive-moisture-sensor节点时服务器崩溃,日志报错:

error: command failed : python -u /home/pi/.node-red/node_modules/node-red-contrib-grove-capacitive-moisture-sensor/grove-capacity-moisture-sensor.py 4
 at ChildProcess.exithandler (node:child_process:400:12)
 at ChildProcess.emit (node:events:513:28)
 at maybeClose (node:internal/child_process:1093:16)
 at Process.ChildProcess._handle.onexit (node:internal/child_process:302:5) {
 code: 2,
 killed: false,
 signal: null,
 cmd: 'python -u /home/pi/.node-red/node_modules/node-red-contrib-grove-capacitive-moisture-sensor/grove-capacitive-moisture-sensor.py 4'
}

传感器为模拟设备,连接在A4接口,节点配置(时间戳触发)与其他传感器一致,但无法工作。手动运行对应Python脚本无任何输出:

pi@raspberrypi:~/.node-red/node_modules/node-red-contrib-grove-capacitive-moisture-sensor $ python -u grove-capacitive-moisture-sensor.py 4 

pi@raspberrypi:~/.node-red/node_modules/node-red-contrib-grove-capacitive-moisture-sensor $
排查思路
  • 检查Python版本与依赖:脚本返回code 2多为参数错误或依赖缺失。先执行python --version确认版本,Grove脚本通常需要Python3,若当前python指向Python2,改用python3运行脚本测试。
  • 验证接口映射关系:Grove扩展板的A4接口对应的ADC通道号可能不是4,查扩展板引脚映射表,确认实际通道号后替换脚本参数重试。
  • 检查脚本权限与内容:用ls -l grove-capacitive-moisture-sensor.py确认脚本有可执行权限,若无则执行chmod +x grove-capacitive-moisture-sensor.py。查看脚本源码,确认是否依赖grove.py库,若缺失则安装。
  • 测试ADC基础功能:运行官方测试代码验证A4接口是否正常:python3 -c "from grove.adc import ADC; adc = ADC(); print(adc.read(4))",若报错则说明ADC硬件或驱动存在问题。
解决方法
  1. 切换Python版本:
    修改Node-RED节点的执行命令,将python替换为python3;或全局设置python指向Python3:
    sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 1
    
  2. 补全依赖与权限:
    安装Grove Python库:
    pip3 install grove.py
    
    给脚本添加执行权限:
    chmod +x /home/pi/.node-red/node_modules/node-red-contrib-grove-capacitive-moisture-sensor/grove-capacitive-moisture-sensor.py
    
  3. 修正通道参数:
    若扩展板A4对应ADC通道不是4,替换脚本参数为正确值。比如部分扩展板A4对应通道0,执行python3 grove-capacitive-moisture-sensor.py 0测试。
  4. 自定义读取脚本:
    放弃第三方节点,用自定义Python脚本读取数据,通过Node-RED的exec节点调用。示例脚本:
    from grove.adc import ADC
    
    # 替换为实际通道号
    CHANNEL = 4
    adc = ADC()
    try:
        moisture_value = adc.read(CHANNEL)
        print(moisture_value)
    except Exception as e:
        print(f"Error: {str(e)}")
    

内容的提问来源于stack exchange,提问作者nico Lanseman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 06:10:30