gpt4 book ai didi

node.js - 使用 Node.js 通过 Raspberry Pi 3 model B 进行 GPIO

转载 作者:太空宇宙 更新时间:2023-11-03 22:44:02 25 4
gpt4 key购买 nike

我正在尝试使用树莓派 3 B 型让 LED 闪烁,

我的机器上安装了所有必需的模块,即 npm 、 nodejs 、 pi-gpio (修复了检测 gpio 的微小更改)

代码是:

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

gpio.open(16, "output", function(err) {
gpio.write(16, 1, function() {
gpio.close(16);
});
});
//reading the data on the pin i.e pin : 16
gpio.open(16, "output", function (err) {
gpio.read(16, function (err, value) {
console.log("Data is "+ value);
gpio.close(16);
});
});

但是上面的代码在运行时抛出错误,

Node app.js

错误:尝试打开引脚 16 时出错gpio-admin:无法将数据刷新到/sys/class/gpio/export:设备或资源繁忙

提前致谢

任何可以看到电路图和代码的链接。

担忧:我不想更改平台,即 Node.js

我使用的pi-gpio是:https://github.com/rakeshpai/pi-gpio

最佳答案

pi-gpio 只是在后台写入 GPIO 设备,因此您可以跳过 node.jspi-gpio 并执行以下操作出于测试目的手动进行相同的操作。

示例:

gpio.open(16, ...
# is the same as writing in terminal:
echo 16 > /sys/class/gpio/export

... "output" ...
# is the same as writing in terminal:
echo "out" > /sys/class/gpio/gpio16/direction

等等

首先,尝试重新启动 Pi,看看是否可以解决问题。

如果这没有帮助,请尝试以 root 身份手动关闭/取消导出 pin,然后重新运行脚本。

# unexport the pin as root in case something's holding on to it
sudo echo 16 > /sys/class/gpio/unexport

下面的命令基本上构成了pi-gpio API。您可以将这些行放入 shell 脚本中来控制 GPIO。首先按照我编写它们的顺序在不使用 sudo 的情况下测试它们,如果它们不起作用,请尝试使用 sudo。如果它们仍然不起作用,我认为您存在接线/硬件问题,或者需要在其他地方更改一些系统设置。

# unexport the pin
sudo echo 16 > /sys/class/gpio/unexport

# export it again
sudo echo 16 > /sys/class/gpio/export

# make it an output
sudo echo "out" > /sys/class/gpio/gpio16/direction

# write a HIGH - is the LED on now?
sudo echo 1 > /sys/class/gpio/gpio16/value

# read the value of the pin - is it 1 after writing a 1 to the pin?
cat /sys/class/gpio/gpio16/value

# write a LOW - did it turn off?
sudo echo 0 > /sys/class/gpio/gpio16/value

关于node.js - 使用 Node.js 通过 Raspberry Pi 3 model B 进行 GPIO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36735925/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com