DS18B20温湿度传感器模块
简介
常用模块DS18B20温湿度传感器,可检测实时温度
简介:常用模块DS18B20温湿度传感器,可检测实时温度开源协议
:GPL 3.0
描述
**DS18B20温湿度传感器模块**
通过Arduino OneWire库和DallasTemperature库实现简单驱动
目标板为ESP32 S3 代码如下,来自网络
// #include //可以不引入,因为DallasTemperature.h中已经引入了OneWire.h
#include
#define ONE_WIRE_BUS 4 //1-wire数据总线连接在IO4
OneWire oneWire(ONE_WIRE_BUS); //声明
DallasTemperature sensors(&oneWire); //声明
void setup(void)
{
Serial.begin(115200);
Serial.println("");
sensors.begin(); //初始化总线
sensors.setWaitForConversion(false); //设置为非阻塞模式
}
unsigned long previousMillis = 0; //毫秒时间记录
const long interval = 1000; //时间间隔
void loop(void)
{
//以下段落相当于每秒读取前次温度,并发起新一次温度转换
unsigned long currentMillis = millis(); //读取当前时间
if (currentMillis - previousMillis >= interval) //如果和前次时间大于等于时间间隔
{
previousMillis = currentMillis; //更新时间记录
float tempC = sensors.getTempCByIndex(0); //获取索引号0的传感器摄氏温度数据
if (tempC != DEVICE_DISCONNECTED_C) //如果获取到的温度正常
{
Serial.print("\n当前温度是: ");
Serial.print(tempC);
Serial.println(" ℃");
}
Serial.println("发起温度转换");
sensors.requestTemperatures(); //发起新的温度转换
}
delay(20);
Serial.print(".");
}
评论