#!/usr/bin/python

import os
import glob
import time
import datetime
import RPi.GPIO as GPIO

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'
output_file = '/home/pi/Desktop/Temp/Temp01.txt'

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
		return temp_c

def write_to_file(temp, myTime):
	f = open(output_file, 'a')
	f.write("[" + str(myTime) + "] Temperature: " + str(temp) + "\n")
	f.close()
	
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(17, GPIO.OUT)

while True:
	GPIO.output(17, GPIO.HIGH)
	myTime = datetime.datetime.now().strftime("%H:%M:%S")
	write_to_file(read_temp(), myTime)
	GPIO.output(17, GPIO.LOW)
	time.sleep(300)
	
GPIO.output(17, GPIO.LOW)