Benutzer-Werkzeuge

Webseiten-Werkzeuge


projekt:python_projekt_ds18b20_digitaler_temperatursensor

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
projekt:python_projekt_ds18b20_digitaler_temperatursensor [2026/02/20 15:56] – [Software] torsten.roehlprojekt:python_projekt_ds18b20_digitaler_temperatursensor [2026/02/23 12:09] (aktuell) – [Ausführen des Programms] torsten.roehl
Zeile 3: Zeile 3:
 [[python| ☚ zurück]] [[python| ☚ zurück]]
  
-FIXME  BEITRAG IN ENTSTEHUNG+ 
 +//In diesem Projekt wird ein digitaler Temperaturfühler vom Typ DS18B20 am Raspberry Pi per 1-Wire-Schnittstelle betrieben. Nach Aktivierung der 1-Wire-Schnittstelle liefert der Kernel die Messwerte über das //Sysfs-Interface//. Ein Python-Modul liest diese Werte ein und gibt die aktuelle Temperatur in Grad Celsius auf der Kommandozeile aus. 
 +// 
 + 
  
 ====== Überblick ====== ====== Überblick ======
Zeile 22: Zeile 26:
  
 |{{ :raspberry_pi:wire-1.png?550 |}}| |{{ :raspberry_pi:wire-1.png?550 |}}|
-|<WRAP> In ''raspi-config'' wird die 1-Wire Schnittstelle aktiviert. Danach ist das Verzeichnis ''/sys/bus/w1/devices'' vorhanden. Hier erscheint dann der Sensor, falls er korrekt angeschlossen wurde.</WRAP>|+|<WRAP> In ''raspi-config'' wird die 1-Wire-Schnittstelle aktiviert. Danach ist das Verzeichnis ''/sys/bus/w1/devices'' vorhanden. Hier erscheint dann der Sensor, falls er korrekt angeschlossen wurde.</WRAP>|
  
 ===== Hardware ansteuern  ===== ===== Hardware ansteuern  =====
 +
 +Der DS18B20 kommuniziert über die 1-Wire-Schnittstelle. Dabei erfolgt die gesamte Datenübertragung seriell über die DATA-Leitung (**GPIO4**) mit einem Pull-Up-Widerstand gegen <color #ed1c24>3.3 V</color>.
  
 |{{ :raspberry_pi:ds18b20.png?350 |}}| |{{ :raspberry_pi:ds18b20.png?350 |}}|
 | Für Einsteiger sind die //etwas teureren Fertigmodule// sinnvoller, da die benötigten Zusatzbauteile (hier insbesondere der 4,7 kΩ Pull-Up-Widerstand) bereits integriert sind. Dadurch kann der **DS18B20** mit nur drei Leitungen **(VCC, GND, DATA)** direkt angeschlossen und getestet werden.| | Für Einsteiger sind die //etwas teureren Fertigmodule// sinnvoller, da die benötigten Zusatzbauteile (hier insbesondere der 4,7 kΩ Pull-Up-Widerstand) bereits integriert sind. Dadurch kann der **DS18B20** mit nur drei Leitungen **(VCC, GND, DATA)** direkt angeschlossen und getestet werden.|
 +
  
 Verdrahtung: Verdrahtung:
-  * GND → Raspberry Pi GND +  
-  <color #ffc90e>DATA → GPIO4 (Pin 7)</color>   +^ Modul ^ Raspberry Pi GPIO ^ 
-  * <color #ed1c24>VCC → 3.3 V (Pin 1)</color>+| GND   | beliebigen GND  
 +<color #ffc90e>DATA</color>    | **GPIO4** (Pin 7) 
 +| <color #ed1c24>VCC </color> | **<color #ed1c24>3.3 V </color>**  |    
 + 
 + 
  
 <note tip>**Wichtig** <note tip>**Wichtig**
Zeile 42: Zeile 54:
   * Auflösung: 0,0625 °C  (12 Bit)   * Auflösung: 0,0625 °C  (12 Bit)
   * Genauigkeit: ±0,5 °C   * Genauigkeit: ±0,5 °C
 +  * Messbereich −55 °C bis +125 °C
 ==== Messprinzip ==== ==== Messprinzip ====
  
Zeile 66: Zeile 79:
  
 ===== Software ===== ===== Software =====
-|{{ :raspberry_pi:temperture_test.png?400 |}}| +=== Programmstruktur === 
-| Im Projektornder temperature befinden sich die beiden Dateien ''hardware.py'' die den Sensor anspricht und den Temperatur werde liest und eine kleines Testprogram "temperature.py'' als Demo.|+|{{ :raspberry_pi:temperature_test.png?450 |}}| 
 +|Im Projektordner „course_temp_reader“ befinden sich im Verzeichnis ''src'', die beiden Dateien hardware.py“, welche den Sensor anspricht und den Temperaturwert ausliest, sowie das kleine Testprogramm „temp_reader.py“ als Demonstration.|
  
 ==== Environment aktivieren ==== ==== Environment aktivieren ====
Zeile 82: Zeile 96:
 </note> </note>
 ==== DS18B20 API ==== ==== DS18B20 API ====
 +Unsere Beispiel-API ist bewusst einfach gehalten und unterstützt hier nur einen einzelnen Sensor. Bei Bedarf kann die Implementierung problemlos auf mehrere Sensoren erweitert werden; darauf wird in diesem Projekt jedoch verzichtet.
 +
  
 <code python hardware.py > <code python hardware.py >
Zeile 133: Zeile 149:
 ==== Temperature ==== ==== Temperature ====
  
-<code python temperature.py >+<code python temp_reader.py > 
 +#!/usr/bin/env python3
  
 from hardware import get_temperature from hardware import get_temperature
Zeile 149: Zeile 166:
  
 ==== Ausführen des Programms ==== ==== Ausführen des Programms ====
 +Nach dem Programmstart wird auf der Kommandozeile die Temperatur in Grad Celsius ausgegeben, sofern der Sensor korrekt erkannt wurde und die Messung erfolgreich war.
  
 +<code bash>
 +cd ~/devel/projects/course_temp_reader/src
 +chmod 755 temp_reader.py
 +./temp_reader.py
  
- +# Beispielausgabe:
-<code bash> +
-pi@raspi88:~/devel/projects/temperature/src $ ./temperature.py +
 Temperatur: 21.25 °C Temperatur: 21.25 °C
 </code> </code>
projekt/python_projekt_ds18b20_digitaler_temperatursensor.1771602987.txt.gz · Zuletzt geändert: von torsten.roehl