Ich habe ein kleines Script welches die am Pi angeschlossen Temperatursensoren (DS18b20) abfragen soll. Die Wete ollen dann in eine .txt Datei geschrieben werden.
Allerdings wird mir folgende Fehlermeldung ausgegeben, welche ich nicht verstehe:
Ich lese daraus, dass die datei temp-daten.txt nicht gefunden wurde? Aber eigentlich kann das nicht sein, denn ich habe sie selbst per Hand angelegt.Sensor ID | Temperatur
----------------------------
10-000802b5399d | 21.000 °C
Traceback (most recent call last):
File "temperatur.py", line 59, in <module>
fobj_out = open("home/pi/temp-daten.txt","a")
IOError: [Errno 2] No such file or directory: 'home/pi/temp-daten.txt
Hier einmal der komplette Code:
Code: Alles auswählen
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Die Sensoren müssen mit "modprobe w1-gpio" und "modprobe w1-therm" aktiviert werden!
# Import der Module
import sys
import os
from time import *
# Zeitvariable definieren
lt = localtime()
# 1-Wire Slave-Liste oeffnen
file = open('/sys/devices/w1_bus_master1/w1_master_slaves') #Verzeichniss evtl. anpassen
# 1-Wire Slaves auslesen
w1_slaves = file.readlines()
# 1-Wire Slave-Liste schliessen
file.close()
# Header fuer Bildschirmausgabe
print('Sensor ID | Temperatur')
print('----------------------------')
# Fuer jeden 1-Wire Slave eine Ausgabe
for line in w1_slaves:
# 1-wire Slave extrahieren
w1_slave = line.split("\n")[0]
# 1-wire Slave Datei oeffnen
file = open('/sys/bus/w1/devices/' + str(w1_slave) + '/w1_slave')
# Inhalt des 1-wire Slave File auslesen
filecontent = file.read()
# 1-wire Slave File schliessen
file.close()
# Temperatur Daten auslesen
stringvalue = filecontent.split("\n")[1].split(" ")[9]
# Temperatur konvertieren
temperature = float(stringvalue[2:]) / 1000
# Temperatur ausgeben
print(str(w1_slave) + ' | %5.3f °C' % temperature)
# Werte in Datei schreiben
# Zeit und Datum erfassen
Datum = strftime("%d.%m.%Y")
Uhrzeit = strftime("%H:%M:%S")
# Textdatei oeffnen
fobj_out = open("home/pi/temp-daten.txt","a")
# Daten in Textdatei schreiben
fobj_out.write(Datum + ", " + Uhrzeit +", " + '%5.3f °C' % temperature + "\n")
# Textdatei schliessen
fobj_out.close()
# Python script beenden und GNUPLOT Grafik erstellen
os.system("gnuplot /home/pi/temp.plt")
sys.exit(0)
grüße
eSmurf