树莓派2代(RaspberryPi2)配合温度传感器DS18B20获取温度

构建这个例子需要下面的零件:

一个树莓派2

一个DS18B20温度传感器

一个4.7K欧的电阻

一些安装线

当然得先让树莓派能够正常工作


DS18B20传感器温度监测范围在-55*C ~ 125*C之间,和三极管的大小和外形差不多,一面圆形一面是平的,平的那一面为正面,从正面看左数第一个引脚为1号引脚,

引脚号|功能

1            接地

2            DQ(数据输入和输出)

3            电源(3v~5v,电源是可选的,因为它使用了被称为一线总线的工业标准,数据输入输出引脚同时可以提供电流)    


树莓派2代的引脚有40个:



树莓派关机,按下图,DS18B20的数据引脚连接树莓派的GPIO 4:


连接好后开机,进入 /sys/bus/w1/devices/ 目录:

# cd /sys/bus/w1/devices

# ls


查看是否存在类似28-021553d46eff这样的文件夹,如果不存在,需要运行下面的命令加载一线总线:

# sudo modprobe w1_gpio

# sudo modprobe w1_therm


如果用的最新的raspbian的镜像,需打开/boot/config.txt ,在最后一行手动添加这个:dtoverlay=w1-gpio-pullup,gpiopin=4,保存后重启树莓派


这时进入 /sys/bus/w1/devices/再看看类似28-021553d46eff的文件夹是否出现了,如果还是没出现,应该检测一下连接线是否都连对了。


如果一切顺利,28-021553d46eff文件夹已经出现了,运行下面命令就可以查看:

# cat 28-021553d46eff/w1_slave

最后一行 t=30289 ,除以1000就是当前的温度了。


写一个脚本便于读数:

# nano temperature.py

内容是:

tfile = open("/sys/bus/w1/devices/28-021553d46eff/w1_slave")
text = tfile.read()
tfile.close()
secondline = text.split("\n")[1]
temperaturedata = secondline.split(" ")[9]
temperature = float(temperaturedata[2:])
temperature = temperature / 1000
print temperature, "*C"

按ctrl+o保存,回车,ctrl+x退出编辑,输入下面命令:

# sudo chmod u+x temperature.py

# sudo ./temperature.py


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值