projekt:python_projekt_ds18b20_digitaler_temperatursensor
Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Projekt DS18B20 digitaler Temperatursensor
BEITRAG IN ENTSTEHUNG
Überblick
- Hardware ansteuern
- Environment aktivieren
- Software
Details
DS18B20 API
- ds18b20.py
import glob import time # ----------------------------- # API-Funktionen # ----------------------------- SENSOR_TIMEOUT = 1 # Sekunden def is_sensor(): """Prüft, ob mindestens ein DS18B20 Sensor angeschlossen ist""" sensors = glob.glob("/sys/bus/w1/devices/28-*") return len(sensors) > 0 def get_sensor(): """Gibt den ersten DS18B20 Sensor zurück oder None""" if not is_sensor(): return None sensors = glob.glob("/sys/bus/w1/devices/28-*") return sensors[0] + "/w1_slave" def get_temperature(): """Liest Temperatur vom ersten Sensor aus, None bei Fehler oder Timeout""" sensor_file = get_sensor() if sensor_file is None: return None start_time = time.time() while True: with open(sensor_file, "r") as f: lines = f.readlines() if lines[0].strip().endswith("YES"): break if time.time() - start_time > SENSOR_TIMEOUT: return None time.sleep(0.1) temp_line = lines[1] temp_str = temp_line.split("t=")[1] return float(temp_str) / 1000.0
Test
- test.py
if __name__ == "__main__": main()
from ds18b20 import get_temperature
def main():
temp = get_temperature()
if temp is not None:
print(f"Aktuelle Temperatur: {temp:.2f} °C")
else:
print("Kein Sensor gefunden oder Lesefehler!")
if name == „main“:
main()
</code>
projekt/python_projekt_ds18b20_digitaler_temperatursensor.1771576686.txt.gz · Zuletzt geändert: von torsten.roehl
