树莓派2上使用DS18B20读取温度完整指南
欢迎!本指南演示如何将DS18B20数字温度传感器连接到树莓派2,并准确读取室温。
所需材料
- DS18B20防水传感器(在线购买)
- 4.7 kΩ上拉电阻(黄-紫-红-金)
- 杜邦线
- 树莓派2(任意带GPIO的型号)
步骤1:传感器接线
DS18B20使用1-Wire接口,按如下连接:
- 红线(VDD)→ 树莓派3.3V引脚
- 黑线(GND)→ 树莓派接地引脚
- 黄线(DQ)→ GPIO 4(物理引脚7)
在3.3V线和DQ线之间接入4.7 kΩ电阻作为上拉。电阻的“3.3V”端应接触红色(VDD)侧。
步骤2:启用1-Wire接口
- 编辑启动配置文件:
sudo nano /boot/config.txt
- 添加或取消注释:
dtoverlay=w1-gpio
- 保存退出,重启:
sudo reboot
步骤3:加载内核模块
重启后加载1-Wire驱动:
sudo modprobe w1-gpio sudo modprobe w1_therm
步骤4:验证传感器检测
检查设备树中的传感器ID:
ls -l /sys/bus/w1/devices/
应看到以28-开头的文件夹,如28-000006dfa76c。
步骤5:读取温度
每个传感器通过w1_slave暴露数据:
cat /sys/bus/w1/devices/28-000006dfa76c/w1_slave
输出包含两行;第二行以t=XXXXX结尾,XXXXX为千分之一度摄氏度。例如t=23450等于23.450°C。
进阶:Python脚本解析数值
快速Python片段将原始读数转换为°C:
#!/usr/bin/env python3
import time, glob
sensor = glob.glob('/sys/bus/w1/devices/28-*/w1_slave')[0]
while True:
with open(sensor, 'r') as f:
lines = f.readlines()
if lines[0].strip().endswith('YES'):
temp_raw = lines[1].split('t=')[1]
temp_c = float(temp_raw) / 1000.0
print(f"Temperature: {temp_c:.3f} °C")
else:
print("Reading error")
time.sleep(2)
保存为temp_read.py,赋予执行权限并运行,即可获得实时温度更新。
按此步骤操作,您将在树莓派2上运行可靠的温度监测。
深入了解请参考Adafruit DS18B20指南。
制造工艺
- 集成二维码、RFID与体温验证的门禁控制系统
- 树莓派+$5 I²C传感器打造温度记录仪
- 树莓派温度画像:Python+SQLite+LabVIEW实战
- 树莓派多路DS18B20 1-Wire温度监测:接线与编程全指南
- 树莓派温湿度网络监测站DIY全指南
- 树莓派专业温度监测:基于 DS18B20 传感器的完整指南
- 树莓派结合 Maxim 1-Wire 传感器与 DS2482 I2C 桥接器的多点温度测量
- 树莓派与 Python 构建远程温度传感器:分步实战指南
- 树莓派配合 EzTemp 实现无缝温湿度监测
- 树莓派精准监测机柜温度:DS18B20 多点部署实战
- 树莓派 I2C 接口 BMP085:高精度温度与气压读取
- 树莓派 GPIO 直连 DS1820 单总线温度传感器指南