Raspi-io: Error: Unknown pin "null"
Raspi-io: Error: Unknown pin "null"
我正在为 node
使用 johnn-five
和 raspi-io
包,我正在尝试读取在 PIR 运动传感器上创建的事件,但每次我 运行 应用程序,抛出错误。
控制台
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)
package.js
{
"name": "poc",
"version": "0.0.1",
"main": "app.js",
"private": true,
"dependencies": {
"johnny-five": "0.8.86",
"raspi-io": "3.3.4"
}
}
app.js
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');
});
});
但是,以下代码似乎确实有效:
从另一个 poc 中截取
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();
});
Raspberry 是 Rev.2 型号 B。
我使用的运动检测器是 this one.
电缆连接如下(物理引脚,取自this schema)
Motion Sensor -> Pi
1 GND -> 6 GND
2 VDD -> 1 +3/V3 OUT
3 OUT -> 11 GPIO17
如有任何帮助,我们将不胜感激。
经过更多搜索,我找到了 this image。
它让我对 WiringPi 引脚编号、BCM GPIO 命名和 P1 命名有了更多的了解。
引脚 0 (BCM 17) 上的引脚 GPIO0 似乎引发错误。
我切换到使用引脚 4 (BCM 23) 上的引脚 GPIO4。
为什么 0 不起作用并没有什么意义,但就目前而言,我正在研究的 poc 可以再次取得进展。
您的问题不在于您的任何代码,也不在于命名问题。不幸的是,您选择的引脚使用不当。 P1-17
无法接受输入,因为它是专用的 3.3v 输出。选择另一个别针,你应该没问题。
任何为 I2C 或串行保留的引脚都不能用于约翰尼五号中的常规 GPIO 功能,以及永远不能用于 IO 的专用电源和接地引脚。只要你避开这些端口,你就会没事的。 Raspberry Pi 引出线的一个很好的资源是 here。
我正在为 node
使用 johnn-five
和 raspi-io
包,我正在尝试读取在 PIR 运动传感器上创建的事件,但每次我 运行 应用程序,抛出错误。
控制台
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)
package.js
{
"name": "poc",
"version": "0.0.1",
"main": "app.js",
"private": true,
"dependencies": {
"johnny-five": "0.8.86",
"raspi-io": "3.3.4"
}
}
app.js
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');
});
});
但是,以下代码似乎确实有效:
从另一个 poc 中截取
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();
});
Raspberry 是 Rev.2 型号 B。
我使用的运动检测器是 this one.
电缆连接如下(物理引脚,取自this schema)
Motion Sensor -> Pi
1 GND -> 6 GND
2 VDD -> 1 +3/V3 OUT
3 OUT -> 11 GPIO17
如有任何帮助,我们将不胜感激。
经过更多搜索,我找到了 this image。
它让我对 WiringPi 引脚编号、BCM GPIO 命名和 P1 命名有了更多的了解。
引脚 0 (BCM 17) 上的引脚 GPIO0 似乎引发错误。
我切换到使用引脚 4 (BCM 23) 上的引脚 GPIO4。
为什么 0 不起作用并没有什么意义,但就目前而言,我正在研究的 poc 可以再次取得进展。
您的问题不在于您的任何代码,也不在于命名问题。不幸的是,您选择的引脚使用不当。 P1-17
无法接受输入,因为它是专用的 3.3v 输出。选择另一个别针,你应该没问题。
任何为 I2C 或串行保留的引脚都不能用于约翰尼五号中的常规 GPIO 功能,以及永远不能用于 IO 的专用电源和接地引脚。只要你避开这些端口,你就会没事的。 Raspberry Pi 引出线的一个很好的资源是 here。