javascript - 如何在 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'
}
解决方案
推荐阅读
- excel - 有一个隐藏零值的宏按钮 - 没有隐藏一行
- java - 使用枚举来决定打印哪些文本的迷宫游戏
- sql - Amazon Redshift 返回日期名称
- python - 我想将字典列表操作为 Python 中的列表列表
- html - 媒体查询问题
- c - C语言中处理多个命令而不是switch语句的适当方法是什么
- php - 从所有表中获取最近的 10 个条目
- string - 将字符串转换为“基本脚本”视图
- javascript - 在 onclick 后设置 prop 元素可见
- javascript - DataTables Request Unknown Parameter Error (Editor JS/CSS)