https://blog.csdn.net/Naisu_kun/article/details/88420357
超过温度报警


// #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);
}
浙公网安备 33010602011771号