Raspi-io:错误:未知引脚“null”

时间:2015-08-13 14:58:24

标签: node.js raspberry-pi motion-detection johnny-five

我正在使用johnn-five的{​​{1}}和raspi-io软件包,我正在尝试读取在PIR运动传感器上创建的事件,但每次运行应用程序时,抛出错误。

控制台

node

package.js

pi@raspberrypi ~/poc $ sudo node app.js 
1439476578608 Device(s) RaspberryPi-IO  
1439476578749 Connected RaspberryPi-IO  
1439476578825 Repl Initialized  
>> /home/pi/poc/node_modules/raspi-io/lib/index.js:316
      throw new Error("Unknown pin \"" + pin + "\"");
            ^
Error: Unknown pin "null"
    at Raspi._defineProperty.value (/home/pi/poc/node_modules/raspi-io/lib/index.js:316:17)
    at Raspi.pinMode (/home/pi/poc/node_modules/raspi-io/lib/index.js:327:47)
    at Motion.Controllers.PIR.initialize.value (/home/pi/poc/node_modules/johnny-five/lib/motion.js:27:17)
    at new Motion (/home/pi/poc/node_modules/johnny-five/lib/motion.js:180:10)
    at Board.<anonymous> (/home/pi/poc/app.js:9:16)
    at Board.emit (events.js:104:17)
    at process._tickDomainCallback (node.js:381:11)

app.js

{
  "name": "poc",
  "version": "0.0.1",
  "main": "app.js",
  "private": true,
  "dependencies": {
    "johnny-five": "0.8.86",
    "raspi-io": "3.3.4"
  }
}

但是,以下代码似乎有效:

从另一个poc

剪断
var raspi = require('raspi-io');
var five  = require('johnny-five');

var board = new five.Board({
  io: new raspi()
});

board.on('ready', function() {
  var motion = new five.Motion({pin: 'PI-17'});

  motion.on('calibrated', function() {
    console.log('calibrated');
  });

  motion.on('motionstart', function() {
    console.log('motionstart');
  });

  motion.on('motionend', function() {
    console.log('motionend');
  });
});

Raspberry是Rev. 2型号B.
我正在使用的运动检测器是this one 电缆连接如下(物理引脚,取自this schema

var raspi = require('raspi');
var gpio = require('raspi-gpio');

raspi.init(function() {

  var input = new gpio.DigitalInput({
    pin: 'P1-17'
  });

  var logInput = function() {
    console.log('Input 17: ' + input.read());
    setTimeout(logInput, 1000);
  };

  logInput();

});

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

经过更多搜索,我遇到了this image

this image

它为我提供了更多关于WiringPi Pin编号,BCM GPIO命名和P1命名的见解。

引脚0(BCM 17)上的引脚GPIO0似乎抛出错误。

我切换到使用引脚4(BCM 23)上的引脚GPIO4。

为什么0不起作用真的没有意义,但是现在,我正在努力的poc可以再次进步。

答案 1 :(得分:0)

您的问题与任何代码或命名问题均无关。不幸的是,您选择了哪种引脚不正确。 P1-17无法接受输入,因为它专用于3.3v输出。选择其他引脚,您应该没问题。

在Johnny Five中,任何为I2C或串行端口保留的引脚都不能用于常规GPIO功能,而专用的电源和接地引脚则永远不能用于IO。只要您避开这些端口,就可以了。 here是有关Raspberry Pi引脚排列的一个很好的资源。