你能用 JavaScript 控制你家外面的一个单元吗?例如关闭一个Raspberry Pi 3 网页上的按钮"Shut down"
Can you control a unit outside your home with JavaScript? For example, shut down a Raspberry Pi 3 with the button "Shut down" on a web page
几年前我做了一个 UI 使用 7 英寸触摸屏连接到 Raspberry Pi 3.
我有一个数字按钮“关闭”,它可以完美地使用 Java 向 Raspberry 发送消息(参见下面的代码)。
try {
Runtime.getRuntime().exec("sudo shutdown -h now");
} catch (IOException e) {
e.printStackTrace();
}
现在我想使用 JavaScript 在网页上使用“关闭”按钮关闭 Raspberry Pi 3。所以我假设我需要授予 Web 服务器权限,然后将此消息 sudo shutdown -h now
发送到 Raspberry。有什么建议吗?
如果要使用服务器端JavaScript,则需要使用Node.js。
像这样:
var express = require('express')
var app = express()
const { exec } = require("child_process");
// when navigating to your http://<yourdomain>/shutdown
app.get('/shutdown', function (req, res) {
exec("sudo shutdown -h now", (error, stdout, stderr) => {
if (error) {
console.log(`error: ${error.message}`);
return;
}
if (stderr) {
console.log(`stderr: ${stderr}`);
return;
}
console.log(`stdout: ${stdout}`);
});
})
几年前我做了一个 UI 使用 7 英寸触摸屏连接到 Raspberry Pi 3.
我有一个数字按钮“关闭”,它可以完美地使用 Java 向 Raspberry 发送消息(参见下面的代码)。
try {
Runtime.getRuntime().exec("sudo shutdown -h now");
} catch (IOException e) {
e.printStackTrace();
}
现在我想使用 JavaScript 在网页上使用“关闭”按钮关闭 Raspberry Pi 3。所以我假设我需要授予 Web 服务器权限,然后将此消息 sudo shutdown -h now
发送到 Raspberry。有什么建议吗?
如果要使用服务器端JavaScript,则需要使用Node.js。
像这样:
var express = require('express')
var app = express()
const { exec } = require("child_process");
// when navigating to your http://<yourdomain>/shutdown
app.get('/shutdown', function (req, res) {
exec("sudo shutdown -h now", (error, stdout, stderr) => {
if (error) {
console.log(`error: ${error.message}`);
return;
}
if (stderr) {
console.log(`stderr: ${stderr}`);
return;
}
console.log(`stdout: ${stdout}`);
});
})