【发布时间】:2020-07-25 02:04:08
【问题描述】:
我正在尝试使用连接到 esp32 微控制器的单个 dsb1820 温度传感器来获取温度读数。传感器连接到 esp32 的 GPIO-4。我打算将温度读数发送到云端。
我面临的问题是温度读数总是-127。
我在网上某处读到,当 dsb1820 返回 -127 时,表示传感器未连接。
我是否使用了错误的引脚来连接传感器?
#include "OneWire.h"
#include "DallasTemperature.h"
#include <WiFi.h>
#define WIFI_SSID "SSID"
#define WIFI_PASSWORD "PASSWORD"
OneWire oneWire(4);
DallasTemperature tempSensor(&oneWire);
void setup(void)
{
Serial.begin(115200);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("Connecting to Wi-Fi");
while (WiFi.status() != WL_CONNECTED)
{
Serial.print(".");
delay(300);
}
Serial.println();
Serial.print("Connected with IP: ");
Serial.println(WiFi.localIP());
Serial.println();
tempSensor.begin();
}
void loop(void)
{
tempSensor.requestTemperaturesByIndex(0);
Serial.print("Temperature: ");
Serial.print(tempSensor.getTempCByIndex(0));
Serial.println(" C");
delay(2000);
}
【问题讨论】:
-
这样有趣的读物通常是因为短路 - 当我发生这种情况时,是因为数据线在电源上短路。
-
@HaydenEastwood,对于 DS18B20 不需要,这通常意味着 OP 缺少 Vcc 和 DS18B20 输出之间所需的电阻或电阻值错误。
标签: arduino microcontroller sensors esp32