我正在使用我在网上找到的一些代码来运行覆盆子温度传感器而且我不是最好的编码器

时间:2013-09-25 20:28:27

标签: python raspberry-pi gpio temperature

我正在使用我在网上找到的一些代码来运行覆盆子温度传感器而且我不是最好的编码器,所以我需要你的帮助!

顺便说一句,这是代码


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)

我想做两件事

a)使温度经常更新

b)让它给我的温度不是很长(45.9992919193994949393) (我的父亲,编码员,正在接听商务电话,所以这次他无法帮助我,但他提到了一些关于漂浮物或其他东西但我不知道这意味着什么)

所以,如果有人可以解释如何做这两件令人瞩目的事情。或者,如果你想成为一个神,请注意(或者你在代码中使用BlahBlah时所称的任何内容)整个代码解释每一行的作用以及回答我的两个问题。感谢任何试图提供帮助的人,我真的很感激。

* 奖金: *我想我最终可能会最终尝试绘制数据图,所以如果有人知道如何做到这一点并且可以解释它我将非常高兴。

1 个答案:

答案 0 :(得分:1)

在这一行:

time.sleep(0.2)

您具有读取温度的刷新率(0.2秒)。如果你愿意,可以改变它。

在这一行:

print(read_temp())

输出温度。用这种方式重写:

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

然后,更改之后的数字。更改小数位数(在我的示例中,您将有2个小数点)。

最后,改变:

time.sleep(1)

您可以更改显示刷新率。 猜猜是这样的。