Home Code DS18b20 python example

DS18b20 python example

by shedboy71

This is follow on from the DS18b20 terminal example at http://www.pibits.net/learning/120.php , this time a python example

Code

import os                                               
import glob                                            
import time                                              
 
os.system('modprobe w1-gpio')                              #load one wire communication device kernel modules
os.system('modprobe w1-therm')                                                 
base_dir = '/sys/bus/w1/devices/'                          #point to the address
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=')                        #find temperature
   if equals_pos != -1:
      temp_string = lines[1][equals_pos+2:]
      temp_c = float(temp_string) / 1000.0              
      return temp_c
 
while True:
   print(read_temp())                                      #Print temperature    
   time.sleep(1)

 

You should see something like

ds18b20 output

ds18b20 output

You may also like

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More