3、树莓派-温度采集-DS18B20

电路连接

3、树莓派-温度采集-DS18B20_第1张图片

3、树莓派-温度采集-DS18B20_第2张图片
DS18B20的三根线分别与树莓派引脚连接:

  • 红色是VCC,连树莓派的3.3v和5v引脚都可以;
  • 黑色是GND,连树莓派的GND;
  • 黄色是数据线,这里连树莓派BCM编码的4号引脚。

在VCC和数据线之间,要连接一个4.7K的电阻。

树莓派GPIO引脚示意图:
3、树莓派-温度采集-DS18B20_第3张图片

系统配置

树莓派中使用1-Wire总线方式驱动DS18B20温度传感器,因此需要对树莓派系统进行配置。
启动1-Wire总线:
将MicroSD卡连接到电脑上,编辑分区中的/boot/config.txt文件,在文件末尾添加如下内容:

[all]
#dtoverlay=vc4-fkms-v3d
dtoverlay=w1-gpio,gpiopin=4,pullup=on

w1-gpio表示启动1-Wire总线驱动,
gpiopin=4表示温度传感器的数据线接在了BCM编码的4号GPIO引脚上。

查看设备文件

电路连接好,系统配置好,就可以验证温度传感器工作是否正常了。


pi@raspberrypi:~ $ cd /sys/bus/w1/devices/
pi@raspberrypi:/sys/bus/w1/devices $ ls
28-031697794864  w1_bus_master1

pi@raspberrypi:/sys/bus/w1/devices $ cat 28-031697794864/w1_slave
96 01 55 05 7f a5 a5 66 27 : crc=27 YES
96 01 55 05 7f a5 a5 66 27 t=25375

我们在树莓派的/sys/bus/w1/devices目录下,看到一个名为28-031697794864的目录。这串数值是该温度传感器的ID,如果在GPIO4上连接了多个温度传感器的数据线(黄色),则,这里会出现多个类似名称的目录,分别唯一代表了某个温度传感器。
使用cat命令可以查看其包含的子文件w1_slave中存在温度数据。

使用python库读取

pi@raspberrypi:~ $ sudo apt-get update
pi@raspberrypi:~ $ sudo apt-get install python3-pip
pi@raspberrypi:~ $ pip3 install  w1thermsensor -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

安装完成后,使用如下python代码读取温度(temperature.py):

from w1thermsensor import W1ThermSensor
sensor = W1ThermSensor(W1ThermSensor.THERM_SENSOR_DS18B20, "031697794864")
t = sensor.get_temperature()
print(t)

其中的“031697794864”需要替换为你使用的温度传感器的ID。

代码执行结果:

pi@raspberrypi:~/sensor $ python3 temperature.py
21.75
pi@raspberrypi:~/sensor $ python3 temperature.py
21.875

w1thermsensor更多用法参见GitHub项目文档:
https://github.com/timofurrer/w1thermsensor
访问github或Google慢可考虑使用加速器:http://91tianlu.date/aff.php?aff=3468

参考文章:

https://www.jianshu.com/p/1aeed4cfd431
https://blog.csdn.net/vvbbbbb/article/details/52053293

你可能感兴趣的:(Raspberry)