Node.JS onoff没有正确拾取GPIO

我build立一个简单的红外breakbeam电路插入我的RPi 2.我有一些工作代码在python成功地拿起,当我的红外光束坏了,但我想用node.js而不是python。

这是我的Python代码,很好,很简单:

import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BOARD) GPIO.setup(7, GPIO.IN) try: while True: print(GPIO.input(7)) time.sleep(0.01) except KeyboardInterrupt: GPIO.cleanup() 

现在我做了一些关于node.js的不同软件包的阅读,这些软件包允许我在Pi上使用GPIO,并决定onoff看起来像最好的一个,因为它与我想要使用的callbackasynchronous工作。

这是我正在尝试用于节点的代码:

 var Gpio = require('onoff').Gpio, infrared = new Gpio(7, 'in'); var interval = setInterval(function() { console.log(infrared.readSync() ^ 1); }, 100); function exit() { infrared.unexport(); process.exit(); } process.on('SIGINT', exit); 

问题是节点我总是得到相同的0信号,不pipe我做什么。 我试图通过使用一个简单的button来消除我的电路问题,甚至不工作(我使用pythontesting了相同的电路,并且工作正常)。

这甚至不使用它的asynchronous部分(因为没有发生中断,所以它也不起作用)。

我曾尝试使用GPIOpipe理导出我正在使用的引脚:

 pi@counter ~ $ sudo gpio-admin export 7 gpio-admin: failed to change group ownership of /sys/devices/virtual/gpio/gpio7/direction: No such file or directory 

/sys/devices/virtual/gpio/在我的系统中不存在。

我必须做任何特定的事情才能让节点与我的GPIO很好的玩吗?

请注意,我使用Adafruit WebIDE编写了这个代码,是的,我试图从IDE的上下文中执行它,但它仍然不起作用。 我使用了2015/04/29最新的raspbian稳定版本,并使用了完整的更新系统,使用了nodejs v0.12.2。

节点GPIO库的主要问题是要给出的参数是引脚编号而不是GPIO编号…

尝试使用PIN码,通常它会工作。

GPIO 7是一个覆盆子pi上的pin 26