Sensormeßwerte am PC grafisch darstellen?

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • Sensormeßwerte am PC grafisch darstellen?

      Hallo Leute!

      Derzeit suche ich mir nen Wolf und finde irgendwie nur unpassenden Müll im Web.

      Es geht um eine reihe von Umweltsensoren (Temeratur, relative Luftfeuchte über CC2D sowie Luftdruck über MPL3115) die im Minutentakt Datenpäckchen erzeugen.
      Insgesamt irdendwas zwischen mindestens 6 bis 10 solcher Sensoren.

      An einem Empfänger sollen die Meßwerte aller Sensoren angezeigt werden. Nicht nur die aktuellen Werte in Textform, sondern auch als Diagramm mit den Meßwertverläufen über gut eine Woche.
      Da ich dort aber die hochauflösenden Rohdaten (12-20Bit Flieskomma) nicht für eine komplette Woche auf's LCD bekomme, muss ich da freilich massiv skalieren und runden.

      Hier geht es aber um einen anderen Kern:
      Die unverfälschten Rohpakete zu aktuell 19Bytes je Sensor und Minute sollen möglichst praktisch an einem PC dargestellt werden.

      Via RS232 raus und manuell über Hterm speichern als CSV geht bereits. Manuell in ein Diagramm in Word oder Openoffice geht auch.
      Mir schwebt aber was zeitgemäßes und automatisiertes vor.
      Sprich: Die Datenpakete sollen wahlweise via RS232 oder auch via Netzwerk/WLAN gesichert werden.
      Eine dynamische Seite sortiert die Daten und aktualisiert fortlaufend anständig skalierte Diagramme.

      Im alten Bascom-Forum gab es mal eine eigene Rubrik rund um den Net-I/O von Pollin, wo ich meinte damals mal soeinen Ansatz entdeckt zu haben:
      Ne schlichte lokale Webside die man im eigenen Netzwerk aufrufen konnte, und verschiedene Meßwerte mit mehreren x/y-Diagrammen ablesen konnte.
      Genau sowas wäre jetzt interessanter Lesestoff, finde ich aber weder hier noch anderswo was.
      Da müsste aber doch was gehen auf Basis HTML/PHP/HTML5, wahlweise über WLAN oder notfalls einem NET-I/O als kleiner LAN-Server. Nur wo findet man da was?

      Grüße

      Jürgen
    • Guten Abend
      Meister Hora,

      Lese gerade mit Freuden dieses Dokument.
      Wollte fragen ob man damit auch meinen Attiny4313 (Anzeige) Wetter Station auslesen und am PC sichtbar machen könnte.
      Eine RS232 hat das Kerlchen....obs mit dem Speicher dafür langt?

      hast du damit erfahrung? und könntes mir Ratschläge geben?
      hatte mir aus dem Bauch Heraus bei AMAZON mini RS 232 Module gekauft...Passen Prima in einen Sub-D Stecker...dann spare ich die Verdrahtung auf Der Prozessor Platine..?
      war meine Idee.

      Dank für deine Antwort!
      die einen Schönen Samstag...
      das ist meine Wetter Station....einiges an Schaltungen habe ich aus div. 64erExtra Heften da gab es ab und zu mal Was Brauchbares....
      Dateien
    • Hallo tschoeatsch!

      Ja, das wäre durchaus eine Möglichkeit, die notfalls gebastelt werden kann. Danke!

      Würde mich gerne auch in eine andere Thematik einlesen zu der ich nix finde...mal kurz gesponnen:
      Als zentralen Datensammler (statt einen PC über RS232) einen dickeren ATmega644 oder ATmega1284 mit AVR-DOS der mir die auflaufenden Daten sortiert speichert:
      Also für jeden Sensor (so um die 10 Stück) eine ASCII-Datei auf SD-Karte anlegen, und jedes 19Byte-Paket schön als ASCII formatiert als CSV in die passende Datei schreibt.

      Für die Anzeige der ganzen Daten inklusive Historie wäre es dann genial wenn ich da einfach einen ESP8266 dran hängen und einen abgespeckten Webserver mit auf den m644 oder m1284 stricken kann.
      Aufgabe des Webservers wäre es einzig eine htm/html deren grundgerüst mit auf der SD-Karte liegt mit den ganzen Variablen zu füllen und bereitstellen.

      Quasi das man mit einem beliebigen Browser (PC/Tablet/Smartphone) einfach nur die IP des ESP8266 im lokalen Netzwerk aufrufen braucht um alle Meßwerte und die Verläufe zu sehen.

      Alles Neuland für mich, zugegeben.
      Eine html oder was auch immer zu stricken die so aussieht wie ich mir das vorstelle wären ein anderes Problem. Vorrangig fehlt mir da grundlegendes zum Thema Webserver mit Bascom und ESP8266.

      Grüße

      Jürgen
    • DG7GJ schrieb:

      Netzwerk aufrufen braucht um alle Meßwerte und die Verläufe zu sehen.
      Die Meßwerte ist noch recht einfach ein Bild hochladen und dann die Werte an den vorgesehenen Positionen eintragen. Ähnlich wie hier: hjkonline.de/Bastelordner/solaronline.html. Bei den Verläufen müssten Graphiken erstellt werden??? Eine kaum praktikable Möglichkeit wäre ein Pixelbild hunderte Male an den richtigen Positionen einzufügen.
    • Hallo!

      Was die Vorschläge via RS232 angeht sind da durchaus interessante Tools empfohlen worden.
      Sowohl die Serialinstruments, aber auch der Vorschlag von Mandarin15 sind genial.

      Wenn man bedenkt das ich bislang immer manuell die Werte in eine OpenOffice-Tabelle schieben musste, um mir vernünftige Verläufe generrieren zu lassen.

      Allerdings wäre mir eine dynamische Webside auf einem minimalistischen AVR-Webserver deutlich lieber:
      Mittels AVR-DOS zu jedem Sensor eine Datei SensorID_Monat.csv auf einer SD-Karte ablegen, welche schubweise alle 1-10 Minuten aktualisiert wird.
      Dann eine Webside die immer dann gesendet wird wenn ein beliebiger Browser auf die IP des AVR-Webservers zugreift, und welche die CSV-Daten in einzelne Grafiken verpackt.
      Der AVR-Webserver braucht da nicht viel...wenn ein Browser abruft reicht das...soll schließlich nur in meinem WLAN verfügbar sein, nicht öffentlich im Web.

      Auf HTML-Ebene wäre z.B. Carts.js interessant, was dann z.B. so aussehen könnte:
      chartjs.org/samples/latest/charts/line/multi-axis.html

      Bliebe noch die Frage bezüglich AVR-Webserver:
      Habe mir gestern noch ein ESP8266- sowie ein W5100-Board bestellt um mich mit dem Thema Netzwerk mal experimentell auseinandersetzen zu können.
      Wirklich hilfreiche Informationen finde ich aber bislang kaum...:
      Der ESP8266 soll da nur via probitären AT-Protokoll über RS232 funktionieren, was mir etwas aufstößt.
      Und zum W5100 lese ich im msc-Forum das der eine SPI-SCK von 20MHz bräuchte? Das Datenblatt vom W5100 gibt aber auf dem ersten Blick keine Minimalgrenze für die SCK aus.

      Grüße

      Jürgen
    • DG7GJ schrieb:

      Auf HTML-Ebene wäre z.B. Carts.js interessant, was dann z.B. so aussehen könnte:
      Geht halt mit Javascript, das dein AVR auch mitliefern müsste. Schau dir mal den Quelltext an.
      Vielleicht kannst du die *.js Dateien woanders hin auslagern?

      DG7GJ schrieb:

      Dann eine Webside die immer dann gesendet wird wenn ein beliebiger Browser auf die IP des AVR-Webservers zugreift, und welche die CSV-Daten in einzelne Grafiken verpackt.
      Der AVR-Webserver braucht da nicht viel...wenn ein Browser abruft reicht das...soll schließlich nur in meinem WLAN verfügbar sein, nicht öffentlich im Web.
      So was hatten wir damals beim AVR-NETIO. Mittels SVG kannst du dynamische Grafiken erzeugen

      DG7GJ schrieb:

      Und zum W5100 lese ich im msc-Forum das der eine SPI-SCK von 20MHz bräuchte? Das Datenblatt vom W5100 gibt aber auf dem ersten Blick keine Minimalgrenze für die SCK aus.
      SPI ist ein synchroner Bus und hat dadurch keine Grenze nach unten.
      Aber je schneller der Bus läuft, desto schneller sind die Daten im Browser ;)
    • Hallo Michael!

      Michael schrieb:

      Geht halt mit Javascript, das dein AVR auch mitliefern müsste. Schau dir mal den Quelltext an.
      Vielleicht kannst du die *.js Dateien woanders hin auslagern?

      Wäre ja - so denke ich - erst mal kein Problem:
      Alle Dateien lägen auf der SD-Card und würden dann bei Seitenaufruf oder Seitenaktualisierung eben rübergeschaufelt.
      Am liebsten via WLAN (ESP8266 o. vgl.) oder via LAN (W5100).
      Da das relativ unkritisch ist ob die Seite nun einige ms oder einige dutzend Sekunden braucht zum laden ist erst mal relativ egal.
      Hast aber recht, die notwendigen Scripts kann ich notfalls auch irgendwo anders hinpacken im LAN und einfach verlinken.

      Michael schrieb:

      So was hatten wir damals beim AVR-NETIO. Mittels SVG kannst du dynamische Grafiken erzeugen

      Ich weis! Im alten Forum habe ich das ganze Thema rund um NETio und den Evolutionsstufen hin zum W5100 gelegentlich gerne überflogen. Mich damals aber nie ernsthaft mit auseinandergesetzt, da ich gerade mal als Anfänger froh war I²C zu begreifen.
      Als ich dann mutiger wurde und mich ran traute an solche Sachen wie IP mit Bascom, gab es das Forum mit dieser doch erheblichen Wissensanhäufung zu diesem Thema nicht mehr. a_67_e210de67

      Michael schrieb:

      SPI ist ein synchroner Bus und hat dadurch keine Grenze nach unten.
      Aber je schneller der Bus läuft, desto schneller sind die Daten im Browser

      So auch mein Kenntnisstand, mir wäre es neu wenn ein SPI-Slave nicht auch mit 10MHz, 2MHz oder zur Not auch bis 100kHz runtergewürgt laufen würde. Daher war ich gestern etwas verwundert als im mcs-Forum jemand meinte das die W5100/5200 mit 20MHz gefüttert werden müssten und daher nicht alle ATmegas für taugen.

      Grüße

      Jürgen
    • DG7GJ schrieb:

      Wäre ja - so denke ich - erst mal kein Problem:
      Alle Dateien lägen auf der SD-Card und würden dann bei Seitenaufruf oder Seitenaktualisierung eben rübergeschaufelt.
      nein, mit woanders liegen meinte ich eher einen Server, der irgendwo im LAN liegt oder auf deiner persönlichen Webseite bei Strato oder so. Notfalls sogar auf dem eigenen PC, dann kann das aber nur dieser PC anzeigen.
      Wenn der kleine AVR die *.js Daten auch ausliefern muss, dann kommt er mächtig ins Schwitzen.
      Wenn die *.js woanders liegen, dann holt sich dein Browser die Daten parallel von dort und der AVR muss nur die Nutzdaten ausliefern.
    • Hallo Michael!

      Frohes neues erst mal!

      Michael schrieb:

      nein, mit woanders liegen meinte ich eher einen Server, der irgendwo im LAN liegt oder auf deiner persönlichen Webseite bei Strato oder so. Notfalls sogar auf dem eigenen PC, dann kann das aber nur dieser PC anzeigen.

      Ja, habe ich schon verstanden und wäre auch kein Problem. Mein Netzwerk hier besteht aus einer FritzBox 7490 mit USB-NAS, darüber sind von den...lass mal überlegen...9 Rechnern eigentlich 2 PC's permanent an, allerdings bislang ohne Webserver. Schlimmstenfalls aber habe ich noch reichlich Platz auf meinem Webspaxe beim ISP.



      Michael schrieb:

      Wenn der kleine AVR die *.js Daten auch ausliefern muss, dann kommt er mächtig ins Schwitzen.
      Wenn die *.js woanders liegen, dann holt sich dein Browser die Daten parallel von dort und der AVR muss nur die Nutzdaten ausliefern.

      Glaube ich dir gerne. Bezüglich IP auf einem AVR bin ich bislang ziemlich unvorbelastet weswegen mir da die Vorstellung fehlt.
      Habe einerseits schon erlebt wie viel Daten ein fehlerhaftes Programm Daten aus so nem AVR rausschießen kann.
      Aber wie viel da je Sekunde denkbar ist in "geordnet" muss ich wohl ausprobieren.
      Egal ob es ein ESP8266 oder ein W5100 wird: Wenn da was Netzwerkseitiges meint mit 5...10...50...100Mbit/s zu nuckeln, erwarte ich das der AVR da in seiner Geschwindigkeit eben Byte für Byte drauf gibt.

      Wie gesagt...suche noch immer nach Hinweisen und Beispielen für AVR-Webserver sowohl auf Grundlage ESP8266 als auch W5100.
      Da das Thema wohl komplexer wird, habe ich es erstmal etwas zurückgesetzt.

      Nun hänge ich an einer Hardware-Anzeige für die Sensordaten...
      Wäre praktisch wenn die aktuellen Sensordaten auf einem Text-LCD (2x16 oder 4x16) angezeigt werden, und in einem zweiten grafischen (DOGM128) der grafische Verlauf einzelner Parameter über mehrere Tage Zeitachse.
      Das ansteuern zweier LCD's parallel scheint aber nicht so einfach zu sein in Bascom.

      Ich muss mir jetzt erstmal Platinen zaubern um die bisherige Therie an der Hardware zu testen.

      Grüße

      Jürgen
    • Könnte das mit 2 Lcd nicht per I2C gehen? Wenn du vor jeder Ausgabe die Adressen neu angibst, dass die lib dann sie die schnappt, die zum gewünschten display gehören?
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Hallo tschoeatsch!

      tschoeatsch schrieb:

      Könnte das mit 2 Lcd nicht per I2C gehen? Wenn du vor jeder Ausgabe die Adressen neu angibst, dass die lib dann sie die schnappt, die zum gewünschten display gehören?

      Tja...das Problem rückt kommende Woche näher.
      Schaltplan für die Sensoren habe ich fertig, muss da heute nur noch die Platine routen.
      Das Anzeigegerät aber...tja...

      Also ein Textdisplay mit 4x16 oder 4x20 Zeichen zur Anzeige der textbasierten Menues und der Sensordaten.
      Dazu ein grafisches LCD zur Anzeige der Werteverläufe einzeln je Sensor abrufbar (Temperatur, relative Luftfeuchte, Luftdruck).

      Nach diversen Blicken ins Bascom-Handbuch bin ich aber auch auf serielle Lösungsansätze gestoßen.
      Allerdings grübel ich noch wie ich die LCD-Initialisierung zuverlässig hin bekomme.
      Daher habe ich nun einen abgewandelten Schlachtplan:
      Zwei baugleiche Displays, grafisch...z.B. DOGM128 mit 128x64pixel via SPI.
      Initialisierung ist dann die selbe, nur das halt auf dem einen ein ASCII-Font und am anderen Pixel und Lines ausgegeben werden, selektiert über den /SS.

      Schönes Wochenende!

      Jürgen