我以前问过关于这个项目的问题。我快做完了,但我还需要一件事。这是关于水管里的水溢出。它从两个温度传感器读取数据,并计算温差。如果差异正常或需要采取措施,则应在一定数量的测量后通过电子邮件通知。到目前为止,我已经设法在一次测量后发送了一封电子邮件。但是温度差在管道中并不少见,所以我想在一定数量的测量之后通知大家。这就是我到目前为止所做的:
def aflaes_raa_data():
f1 = open(fil1, "r")
f2 = open(fil2, "r")
linjer1 = f1.readlines()
f1.close()
linjer2 = f2.readlines()
f2.close()
return linjer1, linjer2
def udregn_temp(raw):
equals_pos = raw[1].find("t=")
if equals_pos != -1:
temp_string = raw[1][equals_pos + 2:]
temp_c = float(temp_string) / 1000.0
return temp_c
def aflaes_temp():
linjer1, linjer2 = aflaes_raa_data()
while linjer1[0].strip()[-3:] != "YES":
time.sleep(0.2)
linjer1, linjer2 = aflaes_raa_data()
temp1 = udregn_temp(linjer1)
temp2 = udregn_temp(linjer2)
return "Sensor 1: %d" % temp1 + " grader", "Sensor 2: %d" % temp2 + " grader"
def temp_diff():
linjer1, linjer2 = aflaes_raa_data()
temp1, temp2 = udregn_temp(linjer1), udregn_temp(linjer2)
print("Temperaturforskellen er: ")
return abs(temp1-temp2)
def send_mail(afsender, password, modtager, emne, email_tekst):
if 0 < temp_diff() < 4:
send_mail("something@gmail.com", "password", "something@gmail.com", "Besked fra din vandmåler",
"Afløbsrør: Temperaturforskellen er lige nu %d, og er højere end grænsen . Handling påkrævet!" % (
temp_diff()))
else:
send_mail(EMAIL_FROM, PASSWORD, EMAIL_TO, "Besked fra din vandmåler",
"Afløbsrør: "
"Temperaturforskellen "
"er lige nu "
"%d, og er på tæt på 0" % (temp_diff()))
while True:
print(aflaes_temp())
print(temp_diff())
time.sleep(2)
我试过使用for循环
for i in range(10):
if 0 < temp_diff() < 4:
send_mail("something@gmail.com", "password", "something@gmail.com", "Besked fra din vandmåler",
"Afløbsrør: Temperaturforskellen er lige nu %d, og er højere end grænsen . Handling påkrævet!" % (
temp_diff()))
else:
send_mail("something@gmail.com", "password", "something@gmail.com", "Besked fra din vandmåler",
"Afløbsrør: "
"Temperaturforskellen "
"er lige nu "
"%d, og er på tæt på 0" % (temp_diff()))
和一个嵌套循环
for i in range(10):
aflaes_temp()
for n in range(1):
if 0 < temp_diff() < 4:
send_mail("something@gmail.com", "password", "something@gmail.com", "Besked fra din vandmåler",
"Afløbsrør: Temperaturforskellen er lige nu %d, og er højere end grænsen . Handling påkrævet!" % (
temp_diff()))
else:
send_mail("something@gmail.com", "password", "something@gmail.com", "Besked fra din vandmåler",
"Afløbsrør: "
"Temperaturforskellen "
"er lige nu "
"%d, og er på tæt på 0" % (temp_diff()))
但是我只得到了几次temp_diff
的输出,然后是一封电子邮件。我在互联网上到处找过,但我只能找到运行函数n次的例子
如果我正确理解了您的问题,您不需要立即发送电子邮件,而是希望观察3-4个测量值。根据这个测量,你需要做出决定
有很多方法可以实现。我提供了一个解决方案,您将监视
theSampleCount
个测量值,并获取样本的median
。如果中值在范围内,则可以发送电子邮件这是完整的代码
相关问题 更多 >
编程相关推荐