Raspberry Piで、CPU温度、CPU負荷などをリアルタイムで示すダイヤルを含むWebページをホストするには、何をする必要がありますか?


27

私はUnixコマンドとスクリプトには長けていますが、Webの経験はほとんどありません。CPU負荷やシステムの温度など、興味のあるメトリックを取得し、10秒ごとにファイルを更新するスクリプトがあります。Raspberry PiがホストするローカルWebサイトにiPadを向けたいと思います。RaspberryPiは、このデータをリアルタイムで更新するグラフィカルな表現を持っています。

私は単純なApache Webサーバーをセットアップする前に働いたことがあり、HTMLとJavaScriptを書くことができます。それに加えて、私は行方不明になっており、誰かが正しい方向に私を向ける必要があります。


2
あなたの質問は少し広すぎます。迅速で汚れたソリューションが必要ですか、それとも小さなLinux組み込みシステムにも適合する最小限のプログラムをコーディングしたいですか?
バジルスタリンケビッチ

私は当初、手早く汚れたものを探していましたが、以下で説明する非常に優れたツールが利用できるようになったことで、私はより興味を持ちました。
jake9115

参考までに、Raspberry Piスタックもあります:raspberrypi.stackexchange.com
トッドウィルコックス

github.com/firehol/netdataのセットアップは非常に簡単です。けれどもパイの上にそれをテストしていない
デアHochstapler

回答:


30

Raspberry Pi 3でGrafanaInfluxDBを使用します。どちらも比較的簡単にセットアップでき、相互に接続できます。Raspberry PiのDockerコンテナでもうまく機能します。

すべての更新は、生成時にInfluxDBにストリーミングします。その後、Grafanaはそれらをすてきな視覚形式で表示するグラフィカルな作業をすべて行います。古いiPadの画面が小さいため、シンプルなダッシュボードを設計しました。

それは多くのインストールとオーバーヘッドのように聞こえますが、確かにきれいに見えます。

ここに画像の説明を入力してください


とてもかっこいい。Grafanaモニターのスクリーンショットはありますか?ちょっと興味があるんだけど。
jake9115

うん。あまり意味をなさないかもしれませんが、これは物事のミッシュマッシュです。私のコンピューターでスナップされたので、iPadで見られるサイズになっていません。
0xACE

素晴らしく見える、私のセットアップを待つことができない!これに最適な16ノードのオレンジ色のpiサーバーがあります。再度、感謝します。
jake9115

(トピック外)複数のコアを備えた単一のボードのように見えるものにPiを結合することに関する他の質問を見ました。私が勤めている大学のHPCの人がシステムをセットアップしていたが、あなたが探していたものを実行しない「グリッドエンジンの息子」を使用していたことを思い出しました。
0xACE

1
@ 0xACE piで考えると、リクエストでApacheサーバーにもスパムを送信するのはかなり悪い考えです。また、10代は質問者の現在の設定を指しますが、より速いものが必要です。
jdwolf

9

Raspberryの監視ページをセットアップ(および拡張)するための軽量で非常に簡単なWeb監視ダッシュボードを使用するには、RPi Monitorを使用します。

いくつかのデフォルトがあり、設定はほとんどいくつかのシンプルなテキストファイルを編集しています。DTH21から湿度グラフを追加するように簡単に構成しました。

img_link img_link2


2
私は貢献に感謝します。これは非常に軽量で、おそらくここでより複雑なソリューションのセットアップを学んでいる間、素晴らしいグラフ作成の選択肢のようです。ありがとう!
jake9115

どういたしまして。自宅で3年近く使っています。関連する質問をご覧くださいelectronics.stackexchange.com/questions/236530/...
ルイFリベイロ

6

Web上のリアルタイムアプリケーションの場合、最適なツールはWebSocketです。通常、これらはWebサーバーではなくアプリケーションサーバーに実装されますが、ApacheはWebソケットをプロキシする方法を提供します。これにより、1秒あたりまたは1秒未満の更新を簡単に提供できます。

アプリケーションサーバーで使用するライブラリは、使用する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
});

基本的なWebSocketライブラリを使用するNode.jsを使用したサーバー側:

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

1
アイデアをありがとう。これは非常に便利ですが、多くの基礎のように見え、理解できます。
jake9115

2
@ jake9115ええ、あなたの質問は、このアプリケーションを自分で作成することに興味があることを示唆しているようです。
jdwolf

2
正直なところ、私は本当に自分でコーディングすることを目指していましたが、そのグラファナは非常に滑らかなので、この車輪の再発明をしたくありません。でもありがとう!
jake9115

4

Node-RED https://nodered.orgもご覧ください。Raspbian に付属しています

これが私が作成したダッシュボードです ここに画像の説明を入力してください


貢献していただきありがとうございます。
jake9115

1
セットアップでNode-Redを使用しますが、履歴データはインスタンスが実行されている間のみ有効です。つまり、履歴の測定値がどれも保持されずに再展開する(または電力を失う)と、チャートはすべてゼロからやり直されます。この機能は、実際にInfluxDBへのログインを開始するきっかけとなりました。
0xACE

ああ、知ってうれしい。履歴データは私にとって重要です。私はあなたのグラフがビットコイン価格のような他のウェブベースの情報をどのように組み込むかを本当に気に入っています。それは私の当初の範囲を超えていましたが、もはやそうではありませんでした。
jake9115

はい、この例では、iOS App Storeにあるアプリ(良いターンをしているボーイスカウト向け)のデータも含めて、そのデータをgoogle fire baseに保存しています。それが一番下の地図です。ノード赤を使用して、火の基地からデータを引き出し、流入にプッシュします。したがって、すべての流入とグラフィナではありません。
0xACE

2

私はphpSysInfoを使用してすべてのLinuxサーバー/コンピューターを監視しますが、そのシンプルさがとても気に入っています。設定も非常にわかりやすく、独自のリフレッシュレートを設定できます。


1

CまたはC ++でコーディングする場合は、libonionWtなどのHTTPサーバーライブラリを使用して、特殊なHTTPサーバーをコーディングします(データベースにsqliteを使用するなど)。その後、HTTPプロトコル(HTTP CookieおよびHTTPヘッダーを含む)およびHTML5を十分に理解する必要があります

AjaxおよびWebSocketテクニックを使用することもできます(WebSocketはlibonion&Wtでサポートされています。Ajaxは、クライアントブラウザーで実行されるJavaScriptコードによって開始される通常のHTTP要求を提供します)。グラフィックスにはHTML5 キャンバスSVGを使用できます。いくつかのHTML5 Webフレームワークが 役立つことがあります。それらのほとんどはJavascript、DOM、HTML5などを使用しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.