我需要做什么才能让我的 Raspberry Pi 托管一个带有刻度盘的网页,实时显示 CPU 温度、CPU 负载等?

我需要做什么才能让我的 Raspberry Pi 托管一个带有刻度盘的网页,实时显示 CPU 温度、CPU 负载等?

我擅长 Unix 命令和脚本,但几乎没有网络经验。我有一个脚本,可以抓取我感兴趣的指标,例如 CPU 负载或系统温度,并每 10 秒更新一次文件。我想将我的 iPad 指向由我的 Raspberry Pi 托管的本地网站,该网站有实时更新的这些数据图形表示。

我以前曾设置过一个简单的 Apache Web 服务器,并且我会编写 HTML 和 JavaScript。除此之外,我还很迷茫,需要有人给我指明正确的方向。

答案1

我用格拉法纳流入数据库在我的 Raspberry Pi 3 上。它们都相对容易设置和连接。它们甚至可以很好地工作在DockerRaspberry Pi 上的容器。

我将所有更新在生成后传输到 InfluxDB。然后 Grafana 完成所有图形工作,以美观的视觉格式显示它们。我为屏幕较小的旧 iPad 设计了一个简单的仪表板。

听起来确实需要很多安装和开销,但它确实看起来很漂亮。

在此处输入图片描述

答案2

为了拥有一个轻量级且非常容易的 Web 监控仪表板来设置(和扩展)Raspberry 上的监控页面,您需要RPi 监控器

它带有一些默认设置,配置主要是编辑几个简单的文本文件。我轻松地配置了它以添加来自 DTH21 的湿度图。

img_link img_link2

答案3

对于网络上的实时应用来说,最好的工具是WebSocket。通常这些是在应用程序服务器中实现的,而不是在 Web 服务器中,但 Apache 提供了一种代理 websockets 的方法。这可以轻松提供每秒或亚秒级的更新。

您在应用程序服务器上使用哪个库取决于您想要使用的 Web 平台,例如,Node.js 的一个流行库是 Socket.IO。

在客户端,您可以像这样建立连接:

socket = new WebSocket("ws://website.net:8282");

socket.addEventListener('message', function (event) {
    var message = event.data;
    // Code to update site
});

在服务器端使用 Node.js 的基本 WebSocket 库:

const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8282 });
wss.on('connection', function connection(ws) {
  dataOnUpdateEvent(function(event) {
    var data = event.getdata();
    var message = parseData(data);
    ws.send(message);
  });
});

答案4

我用php系统信息监控我的所有 Linux 服务器/计算机,我真的很喜欢它的简单性。设置也非常容易理解,你可以设置自己的刷新率。

相关内容