【问题标题】:Control raspberry pi via website in React.js?通过 React.js 中的网站控制树莓派?
【发布时间】:2016-12-21 20:46:00
【问题描述】:

我已经编写了一个 nodejs 应用程序并将它放在我的树莓派上。这都很好。但是,我现在想通过 React 中内置的 Web 浏览器界面/网站来控制我的 nodejs 应用程序。我该怎么做?该网站将在互联网上,但需要以某种方式访问​​我的树莓派计算机并在那里修改内容。

【问题讨论】:

  • 最常用的方法可能是使用 Socket.IO 库。

标签: node.js reactjs raspberry-pi raspbian


【解决方案1】:

我认为有两种方法:

  • 也将您的 raspberry pi 用作 Web 服务器:例如安装 Nginx/Apache(它们是 Web 服务器)并将您的 React 应用程序提供给他们。
  • 使用外部托管,例如 OVH,并将您的 React 应用程序也提供给他们。

我不知道你是否知道如何做一个 React 网站,但是网上有很多教程,比如 this one

这里的目标是在您的 NodeJS 应用程序和您的网站之间创建 API 关系。 NodeJS 服务器必须监听端口(例如 8080)和对应于命令的特定 URL(例如 /api/reboot 将重新启动应用程序)。在您的网站中,您只需在按下按钮后调用这些 URL(例如,“重启”按钮将向 http://raspberrypi:8080/api/reboot 发送 POST 请求)。

基本上,将您想通过 NodeJS 应用程序执行的每个命令链接到一个 url,然后在您的网站中将其链接到一个操作。

如果您想确保传输安全(这样没人可以重新启动您的应用程序),只需包含一些密码和 HTTPS :)

再见!

【讨论】:

    【解决方案2】:

    这里是链接:MyExample

    还建议添加模块子进程以使用如下执行命令:

    var exec = require('child_process').exec;
    
    execute('sudo reboot'); use this when receiving socket  
    
    
    function execute(command) {
        var cmd = exec(command, function(error, stdout, stderr){
            console.log("error: ", error);
        });
    }
    

    有了这个,你可以用“终端”(文本持有者)制作客户端,点击按钮,客户端会在文本持有者中使用你的命令向 RPI 发送信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多