树莓派实现DS18B20
时间: 2025-06-01 13:18:57 浏览: 20
### 树莓派 DS18B20 温度传感器 使用教程
#### 配置树莓派支持 1-Wire 总线
为了使用 DS18B20 温度传感器,首先需要启用树莓派上的 1-Wire 接口。可以通过运行 `raspi-config` 工具来完成此操作[^4]。
```bash
sudo raspi-config
```
进入菜单后,选择 **Interfacing Options** -> **1-Wire** 并将其启用。完成后重启设备:
```bash
sudo reboot
```
#### 连接硬件电路
DS18B20 是一种单总线温度传感器,通常有三个引脚:VDD、GND 和 DQ。将这些引脚按照以下方式连接到树莓派上:
- VDD (电源) → GPIO 的 3.3V 引脚。
- GND (接地) → GPIO 地址中的任意一个 GND 引脚。
- DQ (数据线) → GPIO 4 引脚,并在 DQ 和 VDD 之间接入一个 4.7kΩ 上拉电阻以确保稳定的数据传输。
#### 安装必要的软件包
安装用于处理 1-Wire 设备的驱动程序以及 Python 库以便于编程交互。执行以下命令安装所需依赖项:
```bash
sudo apt-get update
sudo apt-get install python3-pip git
pip3 install w1thermsensor
```
上述命令会更新系统包列表并安装 pip 软件管理工具和第三方库 `w1thermsensor` 来简化对 DS18B20 数据的操作过程[^3]。
#### 编写 Python 程序读取温度
下面是一个简单的 Python 示例代码展示如何利用 `w1thermsensor` 模块获取当前环境下的摄氏温度值:
```python
from w1thermsensor import W1ThermSensor, Sensor
try:
# 初始化指定类型的温感器实例
sensor = W1ThermSensor(Sensor.DS18B20)
while True:
try:
temperature_celsius = sensor.get_temperature()
print(f"Current Temperature: {temperature_celsius:.2f}°C")
except Exception as e:
print("Error reading from sensor:", str(e))
finally:
del sensor
```
以上脚本创建了一个名为 `sensor` 的对象代表实际物理存在的 DS18B20 器件;接着循环调用其方法不断打印实时测量得到的结果直到手动终止程序为止。
#### 测试与验证
当一切设置完毕之后,在终端里启动刚才保存下来的 .py 文件看看能否正常显示出房间内的空气温度变化情况。如果遇到任何异常状况,则需仔细检查线路连接是否牢固无误或者重新加载内核模块试试看。
```bash
modprobe w1-gpio
modprobe w1-therm
ls /sys/bus/w1/devices/
```
最后确认 `/sys/bus/w1/devices/` 下面出现了类似于 `28-XXXXXXXXXXXXX` 的文件夹即表明识别成功[^2]。
---
阅读全文
相关推荐


















