物联网AI MicroPython传感器学习 之 DS18B20温度传感器

学物联网,来万物简单IoT物联网!!在这里插入图片描述

一、产品简介

DS18B20是一款极具性价比的数字温度传感器,包括测量水温和空气的两种温度传感器,无需再增加外围电路即可直接使用,开发者可以使用同一套代码获取两款传感器的温度。
image.png
引脚定义

  • 红线:3.0V-5.5V
  • 黑线:接地
  • 黄线:数据线

image.png
引脚定义

  • VCC:3.3V
  • DQ:数据线
  • GND:接地

二、技术参数

1、水温探测传感器

  • 供电电压:3.0V-5.5V
  • 接口:支持1-Wire
  • 精度范围:正负0.5°C(在工作温度-10°C~+85°C下)
  • 工作温度:-55°C~+125°C
  • 分辨率:9-12位可调分辨率
  • 尺寸:不锈钢外壳(6mm*50mm),引线长度50CM

2、空气温度传感器

  • 供电电压:3.0V-5.5V
  • 数据接口:支持1-Wire
  • 高度精度:正负0.5°C(温度在-10°C~85°C下);正负2°C(温度在-10°C~85°C下)
  • 工作温度:-55°C~+125°C
  • 分辨率:9-12位可调分辨率
  • 尺寸:21mm*10mm

三、软件接口

DS18B20(gpioObj,resolution) - 创建DS18B20驱动对象

  • 函数原型:

ds18b20Obj = DS18B20(gpioObj , resolution)

  • 参数说明:
参数类型必选参数?说明
gpioObjPin传入Pin对象
resolutionNumber默认分辨率12
参数范围(9-12)
  • 返回值:
    DS18B20对象成功,返回DS18B20对象;DS18B20对象创建失败,抛出Exception
  • 示例代码:
import ds18b20  #温度驱动库
from machine import Pin

gpioObj = Pin(2)
ds18b20Obj=ds18b20.DS18B20(gpioObj,12)
print("ds18b20 inited!")
  • 输出:
ds18b20 inited!

getTemperature - 测量温度

  • 函数功能:
    量测空气或水的温度并返回测量结果
  • 函数原型:

DS18B20.getTemperature()

  • 参数说明:
  • 返回值:
    成功返回温度测量结果(数据类型:浮点型;单位:摄氏度);失败抛出Exception
  • 示例:
import ds18b20  #温度驱动库
from machine import Pin
from utime

gpioObj = Pin(2)
ds18b20Obj=ds18b20.DS18B20(gpioObj,12)
print("ds18b20 inited!")

while True:
    readtemp = ds18b20Obj.getTemperature()
    print("temperature is ", readtemp, "°C")
    utime.sleep(1)
  • 输出:
ds18b20 inited!
temperature is 25.3°C
temperature is 26.1°C
temperature is 25.7°C

四、接口案例

  • 代码:
# Python代码
import ds18b20  #温度驱动库
from machine import Pin
from utime

gpioObj = Pin(2) #GPIO2->Data
ds18b20Obj=ds18b20.DS18B20(gpioObj,12)
print("ds18b20 inited!")

while True:
    readtemp = ds18b20Obj.getTemperature()
    print("temperature is ", readtemp, "°C")
  • 输出:
ds18b20 inited!
temperature is 25.3°C
temperature is 26.1°C
temperature is 25.7°C

五、工作原理

DS18B20内部结构如下图所示,主要由4部分组成:温度传感器、64位ROM、非挥发的温度报警触发器TH和TI、配置寄存器。DS18B20只有一个数据输入输出口,属于单总线专用芯片之一。DS18B20工作时被测温度值直接以“单总线”的数字方式传输,大大提高了系统的抗干扰能力。其内部采用在线温度测量技术,测量范围为55125°C,在-1085℃时,精度为±0.5°C。每个DS18B20在出厂时都已具有唯一的64位序列号,因此一条总线上可以同时挂接多个DS18B20,而不会出现混乱现象。另外用户还可自设定非易失性温度报警上下限值TH和TL(掉电后依然保存)。DS18B20在完成温度变换后,所测温度值将自动与存储在TH和TL内的触发值相比较,如果测温结果高于TH或低于TL, DS18B20内部的告警标志就会被置位,表示温值超出了测量范围,同时还有报警搜索命令识别出温度超限的DS18B20。
image.png
当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。单片机可通过单线接口读到该数据,读取时高位在后、低位在前,数据格式以0.0625°C/LSB形式表示。温度值格式如下图所示。符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变换为原码,再计算十进制值。
image.png
如下表是对应的一部分温度值。
image.png
想要了解更多的请参考参考文献!

参考文献及购买链接

[1] DS18B20温度传感器原理
[2] DS18B20温度传感器中文数据手册参考
[3] DS18B20水温传感器购买链接
[4] DS18B20空气传感器购买链接

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值