首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >esp32从ds18b20获取温度读数

esp32从ds18b20获取温度读数
EN

Stack Overflow用户
提问于 2021-12-21 21:29:35
回答 1查看 401关注 1票数 0

我在使用esp32和达拉斯ds18B20温度传感器时遇到了一些问题,因为我无法从它们中得到读数。

esp32是一款DOIT ESP32 devkit v1,传感器是穿过孔的标准型号和/或有1-1.5米电缆的传感器,而且是水密的。

我怀疑这是esp32的库问题,因为与arduino uno,mini等相同的libs工作很好。电缆连接已经检查了很多次。我使用了在arduino IDE中安装的以下库:

作者Paul诉2.3.6 (https://www.pjrc.com/teensy/td_libs_OneWire.html)

有人能给我指出一套成功的图书馆吗?

编辑:这里有一个类似的问题:ESP32: dsb1820 temperature sensor giving constant negative 127 reading,但我不认为它已经解决了。

以下是我的包含和引脚定义:

代码语言:javascript
复制
/************************* Dallas Temperature probes ********************************/
    #include <OneWire.h>
    #include <DallasTemperature.h>
    const int oneWireBus = 26;     // GPIO5 in esp32
    const int TEMPERATURE_PRECISION = 12; //12bit precision 0.01 steps

电阻和设置是相同的。

EN

回答 1

Stack Overflow用户

发布于 2021-12-27 23:02:52

我不知道为什么26岁。尝试:

代码语言:javascript
复制
const int oneWireBus = 5;     // GPIO5 in esp32

完整代码:

代码语言:javascript
复制
#include <OneWire.h>
#include <DallasTemperature.h>
const int oneWireBus = 5;     // GPIO5 in esp32
const int TEMPERATURE_PRECISION = 12; //12bit precision 0.01 steps
OneWire onewire(oneWireBus);
DallasTemperature sensors(&onewire);

void setup(){
  Serial.begin(9600);
  sensors.begin();
}
void loop(){
  sensors.requestTemperatures();
  temperature = sensors.getTempCByIndex(0);
  Serial.println(temperature);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70441795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档