it-swarm.com.de

Was muss ich tun, damit mein Raspberry Pi Host in Echtzeit eine Webseite mit Einstellrädern für die CPU-Temperatur, die CPU-Auslastung usw. erstellt?

Ich bin gut mit Unix-Befehlen und Skripten, aber ich habe fast keine Web-Erfahrung. Ich habe ein Skript, das die Metriken erfasst, an denen ich interessiert bin, z. B. die CPU-Auslastung oder die Systemtemperatur, und alle 10 Sekunden eine Datei aktualisiert. Ich möchte mein iPad auf eine lokale Website verweisen, die von meinem Raspberry Pi gehostet wird und deren grafische Darstellung in Echtzeit aktualisiert wird.

Ich habe vor dem Einrichten eines einfachen Apache-Webservers gearbeitet und kann HTML und JavaScript schreiben. Außerdem bin ich verloren und brauche jemanden, der mich in die richtige Richtung weist.

28
jake9115

Ich benutze Grafana mit InfluxDB dafür auf meinem Raspberry Pi 3. Sie sind beide relativ einfach einzurichten und miteinander zu verbinden. Sie funktionieren sogar gut in Docker Containern auf dem Raspberry Pi.

Ich streame alle meine Updates in InfluxDB, sobald sie generiert werden. Dann erledigt Grafana die gesamte grafische Arbeit, um sie in einem schönen visuellen Format anzuzeigen. Ich habe ein einfaches Dashboard nur für mein altes iPad mit seinem kleineren Bildschirm entworfen.

Es klingt nach viel Installation und Overhead, sieht aber auf jeden Fall hübsch aus.

Enter image description here

31
0xACE

Für ein leichtes und sehr einfaches Web-Überwachungs-Dashboard zum Einrichten (und Erweitern) der Überwachungsseite auf Ihrem Raspberry steht Ihnen ein RPi-Monitor zur Verfügung.

Es enthält einige Standardeinstellungen und die Konfiguration bearbeitet hauptsächlich einige einfache Textdateien. Ich habe es einfach konfiguriert, um Feuchtigkeitsgraphen von einem DTH21 hinzuzufügen.

img_linkimg_link2

10
Rui F Ribeiro

Für Echtzeitanwendungen im Web ist das beste Tool WebSocket . In der Regel werden diese auf dem Anwendungsserver implementiert, nicht auf dem Webserver. Apache bietet jedoch eine Möglichkeit, Websockets zu vertreten. Dies kann leicht Aktualisierungen pro Sekunde oder in einem Teil der Sekunde zur Verfügung stellen.

Welche Bibliothek Sie auf dem Anwendungsserver verwenden, hängt von der gewünschten Webplattform ab. Eine beliebte Bibliothek für Node.js ist beispielsweise Socket.IO.

Auf der Clientseite können Sie eine Verbindung wie folgt einrichten:

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

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

Auf der Serverseite mit Node.js unter Verwendung der grundlegenden WebSocket-Bibliothek:

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);
  });
});
7
jdwolf

Sie können sich auch Node-RED https://nodered.org ansehen. Raspbian ist ab Lager erhältlich

Hier ist ein Dashboard, das ich erstellt habe enter image description here

5
jwygralak67

Ich verwende phpSysInfo , um alle meine Linux-Server/-Computer zu überwachen, und ich mag es wirklich, wie einfach es ist. Die Einstellungen sind auch sehr einfach zu verstehen und Sie können Ihre eigene Bildwiederholfrequenz einstellen.

2
McMuffin

Wenn Sie in C oder C++ codieren möchten, können Sie eine HTTP-Serverbibliothek wie libonion oder Wt verwenden, um Ihr spezialisiertes HTTP zu codieren Server (vielleicht mit sqlite für die Datenbank). Dann sollten Sie das Protokoll HTTP (einschließlich HTTP-Cookies und HTTP-Header ) und HTML5 .

Möglicherweise möchten Sie Ajax - und WebSocket -Techniken verwenden. (WebSockets werden von libonion & Wt unterstützt. Ajax gibt normale HTTP-Anforderungen aus, die von JavaScript initiiert werden Code, der im Client-Browser ausgeführt wird). Sie können HTML5 canvas und/oder SVG für Grafiken verwenden. Möglicherweise finden Sie einige nützliche HTML5-Webframeworks . die meisten von ihnen benutzen Javascript, DOM, HTML5, ....