我在解析这些def函数之间的值时遇到了一些困难。基本代码getSensorData()和main()工作正常,从传感器读取值并发送到thingspeak。但是,我想在原始代码中添加一个名为calcDewPoint()的计算函数,以根据传感器值(RH,T)计算露点,但代码似乎卡住了:/
当我按原样运行代码时,终端的输出:
starting...
sense1
sense2
dewpoint1
gamma1
exiting.
使用树莓Pi和DHT22进行温度/湿度监测。数据显示在thingspeak.com上 更改列表2020年6月2日 添加露点计算
import sys
import RPi.GPIO as GPIO
from time import sleep
import Adafruit_DHT
import urllib2
import math #(using numPy instead of math lib)
#import numPy as np
#import constant (Create a *.py file to be able to use constant accross multiple projects)
#Constant Variables - Magnus Parameters
m = 17.62 #Mass Constant (Water Vapour)
Tn = 243.12 #Tempreture Constant
Ah = 6.112 #hPa Pressure Constant
Ak = 0.611 #kPa Pressure Constant
K = 273.15 #Kelvin constant
Ta = 216.7 #Tempreture Constant
myAPI = 'FZZHL7N2R2AXXXXX'
def getSensorData():
print 'sense1'
RH, T = Adafruit_DHT.read_retry(Adafruit_DHT.DHT22, 17)
print 'sense2'
return (str(RH), str(T))
def calcDewPoint(RH, T):
print 'dewpoint1'
Td = (K * gamma(RH, T)) / (m - gamma(RH, T))
print 'dewpoint2'
return str(Td)
def gamma(RH, T):
print 'gamma1'
g = math.log(RH/100.0) + ((m * T) / (c + T))
print 'gamma2'
return str(g)
def main():
print 'starting...'
baseURL = 'https://api.thingspeak.com/update?api_key=%s' % myAPI
while True:
try:
RH, T = getSensorData() #Call function to Read DHT22 sensor conencted to RaspberryPi
Td = calcDewPoint(RH, T) #Call function to calculate dewpoint
f = urllib2.urlopen(baseURL + "&field1=%s&field2=%s&field3=%s" % (RH, T, Td))
print f.read()
f.close()
sleep(60) #uploads DHT22 sensor values every 1 minutes
except:
print 'exiting.'
break
# call main
if __name__ == '__main__':
main()
一切都运行顺利,代码在调试器中处理异常
但总体而言,它运行良好。我们可以把线合上
您的变量
c
未定义。当您调用calcDewPoint
时,它会调用gamma
,它会尝试运行您的数学表达式。但是,c
在该点不存在相关问题 更多 >
编程相关推荐