2013-09-25 6 views
0

Я использую код, который я нашел в Интернете, чтобы запустить датчик температуры малины pi, и я не самый лучший кодер, поэтому мне нужна ваша помощь!Я использую код, который я нашел в Интернете, чтобы запустить датчик температуры малины pi, и я не лучший кодер

Это код, кстати


import os 
import glob 
import time 

os.system('modprobe w1-gpio') 
os.system('modprobe w1-therm') 

base_dir = '/sys/bus/w1/devices/' 
device_folder = glob.glob(base_dir + '28*')[0] 
device_file = device_folder + '/w1_slave' 

def read_temp_raw(): 
    f = open(device_file, 'r') 
    lines = f.readlines() 
    f.close() 
    return lines 

def read_temp(): 
    lines = read_temp_raw() 
    while lines[0].strip()[-3:] != 'YES': 
     time.sleep(0.2) 
     lines = read_temp_raw() 
    equals_pos = lines[1].find('t=') 
    if equals_pos != -1: 
     temp_string = lines[1][equals_pos+2:] 
     temp_c = float(temp_string)/1000.0 
     temp_f = temp_c * 9.0/5.0 + 32.0 
     return temp_c, temp_f 

while True: 
    print(read_temp()) 
    time.sleep(1) 

Im пытается сделать две вещи

а) Сделать так что температура обновляется очень часто

б) Сделайте так, чтобы температура, которая мне дала, не была смехотворно длинной (45.9992919193994949393) (My d ad, кодер, он не может помочь мне на этот раз, но он упомянул что-то о плавающих или что-то в этом роде, но я не знаю, что это значит)

Так что если кто-то может объяснить, как это сделать эти две вещи, которые были бы впечатляющими. Или, если вы хотите быть богом, обратите внимание (или как вы это называете, когда вы // BlahBlah в коде) весь код, объясняющий, что каждая строка делает, а также ответить на мои два вопроса. Спасибо за каждого, кто пытается помочь, я действительно ценю это.

* Бонус: * Думаю, я, вероятно, в конечном итоге попытаюсь графически отобразить данные, поэтому, если кто-то знает, как это сделать, и мог бы объяснить это, я был бы ОЧЕНЬ счастлив.

+0

Возможно, вы получите лучший ответ на @ http://raspberrypi.stackexchange.com/ –

ответ

1

В этой строке:

time.sleep(0.2) 

Вы частоту обновления (0.2S) от чтения температуры. Измените его, если вам это нравится.

В этой строке:

print(read_temp()) 

Вы выходной температуры. Перепишите это следующим образом:

print("%.2f" % read_temp()) 

Затем измените номер после. для изменения числа десятичных знаков (в моем примере у вас будет 2 десятичных точки).

И, наконец, изменение:

time.sleep(1) 

Вы можете изменить частоту обновления экрана. Угадайте, что он.