文档章节

Raspberry Pi 使用DS18B20温度传感器

罗布V
 罗布V
发布于 2017/05/29 23:05
字数 475
阅读 89
收藏 2

DS18B20 温度传感器

最近心血来潮的想要折腾raspberry,所以就买了一堆的传感器,现在主要讲解温度传感器的使用。

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

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

为了能够让系统正确的识别传感器,我们需要对**/boot/config.txt**文件进行编辑

sudo vim /boot/config.txt

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

dtoverlay=w1-gpio,gpiopin=4

添加完成之后我们重启raspberry

sudo reboot

重启完成之后我们需要进行/sys/bus/w1/devices目录

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)

© 著作权归作者所有

共有 人打赏支持
罗布V
粉丝 13
博文 60
码字总数 47114
作品 0
温州
程序员
用树莓派和DS18B20做个汽车温度记录仪[原创]

用树莓派和DS18B20做个汽车温度记录仪[原创] 很想知道夏日阳光暴晒下,汽车内的最高温度以及温度的变化情况。觉得用树莓派和DS18B20来实现应该很简单,于是就尝试捣鼓了一下,半天时间就搞定...

helesheng
08/01
0
0
将边缘分析集成到 IoT 解决方案中

分析边缘的传感器数据来预防干草堆火灾 系列内容: 此内容是该系列 # 部分中的第 # 部分: 网络边缘的 IoT,第 2 部分 此内容是该系列的一部分:网络边缘的 IoT,第 2 部分 敬请期待该系列的...

Ori Pomerantz
05/29
0
0
Raspberry Pi 开箱报告

淘宝网购的Raspberry Pi到货了,是中国版的。同时还购买了一个USBwifi网卡,一个5V2A的适配器,一张8GClass10的SD卡,一个20000mAh的移动电源能提供5V2A输出,一个黄色外壳。 店家将资料放在...

JonL
2013/01/08
0
1
5 个帮助您加速 IoT 开发的流行 IoT 开发工具包

IoT 开发工具包是专为快速开发 IoT 解决方案而设计的硬件工具包。开发工具包将一个微控制器或单板计算机和兼容的组件捆绑在一起,您可以使用它们设计 IoT 设备的原型。IoT 开发工具包通常包含...

developerWorks中国
2017/11/23
0
0
[MicroPython]stm32f407控制DS18B20检测温度

1.实验目的 1. 学习在PC机系统中扩展简单I/O 接口的方法。 2. 进一步学习编制数据输出程序的设计方法。 3. 学习DS18B20的接线方法,并利用DS18B20检测当前温度。 2.所需元器件 F407Micropyt...

bodasisiter
08/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

InvalidKeyException: Illegal key size

Caused by: java.lang.RuntimeException: java.security.InvalidKeyException: Illegal key size 解决方案:去官方下载JCE无限制权限策略文件。 jdk 5: http://www.oracle.com/technetwork/j......

自由的开源
15分钟前
0
0
JAVA秒杀实现以及优化原理

秒杀与其他业务最大的区别在于:秒杀的瞬间, (1)系统的并发量会非常的大 (2)并发量大的同时,网络的流量也会瞬间变大。 关于(2),最常用的办法就是做页面静态化,也就是常说的前后端分...

小贱是个程序员
19分钟前
1
0
Spring Aop之Advisor解析

在上文Spring Aop之Target Source详解中,我们讲解了Spring是如何通过封装Target Source来达到对最终获取的目标bean进行封装的目的。其中我们讲解到,Spring Aop对目标bean进行代理是通过Ann...

爱宝贝丶
21分钟前
0
0
Java高级工程师面试阿里,阿里云,天猫,菜鸟,涉及到的知识点

前言: 分享 Java高级工程师面试阿里,阿里云,天猫,菜鸟,涉及到的知识点,文章有点长,但比较全面,阅读时间15分钟左右,干货满满。 一、HashMap的那些事 1.1、HashMap的实现原理 1.1.1、...

Java大蜗牛
46分钟前
2
0
nginx模块学习五 expires 浏览器缓存

缓存原理 语法 Syntax: expires [modified] time;expires epoch | max | off;Default: expires off;Context: http,server,location,if in location 例/etc/nginx/conf.d/default.con......

Romanceling
57分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部