Raspberry Sensorwerte effizient erfassen

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hey Leute,

    ich nutze mein Raspberry pi zum Auslesen von Temperatur, Feuchtigkeit und Vibration. Hab auf einem Steckbrett jeweils 3 verschiedene Sensoren, die über den I2C und 1-Wire Bus ausgelesen werden.

    Für die Ansteuerung habe ich zunächst drei verschiedene Python-Codes geschrieben. Die Werte werden in die Datenbank Influxdb und über Grafana nahezu in Echtzeit dargestellt. Habs nun auch schon so weit, dass meine Dienste automatisch beim Hochfahren gestartet werden und und und....

    Nun meine große Frage. Ich bin gerade am rumprobieren, wie ich am besten die Performance des Rpi's verbessern kann. Ich glaub Performance beschreibt es nicht genau genug. Mein Rpi erreicht beim Betrieb über 60° C und ich wollte euch fragen ob es generell besser ist, nur eine Datei zu haben, wo mein Programm durchlaufen wird ?! Zur Zeit läuft mein Rpi mit zwei .py Dateien. Einem wo meine zwei Sensoren über den I2C Bus angesprochen werden und einer .py Datei wo der andere Sensor mit dem 1-Wire Bus angesprochen wird. Hat jemand vielleicht sogar die gleiche Erfahrung gemacht und kann mir einen guten Rat geben ?

    Danke vorab für eure Meinungen :thumbs1:

  • Hallo PrimeSonic,
    bevor ich hier große Optimierungen ausführen würde, hätte ich mir mal angeschaut, wie viel Auslastung die Skripte denn erzeugen. (htop, oder top in der Konsole helfen)
    Läuft auf dem Pi noch eine Oberfläche?
    Wie viele Werte nimmst du auf? 1Wert/Sekunde?
    Gruß
    Chris

  • Hey ho,

    hab kurz nachgeguckt. Also die höchste Auslastung habe ich beim Browser, wenn ich darüber mir das Dashboard von grafana angucke. Wenn du mit Oberfläche weitere Dienste etc meinst, dann nein. Es läuft nur ein Dienst für die Datenbank im Hintergrund.

    Und ja, die Daten werden pro Sekunde ausgelesen und alle 5s aktualisiert.

    15% werden immer um den Dreh für den Browser verwendet.

  • Hii,
    mit Oberfläche meinte ich die Oberfläche vom Betriebssystem, also das, was erscheint, wenn du am Pi nen Monitor einsteckst. Wenn das nur ne Konsole ist, ist keine Oberfläche gestartet, wenn aber eine grafische Oberfläche erscheint, ist das definitiv ein unnötiger Overhead.

    Die 15% bei einem Zugriff über den Browser wirst du nicht verringert bekommen. Was hast du sonst, ohne Zugriff über den Browser? Wenn du da bei wenigen Prozent bist, wirst du am Programm wenig optimieren können.

    Hast du eigentlich einen Kühlkörper auf dem Pi?
    Gruß
    Chris

  • Servus PrimeSonic,


    ...
    Und ja, die Daten werden pro Sekunde ausgelesen und alle 5s aktualisiert.
    ...

    das kann durchaus auch mit Deinen Leseroutinen zusammenhängen. Wenn die, wenn auch nur kurzfristig, in eine Schleife ohne Pause zwecks polling laufen, dann haut das schon ganz schön rein.

    Abgesehen davon: jede Sekunde die Temperatur auszulesen halte ich für absoluten Mumpitz ...
    Ich vermute mal, Du verwendest die Dallas-Teile. Dann bist Du mit 1 Sekunde schon relativ nah am Grenzwert, den der Sensor schafft, wenn ich evtl. Latenzzeiten des RPi mit einbeziehe ...
    Ausserdem behaupte ich jetzt mal, dass die Sensoren für ein 1-Sekunden-Intervall zu träge sind, so dass Schwankungen evtl. nur die Messtoleranz widerspiegeln.
    Schliesslich ... was soll sich da in 1 Sekunde groß ändern, wenn der Sensor nicht gerade auf einer Heizplatte liegt?
    Nur weil man es kann ... ist irgendwie kein Argument ...
    Man kann sich auch nen Knopf an die Backe nähen ... macht auch keiner ;)

    Aber sei's drum,
    -ds-

  • Achsooo, ja also ich hab' Raspbian installiert. Nutze es auch für andere Dinge.

    Sonst läuft auch nichts weiter dramatisch aufwendiges. Einmal die zwei .py Scripte mit jeweils 1,6 % und sonst der influxdb server mit 1%...

    Einen Kühlkörper habe ich nicht drauf, nein. Wäre es in meinem Fall sinnvoll ?

  • Ähm.. du hast also nen Rasbian.
    Also Läuft nen LXDE und nen Browser (Firefox?).
    Damit hast du schon mal mindestens 50% deiner Auslastung. Erstrecht wenn ich bedenke, dass der Brwoser alle 5sec neue requests macht.

  • Wenn es also darum geht die Last zu reduzieren, würde ich die Oberfläche abschalten und nur von einem anderen PC aus auf den RaspberryPi zugreifen, damit spart sich der Pi viel Leistung, die für die Oberfläche drauf gehen.

  • Okay, und kann ich dann von dem anderen PC aus ganz normal mein Grafana benutzen ? Klingt für mich nach einer virtuellen Maschine dann, wäre ja echt cool, wenn ich dann von überall darauf zugreifen kann um zu sehen wie sich eine Temperatur entwickelt... :)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!