第17章 DS18B20温度传感器实验

第十七章 DS18B20温度传感器实验

1. DS18B20介绍

相信没有电子爱好者不知道 DS18B20 的, DS18B20 是常用的数字温度传感器, 其输出的是数字信号, 具有体积小, 硬件开销低, 抗干扰能力强, 精度高, 多点组网的特点。 DS18B20 数字温度传感器接线方便, 封装成后可应用于多种场合, 如管道式, 螺纹式, 磁铁吸附式, 不锈钢封装式, 型号多种多样

温度范围-55℃~+125℃, 在-10~+85℃时精度为±0.5℃; 电压范围: 3.0~ 5.5V; DS18B20 支持多点组网功能, 多个 DS18B20 可以并联在唯一的三线上, 实现组网多点测温

DS18B20 不同封装外观实物如下图所示:

屏幕截图 2024 08 11 092957

2. 硬件设计

本实验使用到硬件资源如下:

  • DS18B20温度传感器

  • ESP32 GPIO

DS18B20模块电路如下:

屏幕截图 2024 08 11 093154

由图可知, J2 端子的 DS18B20 脚为 DS18B20 温度传感器控制口, 可将该引脚与 ESP32 的 GPIO 连接。

本章实验使用 ESP32 的 IO13 引脚, 接线如下所示:

屏幕截图 2024 08 11 093240

3. 软件设计

3.1 MicroPython函数使用

ESP32 的 MicroPython 固件集成了单总线模块 onewire 和 DS18B20 模块ds18x20, 因此我们可以直接使用。 说明如下:

屏幕截图 2024 08 11 093410

屏幕截图 2024 08 11 093438

使用方法如下:

屏幕截图 2024 08 11 093457

3.2 代码分析

from machine import Pin
import time
import onewire
import ds18x20

ds18x20 = ds18x20.DS18X20(onewire.OneWire(Pin(13))) # 定义DS18B20控制对象

if __name__ == '__main__':
    roms = ds18x20.scan() # 扫描DS18B20传感器地址
    print("DS18B20 found !")
    while True:
        ds18x20.convert_temp() # 温度转换
        time.sleep(1)
        for rom in roms:
            print("DS18B20 temperature: %.2f °C" % ds18x20.read_temp(rom))

2024.8.22 第一次修订,后期不再维护

posted @ 2024-08-23 09:05  hazy1k  阅读(8)  评论(0编辑  收藏  举报