Discussion in 'Entwicklungswünsche' started by VogelNest, Feb 6, 2009.

  1. VogelNest

    VogelNest New Member

    Hallo,

    wollte mal nachfragen, ob die Möglichkeit besteht den LogView auch live für 1-Wire Elemente, insbesondere für die Temperatursensoren DS 18S20 (DALLAS SEMICONDUCTOR) einzusetzen.

    von http://martybugs.net/electronics/tempsensor/ hab ich bereits die Schaltung und es funktioniert, allerdings kann ich da entweder alles in eine *.txt File schreiben um es dann später zu analysieren oder der Datenwust wird im cmd "live" aktualisiert welches nicht sehr anschaulich ist. :D

    thx
  2. Dominik

    Dominik Administrator Staff Member

    Moin !

    So nach etwas Bedenkzeit hier auch mal ein paar Ideen und Vorstellungen von mir. :)

    Generell finde ich den Ansatz sehr interessant, man kauft sich bei Reichelt mal flux 5 Bauteile, nagelt da eine eher primitiv anmutende Schaltung zusammen und schwubs hat man Temperaturdaten im PC. Das alles wohlgemerkt ohne irgendwelche Hightech Bauteile wie ein µController.
    Die Sache macht auch in sehr einfachen Umgebungen Sinn, aber mit LogView habe ich da ehrlich gesagt so meine Bauchschmerzen. Warum werde ich gleich auch schreiben.

    Das ganze Prinzip dieser einfachen Ausleserei beruht ja darauf, dass man die Steuerleitungen der seriellen Schnittstelle dazu missbraucht, einen Bus nachzuahmen. Im Fall des DS1820 ist das ein 1-Wire / MicroLan Bus. Das gleiche funktioniert aber auch mit einem I2C Bus (habe ich in frühen LogView Tagen schon für den MiniLogger gemacht).
    Ansich ist das ja auch ne Tolle Idee die aber einen Haken hat ... Man muss "wie ein Irrer" auf der Schnittstelle rumpollen, die Steuerleitungen permanent umsetzen und auch ganz nebenbei noch auf sowas wie Bustimings achten. Wenn man da jetzt etwas hat wie DigiTemp (http://www.digitemp.com/index.shtml) dann ist das auch kein grosses Problem. Denn da werkelt eine doch sehr überschaubare Anwendung rum und muss nur ein bisserl an Portpins rumwackeln und ein bisserl Temperaturen anzeigen.
    Auch diese recht einfache Anwendung verfolgt das Prinzip : http://www.wimb.net/index.php?s=delphi&page=29 . Man bekommt dort sogar den Quellcode ...
    Aber wie gesagt, all diese Lösungen sind sehr kleine und einfache Anwendungen.

    Jetzt denken wir uns das Konstrukt mal an LogView ran ... Dort haben wir eine recht aufwendige Oberfläche, ggf. (mit V3) mehrere aktive Grafiken, etc etc.
    Kurzum, ich habe die Vermutung, dass diese PortPinWacklerei dort nicht mehr so stabil funktioniert. So und obendrauf kommt noch ein Problem mit den USB / Seriell Adaptern. Diese Adapter stellen zwar formal eine Schnittstelle bereit, unterliegen aber den "Einschränkungen" von USB. Das bedeutet das ein USB / Seriell Adapter immer mal wieder einen TimeSlot bekommt, wo er arbeiten darf. Das muss irgendwann zu Timing-Problemen führen. Ich weiss noch (aus alten Tagen), dass I2C über einen solchen Adapter unglaublich zäh wurde.

    Ich denke man kann nachvollziehen, dass wir sowas nur ungern an LogView adaptieren würden. Denn es ist eben nicht sicher, ob das immer und auf Dauer bei allen funktioniert :p

    Hier noch eben flux die Links, die ich so gefunden habe:
    http://martybugs.net/electronics/tempsensor/
    http://www.digitemp.com/index.shtml
    http://ourworld.compuserve.com/homepages/TK_boyd/Dt5a.htm
    http://www.arunet.co.uk/tkboyd/e1didx.htm
    http://www.wimb.net/index.php?s=delphi&page=29

    Wie könnte es anders gehen?
    Ich denke es gibt zwei Wege aus diesem "Dilemma". Zunächst mal wäre es denkbar, einen kleinen µController zwischen den Sensor und die PC-Schnittstelle zu klemmen. Der muss nix anderes tun, als den BUS (1-Wire, I2C, ...) auszulesen und die Daten über ein normales serielles Interface an LogView zu reporten.
    Als Beispiel möchte ich mal folgenden Link anbringen : http://www.logview.info/cms/d_beipiel--miniwetterstation.phtml :rolleyes:
    Der Vorteil dieser Lösung liegt auf der Hand ... Zunächstmal können alle möglichen Sensoren adaptiert werden - es ist nur wichtig das der µC die unterstützt. Und weiterhin stellt die Kommunikation mittels normaler RS232 Übertragung keine Probleme dar. Das funktioniert im Normalfall immer.
    Der Nachteil dieser Lösung ist sicherlich das man einen µController braucht. Das bedingt nämlich einen Compiler für den Quellcode des selbigen und weiterhin eine Möglichkeit, dass Teil auch zu programmieren.
    Vom Aufbau her stellt das keine grossen Anforderungen. So einen Tiny26 kann jeder, der einen Lötkolben halten kann, verdrahten und ggf. sogar in den Sub-D Stecker einbauen :eek:

    Die zweite Variante wäre die Abkopplung von LogView - was aber nur mit der kommenden V3 klappen würde. Dabei müsste jemand eine kleine Minianwendung erstellen (ähnlich wie auf den Links oben). Diese Anwendung macht nix anderes, als die Daten von den Sensoren zu lesen. Wie das passiert ist mir egal ... Ob das nun mit den simpel Adaptern gemacht wird oder mittels eines µControllers ist dann unerheblich.
    So, diese Anwendung connected sich dann über eins der neuen external Interfaces (nur LV V3) an LogView und beamt die Daten rüber. Dann hat LogView nicht den "Stress", diesen externen Adapter bedienen zu müssen. Auf der anderen Seite muss der User aber auch nicht auf die Auswertung durch LogView verzichten.

    Ich denke, diese beiden Varianten sind denkbar mit LogView. Das ist jetzt bestimmt nicht so ganz das was du hören wolltest, VogelNest. Aber wie gesagt, es gibt da schon Erfahrungen auf dem Gebiet I2C und es hat sich gezeigt, dass eine saubere RS232 immer der bessere Weg ist.

    So und nun bin ich gespannt auf die Antwort(-en).
  3. eandi

    eandi New Member

  4. Dominik

    Dominik Administrator Staff Member

    Moin !

    Nuja, das löst das grundsätzliche Problem nicht so ganz.
    Zum einen ist es vermutlich recht schwer so einen Adapter zu kaufen. Und wenn man ihn kauft dann kann das Ding nix anderes als ein paar 1-Wire Sensoren zu connecten.
    Wenn ich das recht sehe basieren aber auch diese Adapter immer noch auf der BitBang Technik - also man simuliert mit den Statusleitungen den Bus.

    Obendrein müssten wir uns in das SDK einarbeiten. Dafür das man nur ein paar Temperaturen lesen kann haben die da einen ganz schönen HäckMäck drum gebaut :rolleyes: Zudem haben sie auch noch im aktuellen SDK die benötigten Treiber ausgespart. Da steht nur sowas wie "not available in this release".

    Kurzum, ne Menge Aufwand und ich weiss nicht ob sich der lohnt.
    Und wenn man den Adapter sowieso selber löten muss, dann kann man auch gleich einen µController nehmen und dort die Sensoren anklemmen.
    Im Anhang mal ein Bild von einem Tiny26 (ist aber in etwa immer gleich bei den AVRs ...) in Grundschaltung. So und mal zum vergleich das zweite Bild mit der Orginal Maxim Schaltung und daneben eine Simpelschaltung (wo ich nicht nicht weiss ob die so ohne weiteres funktioniert).
    Ok bei der Grundschaltung mit dem Tiny kommt noch ein bisserl drum rum, aber wirklich nicht viel. Und damit hätte man einen universellen Adapter für I2C, 1-Wire, ....

    Attached Files:

  5. eandi

    eandi New Member

    Hallo Dominik,

    Zu dem USB-Adapter kann ich nicht viel sagen.
    Aber zu dem RS232-Adapter schon. Mein Kollege hat den Adapter wie auch den Chip selbst(DS2480B) ausprobiert - der ist ja im Adapter auch verbaut. Er meinte das Ding funzt einwandfrei. Du schickst ein Byte hin und gut. Du holst ein Byte ab und gut. So wie der angesprochene OW-Baustein es eben brauch. Der Chip übernimmt für Dich das Bit-Banging. Er wusste es nicht mehr genau, aber er meinte, daß sogar der Search-Algorithmus von dem Chip abgewickelt wird, zumindest teilweise. Siehe Datenblatt DS2480B.
    Also Bit-Banging ade.
    Den Adapter habe ich bei Farnell für knapp €40,- plus Märchensteuer gesehen. Ist aber bestimmt irgendwo günstiger zu bekommen.
    Wenn man sich mit den OW-Chips mal beschäftigt sind die gar nicht soooo uninteressant. Es gibt ja weit mehr als nur Temp-Chips.
    Ich will Dir die Dinger aber nicht aufschwätzen. Jeder nach seinem Gusto.

    Gruß,
    Andreas
  6. wkrug

    wkrug New Member

    Ich seh bei der Verwndung dieser 1wire Chips eigentlich ein ganz anderes Problem und zwar das der zuordnung.

    Jeder dieser Chips hat eine individuelle einmalige Adresse.
    Wenn man nun z.B. 5 dieser Chips verbaut, muß man irgendwo eine Zuordnungstabelle hinterlegen, damit man überhaupt weiß, wo der entsprechende Chip überhaupt verbaut ist.

    Man muß also einen Lern Algorithmus in die jeweilige Applikation mit einbauen.

    Ich würde Das auch mit einem kleinen Microcontroller lösen wollen.

    In der Lern Phase wird ein Sensor nach dem anderen angeschlossen und im Controller abgespeichert.

    Die Werte der Sensoren werden dann bei der Ausgabe an den PC so nacheinander ausgegeben, wie sie angeschlossen wurden.
    Alternativ könnte ich mir eine Konfiguration über ein Terminalprogramm vorstellen.

    Der Microcontroller kann dann auch gleich einen Datenstrom im Open Format erzeugen, dann ist die Anbindung an Logview schon gar kein Problem mehr.

    Wenn man den Microcontroller dann gleich über einen USB Bridge Baustein z.B. FT232 RL anschließt, hat man auch schon eine Stromversorgung für die Schaltung und auch keine Probleme die Schaltung mit einem Laptop zu verbinden.

    Diese Lösung sollte im Bereich unter 10,-€ liegen, ohne die Temperatursensoren natürlich, weil die sind ganz schön teuer.
  7. eandi

    eandi New Member

    Jep,

    absolut richtig Deine Anmerkungen.:grin:
    Gruß,
    Andreas
  8. Holger

    Holger LogView Team

    Sehe ich genau so! :)

    Es wird übrigens zum Thema OpenFormat in LV demnächst ein paar Neuerungen oder Erweiterungen geben, um speziell den kleinen Controllern die Ausgabe noch etwas zu vereinfachen, Übetragungsbandbreite zu sparen und neue Möglichkeiten zu schaffen.
    Z.B. kann dann LV für die Zeiterfassung den Datentelegrammen automatisch einen absoluten Zeitstempel verpassen. Das ist recht hilfreich, wenn eine Wetterstation Sensorwerte in unregelmäßigen Abständen sendet, aber keine Zeit im Telegramm liefert oder liefern möchte.
    Tests dazu laufen schon erfolgreich, später dann mehr zu dem Thema in einem eigenen thread.

    Gruß, Holger
  9. Bjoern_S

    Bjoern_S New Member

    Meine Variante

    Hallo an alle,
    ich wollte einfach mal meinen Senf zu den DS18S20 Sensoren betragen.
    Als ich die vor ein paar Monaten zum ersten mal gesehen habe, fand ich
    die Idee ganz toll, mit wenig Aufwand und wenig Geld eine vernünftige
    Temperaturerfassung meiner Heizungsanlage zu realisieren.

    Die Schaltung für den RS232-Port war schnell gebaut, leider mußte ich
    aber auch genauso schnell feststellen, dass es Softwareseitig nicht so gut
    voran geht. Ich habe dann Digitemp for Windows gefunden, was auch auf der
    Dos-Ebene hervorrangend funktioniert.
    Da ich aber ca. 26 Sensoren verbauen wollte, war die Ausgabe reiner Zahlen
    in Dos für mich nicht sehr ansprechend. Einen uController habe ich mir nicht
    zugetraut, also hab ich mal meinen Schwager (IT-Mensch) gefragt, ob der nicht
    was machen kann.

    Rausgekommen ist folgendes:

    Er hat in PHP etwas geschrieben, (mittlerweile ist die 3. Version draußen) womit
    ich hervorragend klar komme. Ich habe die Möglichkeit im Hausnetz per Webbrowser mir
    Diagramme (Verläufe) der Temp-Messungen anzeigen zu lassen. Für jeden Sensor einzeln.
    Die Sortierung kann ich frei wählen entwerder nach Seriennummer, nach Portnummer
    (die muß man vorher natürlich eingeben z.B. Sensor Nummer 8 bekommt auch den Port 8)
    oder nach meiner freien Beschreibung.

    Im Moment habe ich "erst" 10 Sensoren verbaut, die alle 15 Zentimeter an meinem
    Pufferspeicher sitzen. Da heißt ich sehe relativ genau wo welche Temp im Puffer herscht.
    Weitere 10 sollen am Brauchwasserspeicher und der Rest für Vor & Rückläufe der Therme,
    Solaranlage und den Wassergeführten Ofen, sowie Außenfühler. Dann hab ich einen guten
    Überblick über das, was die Anlage macht bzw. gemacht hat.

    Dieses PHP Prog kann auch mehrere meiner selbstgebauten Schnittstellen verwalten.
    Es gibt eine Monats & eine Tagesstatistik für jeden einzelnen Sensor. In der folgenden
    Version sollen "Multigrafiken dazukommen.


    Leider habe ich hier keine Funktion gefunden, wo ich Dateien anhängen kann, vielleicht kann mir ja jemand einen Tip geben, dann lade ich noch Screenshots hoch.

    Viele Grüße Björn
  10. Dominik

    Dominik Administrator Staff Member

    Unter dem Editor (wo deinen Text schreibst) auf "Anhänge verwalten" ...
  11. Bjoern_S

    Bjoern_S New Member

    Dateianhänge

    Supi, wer lesen kann, ist klar im Vorteil!!

    So hänge einfach mal ein paar Beispiele an, wie das bei mir aussieht.

    Sorry wegen der schlechten Quallität, aber ich bin auf der Arbeit und meine Mittel sind hier nur begrenzt.

    Es sind dieses Wochenende neu Funktionen dazugekommen unter anderem lassen sich jetzt nachträglich angeschlossene Sensoren oder auch weitere Interface´s per Knopfdruck einbinden.

    Gute Arbeit Schwager :)

    Attached Files:

Share This Page