发作品
专业版

DS18B20温湿度传感器模块

2.2k
0
0
0
简介:常用模块DS18B20温湿度传感器,可检测实时温度
2023电赛训练营-电赛常用模块设计作业
开源协议:GPL 3.0
创建时间:2023-05-17 22:01:03更新时间:2023-05-26 17:15:20

描述

**DS18B20温湿度传感器模块**

 

通过Arduino  OneWire库和DallasTemperature库实现简单驱动

 

目标板为ESP32 S3 代码如下,来自网络

 

// #include <OneWire.h> //可以不引入,因为DallasTemperature.h中已经引入了OneWire.h
#include <DallasTemperature.h>

#define ONE_WIRE_BUS 4               //1-wire数据总线连接在IO4
OneWire oneWire(ONE_WIRE_BUS);       //声明
DallasTemperature sensors(&oneWire); //声明

void setup(void)
{
  Serial.begin(115200);
  Serial.println("");

  sensors.begin(); //初始化总线
  sensors.setWaitForConversion(false); //设置为非阻塞模式
}

unsigned long previousMillis = 0; //毫秒时间记录
const long interval = 1000;       //时间间隔
void loop(void)
{
  //以下段落相当于每秒读取前次温度,并发起新一次温度转换
  unsigned long currentMillis = millis();         //读取当前时间
  if (currentMillis - previousMillis >= interval) //如果和前次时间大于等于时间间隔
  {
     previousMillis = currentMillis; //更新时间记录

    float tempC = sensors.getTempCByIndex(0); //获取索引号0的传感器摄氏温度数据
    if (tempC != DEVICE_DISCONNECTED_C)       //如果获取到的温度正常
    {
      Serial.print("\n当前温度是: ");
      Serial.print(tempC);
      Serial.println(" ℃");
    }

    Serial.println("发起温度转换");
    sensors.requestTemperatures(); //发起新的温度转换
  }

  delay(20);
  Serial.print(".");
}

ZOVbjMZ6HWJRnCo1AxN684zAxJnIRQQC6H7RuqLD.png

 

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

附件

序号文件名称下载次数
暂无数据
克隆工程
分享
0
0
添加到专辑
侵权投诉
工程成员
全部评论(1
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程