Reputation: 3036
def sendDataToServer():
global temperature
threading.Timer(5.0, sendDataToServer).start()
print("Sensing...")
readSensor()
readCPUTemperature()
temperature = round(temperature, 1)
print(temperature)
print(humidity)
print(pressure)
temp = "%.1f" % temperature
hum = "%.1f" % humidity
press = "%.1f" % pressure
urllib.urlopen("http://www.teema.club/projectweather/add_data.php?temp=" + temp + "&hum=" + hum + "&pr=" + press).read()
sendDataToServer()
This is my Python code which sends some values to a server using a url with some parameters. I need to send this data to server after every 5 seconds. I tried to use a thread but it does not work.
Can anyone tell me is it proper way to do this?
Upvotes: 1
Views: 2388
Reputation: 49774
To run some code on a regular schedule (fixed time interval) you can use time.sleep()
like:
next_time = time.time()
while True:
# do some work here
....
# wait for next interval
next_time += 5
time.sleep(max(0, next_time - time.time()))
def sendDataToServer(temperature, humidity, pressure):
urllib.urlopen(
"http://www.teema.club/projectweather/add_data.php?"
"temp=%.1f&hum=%.1f&pr=%.1f" % (
temperature, humidity, pressure)
).read()
import time
next_time = time.time()
while True:
# Read data
temperature = humidity = pressure = 1.0
# Send data
sendDataToServer(temperature, humidity, pressure)
next_time += 5
time.sleep(max(0, next_time - time.time()))
Upvotes: 1