下载安装库:

  1. "OneWire" By Paul Stoffregen

IMG-NPC-202607-019.png

  1. "DallasTemperature" By Miles Burton

IMG-NPC-202607-018.png

演示代码:

#include <OneWire.h>
#include <DallasTemperature.h>

// 数据线连接到 Arduino 的 D2 引脚
#define ONE_WIRE_BUS 2

// 创建一个单总线对象,用于与单总线设备通信
OneWire oneWire(ONE_WIRE_BUS);

// 将单总线对象传递给 DallasTemperature 库
DallasTemperature sensors(&oneWire);

void setup() {
  // 初始化串口通信,波特率为 9600
  Serial.begin(9600);
  Serial.println("DS18B20 温度传感器测试...");

  // 初始化传感器
  sensors.begin();
}

void  loop() {
  // 向总线上的所有传感器发送温度转换指令
  sensors.requestTemperatures(); 
  
  // 读取索引为 0 的传感器温度(如果只有一台,那就是 0)
  float tempC = sensors.getTempCByIndex(0);

  // 检查读取是否成功(如果没接上拉电阻,可能会返回 -127)
  if(tempC == DEVICE_DISCONNECTED_C) {
    Serial.println("错误:未找到 DS18B20 传感器,请检查接线!");
  } else {
    Serial.print("当前温度: ");
    Serial.print(tempC);
    Serial.println(" ℃");
  }

  // 每隔 1 秒读取一次
  delay(1000);
}