Difference between revisions of "DS18B20"
(add notes from the field) |
(→Resources: add waveshare link) |
||
(One intermediate revision by the same user not shown) | |||
Line 11: | Line 11: | ||
===[https://en.wikipedia.org/wiki/1-Wire 1-Wire] at wikipedia.=== | ===[https://en.wikipedia.org/wiki/1-Wire 1-Wire] at wikipedia.=== | ||
===[https://www.maximintegrated.com/en/app-notes/index.mvp/id/148 Guidelines for Reliable Long Line 1-Wire Networks] at Maxim=== | ===[https://www.maximintegrated.com/en/app-notes/index.mvp/id/148 Guidelines for Reliable Long Line 1-Wire Networks] at Maxim=== | ||
+ | ===[http://www.waveshare.com/wiki/Raspberry_Pi_Tutorial_Series:_1-Wire_DS18B20_Sensor Raspberry Pi Tutorial Series: 1-Wire DS18B20 Sensor]=== | ||
===Notes from the field=== | ===Notes from the field=== | ||
Line 24: | Line 25: | ||
import RPi.GPIO as GPIO | import RPi.GPIO as GPIO | ||
GPIO.VERSION | GPIO.VERSION | ||
− | |||
root@rpi2:~# python | root@rpi2:~# python | ||
Line 43: | Line 43: | ||
modprobe w1-gpio | modprobe w1-gpio | ||
modprobe w1-therm | modprobe w1-therm | ||
+ | lsmod | grep w1 | ||
# device directory | # device directory | ||
Line 77: | Line 78: | ||
</source> | </source> | ||
− | |||
===Resources=== | ===Resources=== |
Latest revision as of 17:46, 7 May 2017
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
Resources
DS18B20 data sheet
1-Wire at wikipedia.
Guidelines for Reliable Long Line 1-Wire Networks at Maxim
Raspberry Pi Tutorial Series: 1-Wire DS18B20 Sensor
Notes from the field
When I added a DS18B20 on about 75 feet of Cat 5e I changed out the pullup resistor from 4.7k to a 1k. I put signal and ground in one pair, and power on a single wire of another pair.
Raspberry Pi
Schematic
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
lsmod | grep w1
# 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