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
作为根。