Advertisement
Guest User

Untitled

a guest
Mar 19th, 2018
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.55 KB | None | 0 0
  1. #!/usr/bin/python
  2. # coding=utf-8
  3. # messprogramm.py
  4. #------------------------------------------------------------
  5.  
  6. import os, sys, time
  7.  
  8. # Global für vorhandene Temperatursensoren
  9. tempSensorBezeichnung = [] #Liste mit den einzelnen Sensoren-Kennungen
  10. tempSensorAnzahl = 0 #INT für die Anzahl der gelesenen Sensoren
  11. tempSensorWert = [] #Liste mit den einzelnen Sensor-Werten
  12.  
  13. # Global für Programmstatus /
  14. programmStatus = 1
  15.  
  16. def cpu_temp():
  17. temp = os.popen("vcgencmd measure_temp").readline()
  18. return (temp.replace("temp=",""))
  19.  
  20. def ds1820einlesen():
  21. global tempSensorBezeichnung, tempSensorAnzahl, programmStatus
  22. #Verzeichnisinhalt auslesen mit allen vorhandenen Sensorbezeichnungen 28-xxxx
  23. try:
  24. for x in os.listdir("/sys/bus/w1/devices"):
  25. if (x.split("-")[0] == "28") or (x.split("-")[0] == "10"):
  26. tempSensorBezeichnung.append(x)
  27. tempSensorAnzahl = tempSensorAnzahl + 1
  28. except:
  29. # Auslesefehler
  30. print "Der Verzeichnisinhalt konnte nicht ausgelesen werden."
  31. programmStatus = 0
  32.  
  33. def ds1820auslesen():
  34. global tempSensorBezeichnung, tempSensorAnzahl, tempSensorWert, programmStatus
  35. x = 0
  36. try:
  37. # 1-wire Slave Dateien gem. der ermittelten Anzahl auslesen
  38. while x < tempSensorAnzahl:
  39. dateiName = "/sys/bus/w1/devices/" + tempSensorBezeichnung[x] + "/w1_slave"
  40. file = open(dateiName)
  41. filecontent = file.read()
  42. file.close()
  43. # Temperaturwerte auslesen und konvertieren
  44. stringvalue = filecontent.split("\n")[1].split(" ")[9]
  45. sensorwert = float(stringvalue[2:]) / 1000
  46. temperatur = '%6.2f' % sensorwert #Sensor- bzw. Temperaturwert auf 2 Dezimalstellen formatiert
  47. tempSensorWert.insert(x,temperatur) #Wert in Liste aktualisieren
  48. x = x + 1
  49. except:
  50. # Fehler bei Auslesung der Sensoren
  51. print "Die Auslesung der DS1820 Sensoren war nicht möglich."
  52. programmStatus = 0
  53.  
  54. #Programminitialisierung
  55. ds1820einlesen() #Anzahl und Bezeichnungen der vorhandenen Temperatursensoren einlesen
  56.  
  57. # Temperaturausgabe in Schleife
  58. while programmStatus == 1:
  59. x = 0
  60. ds1820auslesen()
  61. print "Sensorbezeichnung und Temperaturwert:"
  62. while x < tempSensorAnzahl:
  63. print tempSensorBezeichnung[x] , " " , tempSensorWert[x] , " °C"
  64. x = x + 1
  65. time.sleep(.5)
  66. print "\n"
  67. print (cpu_temp())
  68.  
  69. # Programmende durch Veränderung des programmStatus
  70. print "Programm wurde beendet."
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement