DS18B20 auslesen und Lüfter steuern

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

    ich wollte mich gerade an mein erstes Projekt mit dem RasPi wagen und hab dabei allerdings so meine Probleme.

    Grundsätzlich möchte ich mit einem DS18B20 1Wire Temperatursensor die aktuelle Raumtemperatur messen. Ein Programm/Script (Python vielleicht) prüft dann ob die aktuelle Temperatur über einem festgelegten Wert liegt und schalltet, falls dies der Fall ist, einen Lüfter an.

    Der Sensor ist an den GPIO Pins 1; 7 und 6 angeschlossen und ein 4,7k[font="sans-serif"]Ω Widerstand befindet sich zwischen den Anschlüssen welche an Pin 1 und 7 liegen.[/font]
    Über eine manuelle Abfrage im Terminal bekomme ich eine Temperatur von 22,187°C was ungefähr passen sollte.

    Der Lüfter ist ein Solarmotor und wird durch 2x 1,5V Batterien gespeist. Als "Schalter" dient ein Transistor. Der Steuerstromkreis wird voraussichtlich an den Pins 17 und 14 angeschlossen.

    Da hört es von meiner Seite auch schon auf. Ich hab in Sachen Programmieren leider überhaupt noch nichts drauf. Das Ganze ist ein Schulprojekt und ich habe etwas Zeitdruck, da die Projektabgabe schon am Donnerstag (20.03.) ist. :helpnew:

    Diese Anleitung: http://www.stuffaboutcode.com/2013/12/raspbe…or-ds18b20.html finde ich zwar recht hilfreich allerdings fehlt da noch die Steuerung des Lüfters und ich habe leider keine Ahnung wie man ein Python Programm schreibt (einfach in eine .txt Datei schreiben?). Als Betriebssystem verwende ich Raspbian.

    Ich bin echt über jede Hilfe die ich bekommen kann heilfroh und bedanke mich hier schon mal bei Allen, die mir helfen können.

    Einen wunderschönen guten Sonntag und einen guten Start in die neue Woche
    AwesomeSoup

  • Forumsuche oben rechts nach: Lüftersteuerung

    Dann findet man zB:
    Lüftersteuerung per Temperatur + Einbauanleitung
    Temperaturwerte werden falsch ausgegeben

    Müßtest nur das auslesen der Werte deines Sensors entsprechend im Script anpassen

  • Danke für die rasche Antwort.
    Die Suche habe ich zwar verwendet, allerdings mit den falschen Suchbegriffen wie es scheint...

    Das Script sieht sehr vielversprechend aus nur leider bekomme ich es nicht gebacken RAMTMP auf YES zu stellen. Was auch noch ein Problem ist, ist dass ich einen DS18B20 als Temperatursensor verwende und keinen von Adafruit.
    Mein Problem ist dass ich zwar in etwa den Code verstehe aber nicht genau weiß, was ich jetzt umändern muss, dass die werte meines DS18B20 drinnen stehen.

  • Die Temperatur lese ich momentan über das Terminal aus.

    Code
    cd /sys/bus/w1/devices
    ls
    cd 28-0000050a86f1

    Dann teste ich mal das mit dem sudo.
    Nur welchen befehl muss ich dafür verwenden?
    Ich bin jetzt mit cd in das Verzeichnis /etc/default gelangt.

    Danke soweit mal^^

    Einmal editiert, zuletzt von AwesomeSoup (16. März 2014 um 21:42)

  • Welches Script möchtest du denn nutzen?

    /EDIT: Voraussetzung installieren:

    Code
    sudo apt-get install bc

    Die Anpassung für mein Script sähe wie folgt aus:

    Dann fehlt aber auch noch das Ein-/Auschalten des Lüfters - dazu müsste man halt die genauen GPIO pins wissen an dem der Lüfter angeschlossen is ;)

  • Danke, das Script teste ich gleich mal.

    Die Ausgabe bei [font="Tahoma, Verdana, Arial, sans-serif"]cat /sys/bus/w1/devices/28-0000050a86f1/w1_slave sieht wie folgt aus:[/font]


    Code
    6b 01 4b 45 7f ff 05 10 49 :  crc=49 YES
    6b 01 4b 45 7f ff 05 10 49 t=22687


    [font="Tahoma, Verdana, Arial, sans-serif"]Die Temperatur versteckt sich hinter t= also 22687. Das wären dann 22,687 °C.[/font]


    Der Lüfter ist an den Pins 14 und 17 angeschlossen.

    Einmal editiert, zuletzt von AwesomeSoup (16. März 2014 um 21:50)

  • GPIO-14 oder GPIO Pin#14 ? ;) Letzters könnte man nicht schalten da das ja GND und 3V3 wäre

    GPIO-14 wäre aber auch schlecht da das standardmäßig für die Serielle Konsole genutzt wird und man diese Funktion erst ausschalten müsste bevor man die Pins nutzen könnte...

  • meigrafd

    Ich wollte die GPIO Pins #14 und #17 verwenden. Ich dachte dass dann ein Stromkreislauf mit 3,3v entstehen würde, welcher dann den Transistor durchsteuern lässt (natürlich mit Vorwiderstand) und dann der Lüfter läuft.

    dreamshader

    Ich weiß leider nicht genau, warum ich einen Thermostat-Chip verwenden sollte. Hat er irgendwelche Vorteile gegenüber dem DS18B20 (ich brauche nur die Temperatur)? Und ich glaube nicht, dass ich das bis Donnerstag schaffe, ne neue Platine zu ätzen (unserer Lehrer besteht darauf), einen Thermostat zu bestellen, mich in ihn einzuarbeiten und dann das Ganze damit zu machen.

    Danke für den Rat, aber ich bleibe lieber für die 4 Tage bei dem DS18B20. Mit dem muss das doch genauso klappen^^

    Einmal editiert, zuletzt von AwesomeSoup (16. März 2014 um 22:19)

  • Achso, ja das wäre natürlich eine riesen Hilfe, aber dann hab ich ja quasi null Arbeit zum Vorzeigen und nichts was ich in der Präsentation erklären könnte. Ansonsten würde ich dann den Thermostat auch wählen^^

  • Na Du könntest demonstrieren wie so ein Chip eingestellt wird und mit passenden Grenzwerten demonstrieren, dass es seinen Dienst tut.
    Ich kann jetzt nicht beurteilen inwiefern es für Dich komplizierter ist, das 1Wire-Teil (also den DS18B20) oder diesen DS1621 zu handhaben.

    Der Github-Link führt übrigens auf ein öffentlich zugänliches Archiv. Das kannst Du meinem Source-Code (in C) vom damaligen Experiment herunterladen.

    cu,
    -ds-


  • meigrafd

    Ich wollte die GPIO Pins #14 und #17 verwenden. Ich dachte dass dann ein Stromkreislauf mit 3,3v entstehen würde, welcher dann den Transistor durchsteuern lässt (natürlich mit Vorwiderstand) und dann der Lüfter läuft.

    Aber wie wird der Transistor geschaltet?
    Wenn du den Lüfter an Plus und Minus anschließt läuft er permanent aber wird nicht gesteuert ;)


  • Aber wie wird der Transistor geschaltet?
    Wenn du den Lüfter an Plus und Minus anschließt läuft er permanent aber wird nicht gesteuert ;)

    Oh mist. Ich dachte man könnte die 3,3V an und aus schalten.
    Welche Pins soll ich dann verwenden? Pin #1 #6 und #7 sind ja schon belegt. Ich hab leider keine Ahnung welche Pins anderweitig benutz werden (konsolensteuerung usw.) und damit nicht in Frage kommen...

  • Ach dann nehm ich gleich den Pin #11 und #9 wie du es vorgeschlagen hast.

    Ich muss mich unbedingt mehr mit solchen Sachen beschäftigen, ist wirklich interessant und sehr vielseitig.

    Tausend Dank. Du hast mir wirklich extrem weitergeholfen:danke_ATDE:

    Einmal editiert, zuletzt von AwesomeSoup (17. März 2014 um 12:24)


  • Mal ganz was anderes, wenn ich mir Deine Zeichnung so anschaue: Dir ist schon klar, dass der 3V3 Pin sehr wahrscheinlich nicht in der Lage ist, den Motor hzu versorgen? Sieht irgendwie verdächtig danach aus ...

    Der 3,3V Pin sollte ursprünglich ja auch nicht den Motor versorgen sondern nur den Transistor steuern. Der Motor wird durch zwei Batterien versorgt. Da es aber ein Solarmotor ist, würden sogar die 3,3V des PI's ausreichen. (Hab leider vergessen in dem Bild anzumerken dass der Strom für den Lüfter von Batterien kommt, mein Fehler...)
    Aber da war ja auch noch ein Denkfehler von mir drinnen. Daher benutze ich jetzt den Pin #11 und #9 um den Transistor zu steuern, die Batterien übernehmen den Rest.

    Einmal editiert, zuletzt von AwesomeSoup (17. März 2014 um 12:40)


  • Mal ganz was anderes, wenn ich mir Deine Zeichnung so anschaue: Dir ist schon klar, dass der 3V3 Pin sehr wahrscheinlich nicht in der Lage ist, den Motor hzu versorgen? Sieht irgendwie verdächtig danach aus ...

    cu,
    -ds-

    ich bin auch darauf reingefallen, wenn man nur das Bild ansieht, wenn man aber Beitrag #1 glauben schenken soll wird der Lüftermotor aus 2 Batterien gespeist.



    Der Lüfter ist ein Solarmotor und wird durch 2x 1,5V Batterien gespeist. Als "Schalter" dient ein Transistor.

    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)

    Einmal editiert, zuletzt von jar (17. März 2014 um 12:38)

Jetzt mitmachen!

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