Gute Toolsets für Data Logging & Darstellung mit PHP und SQL

xavor

Enthusiast
Thread Starter
Mitglied seit
05.12.2010
Beiträge
144
Ort
NRW
Hallo zusammen,

Ich suche ein paar Stubser in die richtige Richtung bezüglich Google Begriffe:

Ich habe eine Sensoren in meiner Bude (Temperatur & Co), welche die Daten über WLAN bisher an einen Raspberry Pi senden.
Dort nimmt ein Python Script die Daten an und aktualisiert eine Grafik, die ich auf einer einfachen Webseite intern bereitstelle.

Nun will ich das extern verfügbar machen.
Der Plan ist, das Traffic nur raus fließt, die Sensoren also nicht von außen sichtbar sind.
Dazu rufen sie jede Minute eine Webseite auf, welche die Daten in eine MySQL DB einträgt. Das funktioniert auch.

Nun möchte ich die Daten möglichst schön, dynamisch und natürlich responsive darstellen, man tut sich ja sonst nix an.
Hat jemand da eine Empfehlung für mich? Also Google Begriffe, damit ich die passenden Libs finde (oder wie man das im Web-Bereich nennt).

Im Idealfall natürlich in C/C++/Python, aber das is ja im Web eher unbeliebt :P

Gruß, Olli
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Python ist doch nicht unbeliebt? Mit C/C++ baut man freilich keine Webseiten.

Verstehe ich das richtig? Du baust mit deinem Raspberry die Daten zusammen und schreibst die damit in die Datenbank?

Dann bräuchtest du einen Webserver der

1. Die Daten aus der Datenbank liest
2. sie erneut liest wenn es Aktualisierungen gibt
3. den eventuell geöffneten Browser über die Änderungen informiert

Bevor ich weiter quassel, habe ich das so richtig verstanden? :)
 
Ich kann auch mit einem Löffel die Grube zum Bau eines Hochhauses ausheben.

Das ist wohl mit Abstand die beste Begründung überhaupt!

Edit: Vielleicht zum Präzisieren was scrollt meint:

Code:
return filter_input(INPUT_POST, 'search', FILTER_SANITIZE_STRING);

Das ist alles PHP-Code, um einen einfachen Suchstring aus dem Payload zu holen und ausreichend zu escapen. Ich würde einfach mal behaupten, dass das mit purem C(++) mehr als 100 Zeilen Code wären und das Ding trotzdem unsicher ist.
 
Zuletzt bearbeitet:
ich kenn leute die haben nen CMS in Haskell geschrieben XD

ich weiß ja nicht, wie viel Daten da dargestellt werden sollen, aber nen kleines PHP script, dass dir die Daten aus der Datenbank holt und ein bischen html drumrumschreibt und das echot dürfte sich fix zusammenwerfen lassen.
 
Ui, da kam ja schon ne Menge input und ich bekomme es nicht mit.

Erstmal fragen beantworten:

Verstehe ich das richtig? Du baust mit deinem Raspberry die Daten zusammen und schreibst die damit in die Datenbank?

Nicht ganz. Ein ESP8266 nimmt die Daten auf, sendet sie an einen Pi. Dort nimmt python sie an, merkt sie sich, und macht aus den letzten 24h einen Graph als png, auf den ich per Netzwerk zugreife. Also alles recht statisch und die Werte werden nur im RAM des Pi gespeichert. Das funktionierte als Proof of Concept, jetzt soll es "besser" werden.

Dann bräuchtest du einen Webserver der

1. Die Daten aus der Datenbank liest
2. sie erneut liest wenn es Aktualisierungen gibt
3. den eventuell geöffneten Browser über die Änderungen informiert

Bevor ich weiter quassel, habe ich das so richtig verstanden? :)
So aufwendig soll es garnicht werden. Aktuell plane ich es so:
ESP8266 ruft eine Webseite auf mit Parameter (Temperatur) und einem "Magic Number". Die Webseite/php-Seite schreibt dann den Parameter incl. Timestamp des Servers in eine DB. Webserver mit PHP/MySQL hab ich, bisher aber nur für Wordpress und ein Wiki.
So wird als Verbindung nur ein GET bearbeitet, die Parameter sind nur zwei Integerwerte und sanitizing sollte einfach sein.

An zweiter Stelle kann ich dann den Graph (in welcher Form auch immer) vom Webserver abrufen. Da sollte dann vielleicht ein bisschen Scrollen in den Daten usw möglich sein.

Schau dir Graphite an und dazu z.B. collectd oder InfluxDB, Grafana, uvm.: https://graphite.readthedocs.io/en/latest/tools.html

Das meiste davon ist in Python, das ist im Web nämlich ziemlich beliebt heutzutage.

Vielen Dank, dass sieht schon interessant aus.
Python ist für mich immer für das gewesen, was ich zum C/C++ Coden brauche ;)

Zu der C/C++ Diskussion:
Ich arbeite als SW-Entwickler für Embedded Applikationen (auf bare Metal, also kein Linux Unterbau oder so). C/C++ ist sehr mächtig und vieles geht dank STL und Co. doch recht flott.
Aber wenn Performance zweitrangig ist und Python oder andere, "höhere" Programmiersprachen zur Verfügung stehen, ist C oft der (sehr) lange Weg.

Gruss, Olli
 
Ah, ok.

dann brauchst du ein schmales Framework. Mit Python kenne ich mich nicht aus, aber bei PHP würde ich wohl auf Laravel zurückgreifen. Laravel ist sehr mächtig und kann sicher mehr als du brauchst, aber wer weiss schon was du noch so machst :)

Wichtig ist, es kommt mit:

- Routing
- ORM
- Templates etc.

https://laravel.com/

Ist super dokumentiert und wird bei uns sehr oft eingesetzt.



Ansonsten für das Frontend Bootstrap rauf und fertig.

VG
 
Für die Grafiken schau dir mal Gnuplot an.

Für eine schicke, funktionale Oberfläche wirst Du an JavaScript und jQuery nicht herumkommen. Libraries gibt es da ohne Ende, z. B. für Tabellen

Achtung, wenn Javascript für dich neu ist: lch bin auch erst unlängst eingestiegen und bis man die Prototyp-Vererbung begriffen hat, braucht es schon ein bisschen. Ist ein anderes Konzept als bei C++, Java und Co.
ALLES ist dynamisch, auch die Methoden und Klassen (die es gar nicht gibt, sondern durch Prototypen ersetzt sind). Ein interessantes und leistungsfähiges Konzept, das bei größeren Projekten aber Verständnis und Disziplin erfordert, damit man nicht allerschlimmsten, unwartbaren Code erzeugt.
Ich will dich damit nicht abschrecken, für ein paar hundert Zeilen für eine aufgemotzte Webseite ist es harmlos. Die kann man auch ganz einfach funktional programmieren, wenn man will.
 
Zuletzt bearbeitet:
Das Javascript-Chaos bekämpft man am besten mit einem Linter (eslint ist da meine Wahl), Projektweit geltenden Codestyles und in der Tat Disziplin. Dann hat man eine fantastische Programmiersprache, mit der man unfassbar viel erreichen kann, und das mit extrem geringer Einstiegshürde.

Mit ES2015 (und einem preprocessor wie babel) bekommt man dann sogar Klassen, auch wenn die nur Syntax-sugar sind, und mit Klassen anderer Programmiersprachen wie Java nix zu tun haben.

Wirklich oft brauchen tut man die natürlich nicht, zumal Vererbung jetzt auch nicht gerade die Komplexität einer Applikation verringert.
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh