第17章 DS18B20温度传感器实验
第十七章 DS18B20温度传感器实验
1. DS18B20介绍
相信没有电子爱好者不知道 DS18B20 的, DS18B20 是常用的数字温度传感器, 其输出的是数字信号, 具有体积小, 硬件开销低, 抗干扰能力强, 精度高, 多点组网的特点。 DS18B20 数字温度传感器接线方便, 封装成后可应用于多种场合, 如管道式, 螺纹式, 磁铁吸附式, 不锈钢封装式, 型号多种多样
温度范围-55℃~+125℃, 在-10~+85℃时精度为±0.5℃; 电压范围: 3.0~ 5.5V; DS18B20 支持多点组网功能, 多个 DS18B20 可以并联在唯一的三线上, 实现组网多点测温
DS18B20 不同封装外观实物如下图所示:
2. 硬件设计
本实验使用到硬件资源如下:
-
DS18B20温度传感器
-
ESP32 GPIO
DS18B20模块电路如下:
由图可知, J2 端子的 DS18B20 脚为 DS18B20 温度传感器控制口, 可将该引脚与 ESP32 的 GPIO 连接。
本章实验使用 ESP32 的 IO13 引脚, 接线如下所示:
3. 软件设计
3.1 MicroPython函数使用
ESP32 的 MicroPython 固件集成了单总线模块 onewire 和 DS18B20 模块ds18x20, 因此我们可以直接使用。 说明如下:
使用方法如下:
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 第一次修订,后期不再维护