Python Scripts: Difference between revisions

Line 975:
*Need to register a account & get API Key from http://openweathermap.org
*Need to register a account & get API Key from http://thingspeak.com
 
== Upload Temperature ==
 
<syntaxhighlight lang="py>
Line 1,014 ⟶ 1,016:
# Wait for 10 minutes
sleep(600)
</syntaxhighlight>
 
== Bulk Upload Parameters ==
 
<syntaxhighlight lang="py>
import socket
import json
from time import strftime,localtime,sleep
import requests
 
# Fetch Temperature from openweathermap.org
def weather():
s = socket.socket()
addr = socket.getaddrinfo('api.openweathermap.org', 80)
s.connect(addr[0][4])
s.send(b'GET http://api.openweathermap.org/data/2.5/weather?q=Bangalore&units=metric&appid=84d996853fcc4db149bc40acb09a3ef7 HTTP/1.0\r\n\r\n')
html = s.recv(1000)
s.close()
div = html.split(b'\r\n\r\n')[-1]
data = json.loads(div.decode('utf-8'))
return data
 
def thing():
# Call weather function
data = weather()
temp = data['main']['temp']
pres = data['main']['pressure']
hum = data['main']['humidity']
vis = int(data['visibility'])/1000
speed = data['wind']['speed']
try:
dir = data['wind']['deg']
except KeyError:
dir = 0
ctime = strftime("%Y-%m-%d %H:%M:%S +0530", localtime())
print("Data Fetched @",ctime,":","Temp(C)=",temp,"\xb0C","Press(hPa)=",pres,"Hum(%)=",hum,"Vis(Km)=",vis,"Speed(m/s)=",speed,"Dir(deg)=",dir)
# Upload Temperature Data to thingspeak.com
payload = {"write_api_key":"G97NZS1XWXCS798C","updates":[{"created_at":ctime,"field1":temp,"field2":pres,"field3":hum,"field4":vis,"field5":speed,"field6":dir}]}
url = 'https://api.thingspeak.com/channels/396314/bulk_update.json'
headers = {'content-type': 'application/json'}
response = requests.post(url, data=json.dumps(payload), headers=headers)
return response
 
while True:
response = thing()
 
# Check if logged data successfully
if response.status_code == 202:
print("Data successfully uploaded :", response.status_code)
else:
print("HTTP Error Code:", response.status_code)
 
# Wait for 10 minutes
sleep(600)
</syntaxhighlight>