零基础学ESP32:DS18B20温度传感器——给ESP32装上“体温计”!

前面我们学了感知姿态(倾斜传感器)、感知震动(震动传感器)——今天再来给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自带了onewireds18x20库,不用自己写底层驱动。

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,准备好相关配件,跟着课件走一遍。

有任何问题或建议,欢迎在评论区留言告诉我们。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值