前面我们学了感知姿态(倾斜传感器)、感知震动(震动传感器)——今天再来给ESP32装上一个新感官:感知温度。
无论是智能温控风扇、温室大棚监测,还是热水器温度显示、电脑CPU温度预警,都离不开温度传感器。今天要学习的DS18B20,就是其中最经典的一款。
它精度高、接线简单,最关键的是——多个传感器可以共用一根数据线!这在需要多点测温的场景中非常实用。
今天这节课,就带大家用DS18B20测出当前环境的实时温度。
第一步:找到课程,看看成品效果
打开逗脑编程,点击顶部 “文档”,在 “课程”→ “ESP32”→ “ESP32 + MicroPython” 分类下,找到温度传感器DS18B20。

打开课件,你会看到本节课的最终效果:终端面板不停地打印当前温度,用手捏住传感器,温度数值会快速上升——反应非常灵敏!

第二步:什么是DS18B20?
DS18B20是美国DALLAS半导体公司推出的一款温度传感器,它最大的特点是采用 “一线总线”接口——只需要1根数据线就能与微处理器通信。

核心参数:
| 参数 | 指标 |
|---|---|
| 测温范围 | -55℃ ~ +125℃ |
| 测量精度 | ±0.5℃(-10℃ ~ +85℃范围内) |
| 分辨率 | 9~12位(最高0.0625℃) |
| 接口 | 一线总线(只需1根数据线) |
| 供电 | 3.0V ~ 5.5V |
最大的亮点: 多个DS18B20可以并联在同一根数据线上,每个传感器都有唯一的64位ROM地址,ESP32可以分别读取每个传感器的温度——非常适合多点测温场景。
第三步:动手接线——就3根线!
DS18B20通常有三种引脚排列,最常见的是TO-92封装(像三极管一样):
| 传感器引脚 | 连接ESP32 | 说明 |
|---|---|---|
| VDD(红线) | 3.3V | 电源正极 |
| GND(黑线) | GND | 电源负极 |
| DQ(黄/白线) | GPIO13 | 数据线(一线总线) |

📌 关于上拉电阻:
DS18B20的数据线需要接一个4.7KΩ上拉电阻到3.3V。好消息是——很多DS18B20模块已经集成了这个电阻,直接接线就能用。如果你用的是裸元件,记得在DQ和VDD之间接一个4.7KΩ电阻。
第四步:代码——MicroPython内置支持!
MicroPython自带了onewire和ds18x20库,不用自己写底层驱动。
from machine import Pin
import onewire, ds18x20
import time
# 定义数据引脚
ds_pin = Pin(13)
# 创建DS18B20传感器对象
ds_sensor = ds18x20.DS18X20(onewire.OneWire(ds_pin))
def read_ds_sensor():
# 扫描总线上的所有DS18B20设备
roms = ds_sensor.scan()
print('发现设备: ', roms)
# 发起温度转换
ds_sensor.convert_temp()
# 读取每个设备的温度
for rom in roms:
temp = ds_sensor.read_temp(rom)
if isinstance(temp, float):
temp = round(temp, 2) # 保留两位小数
return temp
return None
while True:
temp = read_ds_sensor()
if temp is not None:
print(f"当前温度: {temp}℃")
else:
print("未检测到传感器!")
time.sleep(1)
代码逻辑:
| 步骤 | 说明 |
|---|---|
| 1 | 扫描总线,查找DS18B20设备 |
| 2 | 发起温度转换(convert_temp) |
| 3 | 读取温度值 |
| 4 | 保留两位小数并返回 |
第五步:保存运行,看实时温度!
按 Ctrl + S 保存,选择ESP32开发板设备,给文件命名(比如ds18b20.py),点击保存。

点击运行按钮,终端开始不断打印温度!
试试看:
- 传感器放在桌面上 → 终端显示室温(如25.5℃)
- 用手指捏住传感器 → 温度数值快速上升(人体体温≈36-37℃)
- 对着传感器吹一口气 → 温度会稍微上升
DS18B20的应用场景
| 应用场景 | 用途 |
|---|---|
| 智能温控风扇 | 温度超过阈值自动启动风扇 |
| 温室大棚监测 | 实时监测土壤/空气温度 |
| 热水器温度显示 | 显示热水当前温度 |
| 多点测温系统 | 多个传感器并联,监测不同位置 |
| 智能家居环境监测 | 监测室内温度,联动空调控制 |
全程回顾
| 步骤 | 操作 | 效果 |
|---|---|---|
| 找到课程 | 文档→课程→ESP32→ESP32+MicroPython→温度传感器 | 了解DS18B20 |
| 认识传感器 | 了解一线总线和测温范围 | 知道-55℃~125℃的测温范围 |
| 动手接线 | VDD→3.3V, GND→GND, DQ→GPIO13 | 硬件就位 |
| 打开代码 | 点击“打开”按钮 | 代码进入编辑器 |
| 保存运行 | Ctrl+S → 选择ESP32 → 运行 | 终端实时打印温度 |
| 测试灵敏度 | 用手指捏住传感器 | 温度快速上升! |
如果你对本节课感兴趣,去官网(www.dounao.cn)下载逗脑IDE,准备好相关配件,跟着课件走一遍。
有任何问题或建议,欢迎在评论区留言告诉我们。

73

被折叠的 条评论
为什么被折叠?



