ESP32:dsb1820温度传感器给出恒定的负127读数

问题描述 投票:1回答:1

我正在尝试使用连接到esp32单片机的单个dsb1820温度传感器获得温度读数。传感器连接到esp32的GPIO-4。我打算将温度读数发送到云中。

我面临的问题是温度读数总是给出值-127。

我在网上某处阅读到,当dsb1820返回-127时,表明传感器未连接。

我使用错误的引脚连接传感器了吗?

esp32 pinout

#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);
}
arduino microcontroller sensor esp32
1个回答
1
投票

检查电缆和:

const int oneWireBus = 32;  // on pin 32 /GPIO7/D0 on pcb (a 4.7K resistor is necessary)
OneWire oneWire(oneWireBus);

并且应该是传感器的中间引脚(请参见我的图形)

Connections to ESP32 - RESISTOR!

编辑DevKit没有引脚4,您可以使用Arduino 4 BUT中的GPIO4(pcb上为4)

以下捆扎针:0、2、4、5(启动时为高),12(低在启动期间)和15(启动期间为高)用于将ESP32放入引导加载程序或闪烁模式。不要将外设连接到这些引脚!如果这样做,您可能无法尝试上传代码,刷新或重置代码板。

连接到32(pcb上的GPIO7或D0),因为可以安全地进行测试

如果电阻错误或没有/ 错误电阻,它将给您-127(或者您杀死了传感器/这是DOA)。

© www.soinside.com 2019 - 2024. All rights reserved.