DS18B20 虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点。今天XIAOFEIYU(TM)就来实验一下使用ESP32连接DS18B20数字温度传感器模块。
DS18B20数字温度传感器模块一共有3个针脚,正负极加一个out数据接口。
连接传感器和ESP32组成测试电路:
编写测试程序:
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 5
OneWire oneWire(ONE_WIRE_BUS); // 初始单总线上的单总线设备
DallasTemperature sensors(&oneWire);
void setup(void) {
Serial.begin(9600);
sensors.begin();
}
void loop(void) {
Serial.print(" 读取温度...");
sensors.requestTemperatures(); // 向总线上设备发温度转换请求
Serial.print("温度: ");
Serial.println(sensors.getTempCByIndex(0));
delay(1000);
}
使用串口监控器查看结果:
从以上测试可以看出,该温度传感器模块测试的温度精度能达到2位小数,还是很精确的。获取温度需要有2个步骤,需要先发起查询请求,才能获取到数据。可以在总线中接入多个该类型的温度模块(最多8个),然后按照序号读取温度值即可。