笔记 Arduino ESP8266 DS18B20温度报警

DS18B20实物图

DS18B20是常用的数字温度传感器,其输出的是数字信号,具有体积小,硬件开销低,抗干扰能力强,精度高的特点

DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯

工作电压范围为3.0 V至5.5 V ,测量温度范围为-55 ° C至+125 ℃ ”

PDF文档参考链接:http://www.alldatasheet.com/datasheet-pdf/pdf/433921/MAXIM/DS18B20.html

蜂鸣器(推荐使用有源蜂鸣器)

ESP8266开发板(NodeMCU)

 代码一:读取DS18B20温度数值

//要先安装这两个头文件
#include <OneWire.h>    
#include <DallasTemperature.h>


#define ONE_WIRE_BUS 2  // DQ接ESP8266引脚D4(GPIO2)

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

void setup(void)
{
  Serial.begin(115200);
  sensors.begin();
}

void loop(void)
{
  sensors.requestTemperatures(); // 发送命令获取温度
  Serial.print("Temp: ");
  Serial.print(sensors.getTempCByIndex(0));
  Serial.println(" *C");
  delay(500);
}

运行截图

代码二:温度区间判断蜂鸣器自动报警

//要先安装这两个头文件
#include <OneWire.h>
#include <DallasTemperature.h>

#define ONE_WIRE_BUS 0  // DQ接ESP8266引脚D3(GPIO0)
#define PIN_BEEP 15     // 蜂鸣器接ESP8266引脚D8(GPIO15)


unsigned long previousMillis = 0; //定义延时函数
const long interval = 1000;     //定义延时长度1000ms

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

void setup(void)
{
  Serial.begin(115200);
  sensors.begin();
  pinMode(PIN_BEEP, OUTPUT);        // 蜂鸣器引脚初始化
}

void loop(void)
{
  sensors.requestTemperatures();               // 发送命令获取温度
  double data = sensors.getTempCByIndex(0) ;   //用于接收存储温度值

  //定义函数延时
  unsigned long currentMillis = millis();

  if (currentMillis - previousMillis >= interval) {
    previousMillis = currentMillis;
    Serial.print("Temp: ");     // 串口输出温度
    Serial.print(data);         // 串口输出温度值
    Serial.println("*C");
  }

  //温度报警程序
  if (data > 25 || data < 20  ) {    //  如果温度大于25或小于20,蜂鸣器响
    digitalWrite(PIN_BEEP, HIGH);    //打开蜂鸣器
    delay(20);
  }
  else {                             // 如果温度在25-20度之间,关闭蜂鸣器
    digitalWrite(PIN_BEEP, LOW);     //关闭蜂鸣器
  }
}

  • 6
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Arduino ESP8266是一种基于开源硬件的微控制器开发平台,它结合了Arduino的易用性和WiFi模块ESP8266的无线通信功能。而DS18B20是一种数字温度传感器,它采用单总线接口进行通信,并且能够提供高精度和稳定性的温度测量结果。 在使用Arduino ESP8266DS18B20进行温度监测时,首先需要将DS18B20连接到Arduino ESP8266的引脚上。通常情况下,将DS18B20的VCC引脚连接到Arduino的5V引脚,将GND引脚连接到Arduino的GND引脚,将DS引脚连接到Arduino的数字引脚(如D2)。然后,我们需要使用适当的库来与DS18B20进行通信,例如OneWire和DallasTemperature库。 在编写程序时,我们首先需要包含所需的库。然后,可以设置OneWire对象来与DS引脚进行通信,并创建DallasTemperature对象以进行温度传感器的初始化。 接下来,在主循环中,我们可以通过调用ds18b20.requestTemperatures()方法来请求温度传感器进行温度测量。然后,可以使用ds18b20.getTempCByIndex(0)方法获取测量结果(索引0表示只有一个传感器连接)。 最后,我们可以将测量结果通过串口通信输出,或者通过WiFi模块将温度数据发送到云平台或移动应用程序。 除了温度测量,Arduino ESP8266还可以与其他传感器和执行器配合使用,以实现各种应用。例如,我们可以将温度数据实时显示在LCD屏幕上,或者通过继电器控制加热器或风扇来调节环境温度。 总之,通过结合Arduino ESP8266DS18B20,我们可以实现简单但有效的温度监测系统,从而在各种应用中实现温度控制和数据记录等功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值