0
我有一个python脚本轮询5个温度传感器,并通过http发布结果给mysql。其中一个传感器的精度不如其他4,因此我想在发布到数据库之前通过将其乘以1.02来修改avgtemperatures [2]。操作Python int /字符串
如何在系列中修改传感器int/string?
import requests
import hashlib
import time
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
sensorids = ["28-05168023f3ee", "28-0516803623ee", "28-0416807d93ee", "28-0516801a63ee", "28-0516801b03ee"]
avgtemperatures = []
for sensor in range(len(sensorids)):
temperatures = []
for polltime in range(0,3):
text = '';
while text.split("\n")[0].find("YES") == -1:
tfile = open("/sys/bus/w1/devices/"+ sensorids[sensor] +"/w1_slave")
text = tfile.read()
tfile.close()
time.sleep(1)
secondline = text.split("\n")[1]
temperaturedata = secondline.split(" ")[9]
temperature = float(temperaturedata[2:])
temperatures.append(temperature/1000)
avgtemperatures.append(sum(temperatures)/float(len(temperatures)))
print avgtemperatures[0]
print avgtemperatures[1]
print avgtemperatures[2]
print avgtemperatures[3]
print avgtemperatures[4]
session = requests.Session()
nonce = session.get(url='http://server.local/saveTemp.php?step=nonce').text
response = hashlib.sha256(nonce + 'password' + str(avgtemperatures[0]) + str(avgtemperatures[1]) + str(avgtemperatures[2]) + str(avgtemperatures[3]) + str(avgtemperatures[4])).hexdigest()
post_data = {'response':response, 'temp1':avgtemperatures[0], 'temp2': avgtemperatures[1], 'temp3': avgtemperatures[2], 'temp4': avgtemperatures[3], 'temp5': avgtemperatures[4]}
post_request = session.post(url='http://server.local/saveTemp.php', data=post_data)
if post_request.status_code == 200 :
print post_request.text
感谢。这很好,让我可以根据需要轻松调整其他传感器。 – Harri