我正在尝试在我的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
答案 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身份。