Until this month, my outdoor DHT22 temperature/humidity monitor has been working fine. However, with the cold weather, and temperatures now sub-zero, I've noticed that my routine is failing to handle negative temperatures - instead they are represented as being positive: the sign has been lost.
I've adjusted my re.search routine to include negative numbers where previously they were excluded,
# Continuously append data
while(True):
# Run the DHT program to get the humidity and temperature readings!
# DHT22 (Credit to Adafruit)
output = subprocess.check_output(["/home/pi/scripts/DHT/Adafruit_DHT", "22", "25"]);
rasp = subprocess.check_output(["vcgencmd", "measure_temp"])
print output
matches = re.search("Temp =\s+-([0-9.]+)", output)
if (not matches):
time.sleep(3)
continue
tempa = float(matches.group(1))
print tempa
When I
print output
a string is produced containing the negative temperature.
However, when I
print tempa
it displays as a positive number.
I need to be able to carry the sign into the variable, as temperatures could be either positive or negative (even in a UK winter).
Can anyone help?