Interfacing of DS18B20 with Raspberry pi
Connection of DS18B20 with Raspberry pi
You can see there are three terminal
R1 is 4.7k ohm resistance for pulling up the voltage level
Enabling the one-wire interface from the RPi side
Login to Raspberry pi using putty or any other linux/unix terminal.
After login, open the /boot/config.txt file in your favourite browser.
Now add the this line
dtoverlay=w1–gpio to the end of the file.
Now reboot the Raspberry pi
Log in to Raspberry pi, and run
sudo modprobe g1-gpio
sudo modprobe w1-therm
Now go to the directory /sys/bus/w1/devices
Now you will found out a virtual directory created of your temperature sensor starting from 28-********.
Go to this directory
Now there is a file name w1-slave, This file contains the temperature and other information like CRC.
Now write a module in python to read the temperature
import glob import time RATE = 30 sensor_dirs = glob.glob("/sys/bus/w1/devices/28*") if len(sensor_dirs) != 0: while True: time.sleep(RATE) for directories in sensor_dirs: temperature_file = open(directories + "/w1_slave") # Reading the files text = temperature_file.read() temperature_file.close() # Split the text with new lines (\n) and select the second line. second_line = text.split("\n") # Split the line into words, and select the 10th word temperature_data = second_line.split(" ") # We will read after ignoring first two character. temperature = float(temperature_data[2:]) # Now normalise the temperature by dividing 1000. temperature = temperature / 1000 print 'Address : '+str(directories.split('/')[-1])+', Temperature : '+str(temperature)
Above python module will print the temperature vs address for infinite time. RATE parameter is defined to change or adjust the frequency of temperature query from the sensor.
GPIO pin diagram