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); }