DS18B20温湿度传感器模块 - 嘉立创EDA开源硬件平台

编辑器版本 ×
标准版

1、简单易用,可快速上手

2、流畅支持300个器件或1000个焊盘以下的设计规模

3、支持简单的电路仿真

4、面向学生、老师、创客

专业版

1、全新的交互和界面

2、流畅支持超过3w器件或10w焊盘的设计规模,支持面板和外壳设计

3、更严谨的设计约束,更规范的流程

4、面向企业、更专业的用户

专业版 DS18B20温湿度传感器模块

简介:常用模块DS18B20温湿度传感器,可检测实时温度

开源协议: GPL 3.0

(未经作者授权,禁止转载)

已参加:2023电赛训练营-电赛常用模块设计作业

创建时间: 2023-05-17 22:01:03
更新时间: 2023-05-26 17:00:03
描述

**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

 

设计图
原理图
1 /
PCB
1 /
未生成预览图,请在编辑器重新保存一次
工程视频/附件
暂无
工程成员
侵权投诉
相关工程
换一批
加载中...
添加到专辑 ×

加载中...

温馨提示 ×

是否需要添加此工程到专辑?

温馨提示
动态内容涉嫌违规
内容:
  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 技术支持

  • 开源平台公众号