Raspberry Pi 使用DS18B20温度传感器

DS18B20 温度传感器

最近心血来潮的想要折腾raspberry,因此就买了一堆的传感器,如今主要讲解温度传感器的使用。python

![屏幕快照 2017-05-29 下午10.31.39](http://7xrkms.com1.z0.glb.clouddn.com/屏幕快照 2017-05-29 下午10.31.39.png)vim

Pin1(GND)接到 P1-06(GND) Pin2(DQ)接到 P1-07(GPIO4) Pin3(VCC)接到P1-01(3.3v)命令行

为了可以让系统正确的识别传感器,咱们须要对**/boot/config.txt**文件进行编辑code

sudo vim /boot/config.txtorm

在文件的未必添加下面的语句ip

dtoverlay=w1-gpio,gpiopin=4get

添加完成以后咱们重启raspberryit

sudo rebootio

重启完成以后咱们须要进行/sys/bus/w1/devices目录form

cd /sys/bus/w1/devices

经过调用ls命令,咱们发现这个目录会有相似28-0416b3b833ff这样的一个目录,这个目录名称并是你传感器的ID,.在目录下面会有一个w1_slave文件,咱们经过调用 cat命令能够读取到传感器的实时数据。

cd 28-0416b3b833ff ls cat w1_slave

完整的命令以下图所示 ![屏幕快照 2017-05-29 下午10.42.01](http://7xrkms.com1.z0.glb.clouddn.com/屏幕快照 2017-05-29 下午10.42.01.png) 其中t=30312是我实际测量到温度值,在上面的图中的温度为30.312度

同时咱们能够利用python脚原本读取数据

#!/usr/bin/python
def gettemp(id):
  try:
    mytemp = ''
    filename = 'w1_slave'
    f = open('/sys/bus/w1/devices/' + id + '/' + filename, 'r')
    line = f.readline() # read 1st line
    crc = line.rsplit(' ',1)
    crc = crc[1].replace('\n', '')
    if crc=='YES':
      line = f.readline() # read 2nd line
      mytemp = line.rsplit('t=',1)
    else:
      mytemp = 99999
    f.close()
 
    return int(mytemp[1])
 
  except:
    return 99999
 
if __name__ == '__main__':
 
  # Script has been called directly
  id = '28-0416b3b833ff'
  print "Temp : " + '{:.3f}'.format(gettemp(id)/float(1000))

咱们经过命令行调用,获得如相似下面的结果

![屏幕快照 2017-05-29 下午10.48.50](http://7xrkms.com1.z0.glb.clouddn.com/屏幕快照 2017-05-29 下午10.48.50.png)

相关文章
相关标签/搜索