#!/usr/bin/python import httplib, urllib import os import glob import time def doit(): def read_B18_Raw(): os.system('modprobe w1-gpio') os.system('modprobe w1-therm') Params = urllib.urlencode({'field1': temp_f, 'key':'my key'}) Headers = {"Content-type": "application/x-www-form-urlencoded","Accept": "text/plain"} conn = httplib.HTTPConnection("api.thingspeak.com:80") base_dir = '/sys/bus/w1/devices/' device_folder = glob.glob(base_dir + '28*')[0] device_file = device_folder + '/w1_slave' f = open(device_file, 'r') lines = f.readlines() f.close() return lines def read_B18(): lines = read_B18_Raw() while lines[0].strip()[-3:] != 'YES': time.sleep(0.2) lines = read_B18_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 "%.1f" % (temp_f) try: conn.request("POST", "/update", params, headers) response = conn.getresponse() print temp_f data = response.read() temp_f = read_temp() conn.close() except: print "connection failed" #sleep for 16 seconds (api limit of 15 secs) if __name__ == "__main__": temp_f = 0 while True: doit() time.sleep(16)