Raspberry Pi'imin gerçek zamanlı olarak CPU sıcaklığını, CPU yükünü, vb.


27

Unix komutları ve komut dosyaları konusunda iyiyim, ancak neredeyse hiçbir web deneyimim yok. CPU yükü veya sistem sıcaklığı gibi ilgilendiğim ölçümleri alan ve her 10 saniyede bir dosyayı güncelleyen bir komut dosyası var. İPad'imi Raspberry Pi'm tarafından barındırılan yerel bir web sitesine yönlendirmek istiyorum. Bu verilerin gerçek zamanlı güncellenmesi.

Basit bir Apache web sunucusu kurmadan önce çalıştım ve HTML ve JavaScript yazabiliyorum. Bunun yanında, beni kaybettim ve beni doğru yöne yönlendirecek birine ihtiyacım var.


2
Sorunuz biraz fazla geniş. Hızlı ve kirli bir çözüm mü istiyorsunuz, yoksa küçük Linux gömülü sistemlerine bile uyan minimal bir programı mı kodlamak istiyorsunuz?
Basile Starynkevitch,

Başlangıçta hızlı ve kirli bir şey arıyordum, ancak aşağıda belirtilen çok güzel araçların mevcudiyeti beni daha fazla ilgilendirdi.
jake9115,

Bilginize Ahududu Pi Yığını da var: raspberrypi.stackexchange.com
Todd Wilcox

github.com/firehol/netdata kurulumu çok kolaydır. Yine de bir Pi üzerinde test
etmedim

Yanıtlar:


30

Kullandığım Grafana ile InfluxDB Birbirlerine hem nispeten kolay kurulumu ve bağlantı vardır benim Ahududu Pi 3. bunun için. Ahududu Pi'deki Docker kaplarında bile iyi çalışıyorlar .

Tüm güncellemelerimi oluşturuldukları sırada InfluxDB'ye aktarıyorum. Sonra Grafana, onları görsel bir biçimde sergilemek için tüm grafiksel çalışmaları yapar. Sadece eski iPad'im için daha küçük ekranı olan basit bir gösterge paneli tasarladım.

Bir sürü kurulum ve ek yüke benziyor, ancak kesinlikle güzel gözüküyor.

Resim tanımını buraya girin


Çok havalı. Grafana monitörlerinizin ekran görüntülerine sahip misiniz? Sadece merak.
jake9115,

Evet. Çok mantıklı gelmeyebilir, bu bir şeylerin karmasıdır. Bilgisayarıma takıldı, iPad'de göründüğü kadar büyük değil.
27'de

Müthiş görünüyor, benimkini kurmak için sabırsızlanıyorum! Bunun için mükemmel olacak bir 16 düğüm turuncu pi sunucum var. Tekrar teşekkürler.
jake9115,

(konu dışı) Pi'lerinizi birden fazla çekirdekli tek bir tahta gibi görünen bir şeye birleştirmeye ilişkin diğer sorunuzu gördüm. Çalıştığım kolejdeki HPC adamının bir sistem kurduğunu ama aradığınızı yapmayan "ızgara motorunun oğlu" kullandığını hatırlamak üzereydi.
0'da 6

1
@ 0xACE Bir pi üzerinde göz önüne alındığında apache sunucusunu da isteklerle spam yapmak oldukça kötü bir fikirdir. Ayrıca 10'lar, istemcilerin güncel kurulumuna karşılık gelirken, daha hızlı bir şeyler istiyorlar.
jdwolf

9

Ahududu üzerinde izleme sayfasını ayarlamak (ve genişletmek) için hafif ve çok kolay bir web izleme panosuna sahip olmak için RPi Monitörü var .

Bazı varsayılanlarla birlikte gelir ve yapılandırma çoğunlukla birkaç basit metin dosyasını düzenler. DTH21'den nem grafikleri eklemek için kolayca yapılandırdım.

img_link img_link2


2
Katkısını takdir ediyorum; Bu, daha hafif ve belki de hoş bir grafik seçimi gibi gözüküyor, burada daha fazla ilgili çözümü ayarlamayı öğreniyorum. Teşekkürler!
jake9115,

Rica ederim. Evde yaklaşık 3 yıl kullandım. İlgili soruya bakın electronics.stackexchange.com/questions/236530/…
Rui F Ribeiro

6

Web'deki gerçek zamanlı uygulamalar için en iyi araç WebSocket'tır . Genellikle bunlar uygulama sunucusunda uygulanır, web sunucusunda değil, Apache web soketlerini proxy'ye almanın bir yolunu sağlar. Bu, saniye başına veya daha sonraki güncellemeleri kolayca sağlayabilir.

Uygulama sunucusunda kullanmakta olduğunuz kütüphane, kullanmak istediğiniz web platformuna bağlıdır, ancak örneğin Node.js için popüler olan Socket.IO'dur.

İstemci tarafında şöyle bir bağlantı kurabilirsiniz:

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

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

Temel WebSocket kütüphanesini kullanarak Node.js ile sunucu tarafında:

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
Fikir için teşekkürler. Bu çok kullanışlıdır, ancak anlaşılabilir olan bir çok temel çalışmasına benzemektedir.
jake9115,

2
@ jake9115 Heh peki sorunuz bu uygulamayı kendiniz yapmakla ilgilendiğinizi gösteriyor gibi görünüyordu.
jdwolf

2
Dürüst olmak gerekirse, gerçekten kendim kodlamayı amaçlıyordum, ancak grafana öyle kaygan görünüyor ki, buradaki tekerleği yeniden icat etmek istemem. Yine de teşekkürler!
jake9115,

4

Ayrıca Node-RED https://nodered.org sitesine de bakabilirsiniz . Raspbian'da hisse senedi geliyor

İşte oluşturduğum bir gösterge paneli görüntü tanımını buraya girin


Buna bakacağım, katkı için teşekkürler.
jake9115,

1
Kurulumumda Node-Red kullanıyorum, ancak geçmiş veriler yalnızca örneğiniz çalıştığı sürece geçerlidir. Diğer bir deyişle, yeniden konuşlandırırsanız (veya güç kaybederseniz) geçmiş ölçümlerin hiçbiri saklanmaz, çizelgeleriniz hiçbir şeyden baştan başlar. Bu özellik, aslında InfluxDB’de oturum açmaya başlamamı sağlayan şeydi.
17

Ah, bilmek güzel. Tarihsel veriler benim için önemlidir. Grafiklerinizin bitcoin fiyatları gibi diğer web tabanlı bilgileri de dahil etmesini seviyorum. Bu benim başlangıç ​​kapsamımın ötesindeydi, ama artık değil.
jake9115,

Evet, bu örnekte, iOS App Store'da (iyi izler yapan İzciler için) sahip olduğum bir uygulamanın verilerini google fire base içine depolayan verileri bile ekliyorum. Bu alttaki harita. Verileri ateş tabanından çekmek ve akının içine itmek için kırmızı düğümü kullanıyorum, bu yüzden hepsi akını ve grafana değil.
17'de

2

Bütün Linux sunucularımı / bilgisayarlarımı izlemek için phpSysInfo kullanıyorum ve bunun ne kadar basit olduğunu seviyorum. Ayarların anlaşılması da çok kolaydır ve kendi yenileme hızınızı belirleyebilirsiniz.


1

C veya C ++ ile kodlamak istiyorsanız, özelleştirilmiş HTTP sunucunuzu kodlamak için libonion veya Wt gibi bazı HTTP sunucu kütüphanelerini kullanabilirsiniz (belki veritabanı için sqlite kullanarak ). Daha sonra iyi anlamanız gerekir HTTP protokolü ( HTTP çerezleri ve HTTP başlıkları dahil ) ve HTML5 .

Ajax ve WebSocket tekniklerini kullanmak isteyebilirsiniz (WebSockets libonion ve Wt tarafından desteklenir, Ajax, istemci tarayıcısında çalışan JavaScript kodu tarafından başlatılan sıradan HTTP istekleri verir). HTML5 kanvasını ve / veya SVG'yi grafikler için kullanabilirsiniz. Bazı HTML5 web çerçevelerini yararlı bulabilirsiniz ; birçoğu Javascript, DOM, HTML5, .... kullanıyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.