Skip to content

Instantly share code, notes, and snippets.

@jasonhejna
Last active September 13, 2015 13:24
Show Gist options
  • Save jasonhejna/3b4cff4f1a12e60a0a9f to your computer and use it in GitHub Desktop.
Save jasonhejna/3b4cff4f1a12e60a0a9f to your computer and use it in GitHub Desktop.
raspberry pi window control
#import urllib2
from httplib2 import Http
from urllib import urlencode
import RPi.GPIO as GPIO
from time import sleep
import os
import glob
import json
os.system('modprobe w1-gpio')
os.system('modprobe w1-therm')
base_dir = '/sys/bus/w1/devices/'
device_folder = glob.glob(base_dir + '28*')[0]
device_file = device_folder + '/w1_slave'
def read_temp_raw():
f = open(device_file, 'r')
lines = f.readlines()
f.close()
return lines
def read_temp():
lines = read_temp_raw()
while lines[0].strip()[-3:] != 'YES':
time.sleep(0.2)
lines = read_temp_raw()
equals_pos = lines[1].find('t=')
if equals_pos != -1:
temp_string = lines[1][equals_pos+2:]
temp_c = float(temp_string) / 1000.0
temp_f = temp_c * 9.0 / 5.0 + 32.0
return temp_f
#instantiate GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setup(22, GPIO.OUT)
while True:
temp = read_temp()
print temp
#http://expressthing.herokuapp.com
h = Http()
#data = '{"status":"unknown","tempf":"'+str(temp)+'"}'
data = dict('status'="unknown", 'tempf'=str(temp))
#print urlencode(data)
#resp, content =h.request("https://expressthing.herokuapp.com", "POST", urlencode()
print data
resp, content = h.request("http://expressthing.herokuapp.com/api/temp", "POST", urlencode(data))
print resp
content_json = json.loads(content)
print content_json['windowStatus']
if content_json['windowStatus'] == 'opened':
GPIO.output(22,True)
#print 'its open'
else:
GPIO.output(22,False)
#print 'its closed'
sleep(3)
GPIO.cleanup()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment