arduino驱动dbs820温度

https://blog.csdn.net/Naisu_kun/article/details/88420357

超过温度报警

arduino驱动dbs820温度

arduino驱动dbs820温度

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

int relayPin = 5; //继电器引脚

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

void setup(void)
{
  Serial.begin(115200);
  Serial.println("");
  pinMode(relayPin, OUTPUT);
  sensors.begin(); //初始化总线
}

void loop(void)
{
 // Serial.println("发起温度转换");
  sensors.requestTemperatures(); //向总线上所有设备发送温度转换请求,默认情况下该方法会阻塞
 // Serial.println("温度转换完成");

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

    if(tempC>tem_alram)
      {
        Serial.println("继电器打开");
        digitalWrite(relayPin, HIGH);
      }
      else
      {
         Serial.println("继电器关闭");
         digitalWrite(relayPin, LOW);
      }
  }

 // delay(2000);
}

相关推荐