在树莓派上使用1wire器件DS18B20(温度传感器)读取温度!!!!
今天是了一下1wire(1线)器件的读取,没有问题,写个简单的教程帮助有需要的童鞋吧!1.准备工作:
树莓派
树莓派串口扩展版http://www.shumeipai.net/thread-466-1-2.html
wheezy版debian系统
DS18B20温度传感器模块
2.安装1 wire驱动
用root登录,执行以下命令:
cd /boot
wget http://www.frank-buss.de/raspberrypi/kernel-rpi-w1.tgz
tar -xzf kernel-rpi-w1.tgz
rm -f kernel-rpi-w1.tgz
cd /lib/modules
wget http://www.frank-buss.de/raspberrypi/modules-rpi-w1.tgz
tar -xzf modules-rpi-w1.tgz
rm -f modules-rpi-w1.tgz
sync
reboot
3.连接DS18B20温度传感器到树莓派上
DS18B20一共三个管脚:VCC,D0,GND
D0需要连接到树莓派的GPIO7
使用串口扩展版就简单一点
直接将DS18B20一共三个管脚:VCC,D0,GND 分别连接到串口扩展版D7这一组就行了
4.读取温度
root登录,输入
root@raspberrypi:~# modprobe w1-gpio
然后输入
root@raspberrypi:~# ls /sys/bus/w1/devices/w1\ bus\ master
可以看到以下信息,其中“28-000003e08db6”就是温度传感器
最后读取温度,输入
root@raspberrypi:~# cat /sys/bus/w1/devices/w1\ bus\ master /28-*/w1_slave
得到log信息如下:
其中t=25375,t除以100就温度值25.375摄氏度 技术贴顶起来了。 沙发被抢了 哇,赞美技术贴~这个挺好的呀 好东西,帮顶!分享个自己写的读取温度小程序。
import os
import re
class ds18b20:
path = "/sys/bus/w1/devices/"
def __init__(self):
pattern = re.compile(r'''
(^\\d{2}) #
(-)
''',re.VERBOSE)
lines = os.popen("ls "+ self.path).readlines()
for line in lines:
l = pattern.search(line)
if not l is None:
self.path = '%s%s/%s' % (self.path,l.string[:-1],"w1_slave")
def get_temperature(self):
lines = os.popen("cat "+ self.path).readlines()
pattern = re.compile(r'''
(t=\\d{5})
''',re.VERBOSE)
for line in lines:
l = pattern.search(line)
if not l is None:
vaule = line
return float(vaule)/1000
return None
if __name__ == "__main__":
ds = ds18b20()
print ds.get_temperature() 好贴子要多顶
好贴子要多顶
装了这个驱动之后,好像cat /sys/class/thermal/thermal_zone0/temp查CPU温度就不管用了啊 其中t=25375,t除以100就温度值25.375摄氏度
应该除以一千吧。 利用这个实例,是否可以diy环境噪音实时监测,然后把数据上传到Yeelink网站?
页:
[1]
2