[Tutorial] 1Wire Temperaturmessung mit Datenerfassung und Visualisierung

  • [Tutorial] 1Wire Temperaturmessung mit Datenerfassung und Visualisierung? Schau mal ob du hier fündig wirst!

  • Bin auch dabei mit dem RPi einige Werte zu loggen.
    Dies ist für mich der einstieg in die Welt von Linux und co. ;)

    Ich bin dabei die Werte vom DS18B20 über rrdtool am loggen und via apache2 am ausgeben.

    Über mein Codeschnippsel könnt ihr euch gerne auf Githup umschauen. >> https://github.com/elchue/sysmoni…nv_temp_gpio.sh
    Da ich das Problem mit den fehlerhaften Messwert von 85°C nicht in den griff bekommen habe (doesn't respond to CONVERT_TEMP) habe ich mich an den OneWire Master via I2C versucht.
    Siehe da, keine fehlerhafte Messwerte ;)

    Das ganze Projekt könnt ihr euch hier anschauen: >> https://github.com/elchue/sysmonitor
    Ihr könnt euch gerne drüber auslassen.
    Es ist bestimmt sehr verbesserungswürdig :D

    Edited once, last by elchue (July 28, 2013 at 6:51 PM).

  • Hallo,

    ich bin neu und habe zu dieser Schaltung des 1Wire Temperatursensors eine Frage.
    Warum wird der Widerstand parallel zum Sensor angeschlossen? Ist das nur zum Schutz falls der Sensor defekt ist?
    Denn damit habe ich ja keinen Spannungsabfall am Sensor, oder sehe ich das falsch?
    Nur mal zum Verständnis!


  • Hallo,

    ich bin neu und habe zu dieser Schaltung des 1Wire Temperatursensors eine Frage.
    Warum wird der Widerstand parallel zum Sensor angeschlossen? Ist das nur zum Schutz falls der Sensor defekt ist?
    Denn damit habe ich ja keinen Spannungsabfall am Sensor, oder sehe ich das falsch?
    Nur mal zum Verständnis!

    diese Schaltung gibts nicht, welche meinst du genau ?

    parallel ist es ja auch nicht, wenn du die echte parasitäre meinst, dann geht der Widerstand zu Vcc, quasi ein pullup wie an jeden Port, den z.B. ein taster oder eben der Sensor oder der PI nach low ziehen kann.

    Ist der PI Port Input und wartet auf low, so speist dieser Widerstand den Sensor, der puffert die Vcc lange genug um mit ziehen auf low dem PI zu morsen, oder umgekehrt wenn der PI an den DS "morsen" will, weil bei low ja keine Speisespannung mehr anliegt darf das nie zu lange dauern, ist aber für eine normale Übertragung immer ausreichend.

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Jar hat es doch erklärt.

    Um seine Erklärung noch einfacher zu gestalten:
    Stell dir eine Taschenlampe vor womit ein Signal übertragen wird.
    Diese kannst du nicht abschalten (pullup), um zu morsen hälst du einfach deine Hand davor um das Licht abzudunkeln.
    Der gegenüber sieht nun kein Licht und nimmt eine Änderung war.
    Nachdem die Hand weg genommen wird ist das Licht wieder vorhanden, da die Taschenlampe immer noch an ist (pullup).

    Dies macht genauso dieser Widerstand, nur das über die Signal-Leitung auch der Sensor versorgt werden kann und nicht unbedingt 3 Leitungen braucht.

  • Hallo,

    ich habe mir eben das Thema durchgelesen und habe da eine witzige Idee.
    Diese Idee ist als Anregung gedacht für euch Profis.
    Ich würde mich sehr freuen, wenn jemand es schafft und mich darüber nformiert.

    Gehen wir mal davon aus, daß ich die schaltung begriffen habe und den Pi beigebracht bekomme
    die Temperatug alle 5 min zu messen über 2 Sensoren.
    Nun wird hier ja beschrieben, daß man über eine Datei die Infos auslesen kann.

    Meine Zenario:
    Ich stelle den Pi in einen Serverraum auf, um Temperatur der Raumes und des Server zu überwachen.
    Nun wäre aber eine weitere erweiterung notwendig, um die Idee zu vollenden.
    1. Grenzwerte angeben, sagen wir (Richtwert ohne erfahrung)eine Raumtemperatur von 30Grad und Servertemperatur von 35Grad (in der Nähe der Entlüftung)
    2. Einen SMTP Mailserver der bei erreichen der Grenzwerte eine E-Mail an eine oder mehrer Empfänger sendet.


    Nun muss ich leider dazu sagen, daß ich zwar einen Pi liegen habe aber keine Zeilt und was schlimmer ist kein Know how habe wie man das umsetzen kann.

    Wir habe in unserer Firma schon einmal nach einer fertigen Lösung gesucht, doch solche Temperaturmesser mit Mailfunktion sind sehr teuer und unflexibel.


    Ich freu mich schon auf euer feedback zu der Idee
    Rabbit

  • Hallo Rabbit.

    Das sollte relativ fix gehen,
    wenn der RPi Zugriff auf einen Mail-Server hat.

    • Messwerterfassung: Gibt hier genug Beispiele in Python, ich habe ein Beispiel hier gepostet
    • Regelmässige Messwertauswertung: siehe cron
    • Python besitzt eine Mail-API (smtp, pop3, imap4) alles vorhanden
    • Kein Mail-Server erreichbar? Dann muss auf dem RPI ein Mail-Server eingerichtet werden und es muss natürlich ein Intra/Internet-Zugang vorhanden sein


    Ich hoffe diese kleine Anregung hilft.

    Bis dann,
    Uwe

  • Was hat es denn mit der 9 oder 12 Bit Thermometer Resolution auf sich? Der Rest ist ja bis auf die Messgenauigkeit identisch.

    Gruß

  • Hallo ich bin neu hier im Forum.
    Habe das thema mit Interesse verfolgt und finde es einfach Klasse was ihr alle so macht.
    Anhand des Tutorials habe ich das Beispiel mit drei Sensoren nachgebaut, funktioniert alles super.

    Jetzt wollte ich die Werte mit rrdtool in eine Datenbank schreiben, dazu bräuchte ich aber für jeden Sensor eine eigene Variable.

    Da ich absoluter Neuling mit Python bin bekomme ich es nicht hin.


    Im Pythonscript in der for-Schleife werden ja die die Werte der Sensoren immer der Variable temperature zugewiesen. Gibt es eine Mögkichkeit jedem Sensor eine eigene Variable zuzuweisen.

    Kann mir da jemand helfen?
    Grüße Horst

  • Rabbit,

    Hier findest Du ein Python Program, um bei Temperatur-Alarm eine Mail zu senden.

    ThomasH
    March 3, 2013 at 8:01 PM

    Hast Du Dir so etwas vorgestellt ?

    Gruß,
    Thomas

    while (!sleep()) {sheep++};

  • Danke für die schnelle Antwort.

    Mir gehts aber eher ums Verständnis ob man in der for-Schleife die Variablen dynamisch anpassen kann.
    Das verlinkte Projekt hört sich cool an. Aber durch php und mysql steigt meine Verwirrung noch mehr als ohnehin schon.

    Gruß Horst

  • Das war von mir wahrscheinlich nicht klar genug formuliert.

    Ich wollte nicht auf das Projekt, sondern nur auf das Script um vorletztem Eintrag auf der Seite 4 verweisen,
    Dies ist ein eigenständiges Programm ohne Datenbank, mysql oder php.

    Hier geht es nur darum, einen Sensor zu lesen und ggfs. Eine Mail zu schicken.

    Hier mal ein Code Fragment für die Variablen

    Vararray = []

    I = 0

    For line in ....
    ...
    Vararray = temperature


    # nach der for Schleife
    Var1 = vararray[0]
    Var2= vararray[1]



    Ist so aus dem Kopf heraus. Bitte Groß/Kleinschreibung ändern. Das geht auf dem ipad etwas umständlich.

    while (!sleep()) {sheep++};

    Edited once, last by ThomasH (June 8, 2013 at 8:47 PM).

  • Vielen Dank,

    das Beispiel hat mir weitergeholfen.
    Allerdings muß man die Liste vorher mit Werten füllen (z.B. vararray=[1,2,3]) oder mit vararray.append(i) arbeiten, sonst bekommt man einen Fehler.

    Das Script zum einlesen der Temperatur mit Emailversand bekomme ich nicht zum laufen. Kann das für eine ältere Python Version sein?

    Grüße Horst

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!