Nodejs GPIO引脚用法 - gpio-admin:无法更改组所有权

时间:2016-04-02 06:09:23

标签: node.js gpio raspberry-pi3

我正在尝试在我的Raspberry PI上使用nodejs从附加的光传感器读取值。我可以从python程序中读取并确认我的设置是正确的。

以下是程序

var gpio = require("pi-gpio");

gpio.open(12, "output", function(err) {     // Open pin 12 for output 
    gpio.read(12, function(err,value) {         // Set pin 16 high (1) 
        console.log(value);
        gpio.close(12);                     // Close pin 16 
    });
});

以下是错误消息

pi@raspberrypi:~/Samples $ node GPIO.js
Error when trying to open pin 12
gpio-admin: failed to change group ownership of /sys/devices/virtual/gpio/gpio18/direction: No such file or directory

我之前安装了pi-gpio模块,如下所示

pi@raspberrypi:~/Samples $ npm install pi-gpio

1 个答案:

答案 0 :(得分:1)

确保您使用的是最新版本的pi-gpio和gpio-admin。

3.18.x以来内核中gpio的路径已更改为/sys/class/gpio/。旧版本的pi-gpio和gpio-admin仅支持/sys/classes/virtual/gpio/。较新版本还支持/sys/class/gpio/


修改

运行

npm update pi-gpio

如果问题仍然存在,请自行构建最新版本的gpio-admin。

选择要将gpio-admin放入的目录,然后运行

git clone https://github.com/quick2wire/quick2wire-gpio-admin.git
cd quick2wire-gpio-admin

如果src/gpio-admin.c

int size = snprintf(path, PATH_MAX, "/sys/devices/virtual/gpio/gpio%u/%s", pin, filename);

将其更改为

int size = snprintf(path, PATH_MAX, GPIO_CLASS_PATH "gpio%u/%s", pin, filename);

然后,跑     使

然后,运行

make install

以root身份。