Nodejs GPIO引脚使用情况 – gpio-admin:无法更改组的所有权

我正在尝试在我的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-gio模块,如下所示

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

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

自3.18.x开始,内核中gpio的path已经更改为/sys/class/gpio/ 。 旧版本的pi-gpio和gpio-admin只支持/sys/classes/virtual/gpio/ 。 较新的版本也支持/sys/class/gpio/

编辑:

 npm update pi-gpio 

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

select一个你想放入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 

作为根。