首页 > 解决方案 > 如何在 Raspberry Pi 4B 上“开启”工作?

问题描述

我正在尝试制作“Coocking-aid”。我正在使用带有官方 7" 触摸屏和有源压电蜂鸣器的 Raspberry Pi 4B。“程序”应该在 Chromium(RPi 的网络浏览器)中运行,我用 HTML、CSS 和 Javascript 编写它。我可以用 Javascript 做一些技巧但那里缺乏很多知识。我尝试用Javascript发出蜂鸣器,但到目前为止没有成功。

蜂鸣器连接在 GPIO 引脚 17 和接地(连接器引脚 11 和 9)之间。当 GPIO 17 变为高电平 (+3V) 时,蜂鸣器会响起。我用一个小的 Python 程序测试了这个“电路”,它成功地打开了蜂鸣器:

1. from gpiozero import Buzzer
2. buzzer = Buzzer(17)
3. buzzer.on()

为了对 Javascript 做同样的事情,我了解到我需要安装 Node.js 及其模块“onoff”。

从这篇网络帖子1中,我学习了如何安装 node.js,方法是在终端中键入以下命令:

curl -sL https://deb.nodesource.com/setup_15.x | sudo -E bash -
sudo apt install -y nodejs

我通过键入:“node -v”检查了安装。响应是:“v15.12.0” 我还通过键入:“npm -v”检查了 Node 包管理器的版本。回应是:“7.7.5”

从这篇网络帖子2中,我学会了如何通过在终端中键入以下命令来安装“onoff”:

npm install onoff

我通过键入:“node -v”检查了安装。响应是“v15.12.0”

在 RPi 目录“/home/pi/node_modules/onoff/examples”中有一个名为“blink-led.js”的文件,我用它作为示例来创建(在同一目录中)一个名为“test.js”的文件" 使用以下代码:

'use strict';
const Gpio = require('../onoff').Gpio;  // Gpio class
const buzzer = new Gpio(17, 'out');     // Export GPIO17 as an output
buzzer.writeSync(17);                    // Make GPIO-pin 17 high

在终端中,我通过键入以下内容移动到同一目录:

cd /home/pi/node_modules/onoff/examples

然后通过键入以下命令执行“test.js”文件:

node test.js

不幸的是,蜂鸣器没有被激活,并且显示了一个全面的错误消息(见下文)。我的印象是这些数字是程序行号,我到处看看,但我不知道出了什么问题。任何帮助将非常感激!。

错误消息是:

/home/pi/node_modules/bindings/bindings.js:121
        throw e;
        ^

Error: libnode.so.64: cannot open shared object file: No such file or directory
    at Object.Module._extensions..node (node:internal/modules/cjs/loader:1151:18)
    at Module.load (node:internal/modules/cjs/loader:972:32)
    at Function.Module._load (node:internal/modules/cjs/loader:813:14)
    at Module.require (node:internal/modules/cjs/loader:996:19)
    at require (node:internal/modules/cjs/helpers:92:18)
    at bindings (/home/pi/node_modules/bindings/bindings.js:112:48)
    at /home/pi/node_modules/epoll/epoll.js:7:31
    at Object.<anonymous> (/home/pi/node_modules/epoll/epoll.js:15:3)
    at Module._compile (node:internal/modules/cjs/loader:1092:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1121:10) {
  code: 'ERR_DLOPEN_FAILED'
}

标签: javascriptnode.jsgpioraspberry-pi4

解决方案


推荐阅读