Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Schaltungen mit dem Raspberry Pi

Ein digitales Thermometer anschließen

Testen Sie unsere 2016 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Mit einem digitalen Thermometer können Sie zum Beispiel Langzeitreihen von Temperaturschwankungen aufzeichnen.
07:23

Transkript

Jetzt get's mal darum, wie wir mit dem Raspberry Pi die Temperatur messen. Es gibt eine ganze Reihe von Temperatursensoren. Ich habe mich jetzt für den DS18S20 entschieden. Der Vorteil bei diesem Sensor ist, er ist vorne wasserdicht, das heißt, wir können damit z.B. in Flüssigkeiten wie Wasser die Temperatur messen. Er hat ein recht langes Kabel. So eignet sich z.B., um in einem Teich im Garten die Temperatur dauerhaft zu messen. Dieser Sensor hat drei Anschlüsse, drei verschiedenfarbige Kabel: rot, schwarz und weiß. Und Sie sehen jetzt hier den Aufbau des Schwarzes, klassischerweise, des Kabel für die Masseverbindung, also für Ground. Das kommt jetzt hier auf den 6. Pin. Fünf Volt-das ist die Spannungsversorgung, mit der wir diesen Sensor betreiben. Das ist das rote Kabel. Und weiß-das ist das Datenkabel, das habe ich hier auf den 7. Pin eingesteckt. Und achten Sie auch darauf, dass ich zwischen rot und weiß noch mal so einen Pull-up-Widerstand eingebaut habe. Sie sehen jetzt noch mal eingeblendet die Skizze, wie das Ganze hier korrekt aufgesteckt wird. Das ist jetzt hier der Hardware-Aufbau, der ist soweit fertig. Der Raspberry läuft, und jetzt schauen wir uns mal die Software dafür an. Um diesen w1 Sensor auslesen zu können, da müssen wir keine besondere Software mehr installieren, wir haben bereits alles an Board. Wir müssen aber ein paar Kernel-Module nachladen. Weil es sich um Kernel-Module handelt, müssen wir erstmal in den Superuser-Modus gehen mit sudo modprobe-das ist der Befehl, um Kernel-Module nachzuladen. w1_gpio und w1_therm für das Thermometer. Und jetzt haben wir alle Geräte nachgeladen. Nach der Linux-Philosophie alles ist eine Datei, werden die Daten des Sensors einfach in eine Datei reingeschrieben, und diese Datei, die befindet sich im Verzeichnis. sys/bus/w1/devices, und jetzt schauen wir uns mal an, ob wir hier tatsächlich ein Gerät finden. Nein, das ist nicht der Fall. Es kann sein, dass Sie Glück haben und noch einen älteren Kernel haben. Wir müssen allerdings hier noch mal etwas an der Boot-Reihenfolge dieser Kernel-Module verändern. Wie machen wir das? Wir fügen einfach dauerhaft eine Zeile an die Datei boot/config.txt an mit sudo nano boot/config.txt öffne ich diese Datei in einem Editor. Jetzt gehe ich mal ganz ans Ende dieser Datei. Und da füge ich jetzt einfach dtoverlay=w1-gpio an. Mit ˄o speichere ich das Ganze und mit ˄x gehe ich wieder raus. Und jetzt muss ich den Raspberry einmal neu booten. So, da bin ich wieder. Ich bin frisch eingeloggt. Der Raspberry hat neu gebootet, und jetzt wechsle ich noch mal in das Verzeichnis. cd/sys/bus/w1/devices Schauen wir mal! Da finde ich jetzt hier ein Device, Nummer 28. In dieses Verzeichnis gehe ich mal rein. cd 28 und dann die Tepp Taste Und in diesem Verzeichnis schauen wir mal. Da finden wir eine Datei namens w1_slave. Und das ist die Datei, die alle Informationen des Sensors aufnimmt. Mit cat w1_slave schauen wir mal hinein, ob der Sensor hier etwas liefert. Jawohl, wir haben 22.937 Grad. Jetzt nehme ich den Sensor mal in die Hand, um es etwas wärmer zu machen. Und dann schauen wir mal, ob der Sensor einen anderen Wert liefert. 24 Grad haben wir jetzt schon. Und jetzt sind wir sogar schon bei 25 Grad. Diese Datei können wir jetzt natürlich auch aus einem Script oder aus einem Programm heraus aufrufen und mit diesem Wert arbeiten. Ich wechsle mal ins Homeverzeichnis mit cd~. Und hier mache ich mal eine neue Datei auf, die nenne ich temperatur.sh. Und jetzt kopiere ich mal hier diesen Text rein. Gehen wir mal der Reihe nach durch, was dieses Programm macht. Zunächst einmal ruft das hier die bash auf, hat dann eine Funktion, die schauen wir uns mal später an, denn das Programm wird ja zunächst mal mit dieser while Schleife hier anfangen. Und zwar solange diese while Schleife gilt, nämlich solange das Programm läuft, wird diese Funktion measure temperature aufgerufen. Dann wartet das Programm 0.3 Sekunden und ruft diese Funktion wieder auf. Schauen wir mal, was diese Funktion hier oben tatsächlich macht. Zunächst einmal macht sie nichts Anderes als mit einem cat Befehl genau diese Datei w1_slave aufzurufen. Es kann sein, dass Sie bei Ihnen hier diese Zahl verändern müssen, wenn Sie einen anderen Sensor haben. Schauen wir uns jetzt mal an, was da am Ende der Zeile passiert. Wenn ich da mal hintergehe. Es wird also der Inhalt dieser Datei mit cat aufgerufen. Und das Ganze wird dann an grep und an awk übergeben. Und ich möchte aus diesem Bereich, aus dieser Datei nur die zweite Zeile haben. Und diese zweite Zeile, die speichere ich jetzt in der Variablen temperature. Und diese Variable temperature, die bearbeite ich auch noch einmal. Und ich möchte einfach nur die letzte Ziffer in dieser Zeile haben. Weil das Ganze eine ganz genaue Zahl ist mit vier Nachkommastellen, möchte ich auch diese Nachkommastellen noch ein bisschen bearbeiten. Zu guter Letzt gebe ich das Ganze einfach aus. Mit diesem -n sage ich, dass ich keine neue Zeile am Ende dieses echo-Befehls haben möchte. Und mit -e sage ich, dass immer wieder vorne anfange. Ich speichere das Ganze mal ab. Jetzt muss ich noch diese Datei ausführbar machen mit chmod 755 temperatur.sh und jetzt kann ich diese temperatur sh ausführen mit ./temperatur Und wir sehen hier jetzt 22.9 Grad. Jetzt nehme ich den Sensor noch mal in die Hand, und Sie sehen, wie jetzt hier die Temperatur langsam nach oben steigt, und ich hoffe, ich habe kein Fieber. Deswegen breche ich das Ganze jetzt schon mal ab mit Steuerung C (˄C) bin ich aus dem Programm wieder draußen. Zu guter Letzt noch ein Tipp: Wenn Sie die Kernel-Module nicht bei jedem Neustart von Hand nachladen wollen, dann können Sie das natürlich auch automatisch dem Raspberry sagen mit sudo nano /etc/modules machen wir die Datei etc modules auf. Und hier sind alle Module verzeichnet, die der Raspberry bei einem Neustart automatisch lädt. Und wenn ich jetzt hier einfach die beiden Zeilen w1-gpio und w1-therm hinzufüge, das Ganze mit ˄o abspeichere und mit ˄x wieder rausgehe, dann werden diese Module bei einem Neustart automatisch hinzugeladen.

Schaltungen mit dem Raspberry Pi

Experimentieren Sie mit dem Raspberry Pi und entdecken Sie viele sinnvolle und spielerische Anwendungen mit dem Einplatinencomputer.

1 Std. 0 min (11 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!