2

我正在尝试在我的 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
4

1 回答 1

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

然后,运行

make install

作为根。

于 2016-04-02T07:08:11.143 回答