-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtemperature.py
51 lines (41 loc) · 1.68 KB
/
temperature.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# Imports
import os
import glob
import time
class TemperatureSensor:
def __init__(self):
# Intialisation des broches
os.system('modprobe w1-gpio') # Allume le module 1wire
os.system('modprobe w1-therm') # Allume le module Temperature
# Chemin du fichier contenant la température (remplacer par votre valeur trouvée précéde$
self.device_file = '/sys/bus/w1/devices/28-01131b7af492/w1_slave'
# Une fonction qui lit dans le fichier température
def read_temp_raw(self):
f = open(self.device_file, 'r') # Ouvre le dichier
lines = f.readlines() # Returns the text
f.close()
return lines
# Lis la temperature
def read_temp_c(self):
lines = self.read_temp_raw() # Lit le fichier de température
# Tant que la première ligne ne vaut pas 'YES', on attend 0,2s
# On relis ensuite le fichier
while lines[0].strip()[-3:] != 'YES':
time.sleep(0.2)
lines = self.read_temp_raw()
# On cherche le '=' dans la seconde ligne du fichier
equals_pos = lines[1].find('t=')
# Si le '=' est trouvé, on converti ce qu'il y a après le '=' en degrées celcius
if equals_pos != -1:
temp_string = lines[1][equals_pos+2:]
temp_c = float(temp_string) / 1000.0
return temp_c
def read_temp_f(self):
fahrenheit = (self.read_temp_c()*1.8)+32
return fahrenheit
sensor = TemperatureSensor()
while True:
print('la temperature est de : '+ str(sensor.read_temp_c()) +'degré Celsius')
print('la temperature est de : '+ str(sensor.read_temp_f()) +'degré Fahrenheit')
time.sleep(1)
break