DS18B20

From Review or Discard at Will
Revision as of 13:14, 5 May 2017 by Jeffa (talk | contribs) (RPi.GPIO version)
Jump to: navigation, search

The DS18B20 digital thermometer provides 9-bit to 12-bit Celsius temperature measurements and has an alarm function with nonvolatile user-programmable upper and lower trigger points.

DS18B20

Pinout

Ds18b20-pinout.jpg DS18B20 Image found here

Resources

DS18B20 data sheet

1-Wire at wikipedia.

Guidelines for Reliable Long Line 1-Wire Networks at Maxim

Raspberry Pi

Schematic

Rpi2-DS18B20.png

Code

RPi.GPIO version

python
import RPi.GPIO as GPIO
GPIO.VERSION


root@rpi2:~# python
Python 2.7.3 (default, Jun 22 2016, 03:14:32)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import RPi.GPIO as GPIO
>>> GPIO.VERSION
'0.6.2'
>>>

Setup 1 wire

# add this line to /boot/config.txt
dtoverlay=w1-gpio

modprobe w1-gpio
modprobe w1-therm

# device directory
cd /sys/bus/w1/devices
ls -l
# cd to your unique DS18B20 identifier
cat w1_slave

Read and display

#!/usr/bin/env python

import time
import os

os.system("/sbin/modprobe w1-gpio")
os.system("/sbin/modprobe w1-therm")

try:
        while True:
                tempfile = open("/sys/bus/w1/devices/28-80000028ac7c/w1_slave")
                thetext = tempfile.read()
                tempfile.close()
                tempdata = thetext.split("\n")[1].split(" ")[9]
                temperature = float(tempdata[2:])
                temperature = 9.0 / 5.0 * (temperature / 1000) + 32
                print temperature

                time.sleep(1)
except KeyboardInterrupt:
        pass


Resources

Simple Guide to the RPi GPIO Header and Pins

BBB

Resources

Arduino

Resources

Brick-Temperature-DS18B20