ESP32: датчик температуры dsb1820, дающий постоянное отрицательное значение 127 - PullRequest
1 голос
/ 12 апреля 2020

Я пытаюсь получить показание температуры с помощью одного датчика температуры dsb1820, подключенного к микроконтроллеру esp32. Датчик подключен к GPIO-4 модуля esp32. Я намереваюсь отправить показания температуры в облако.

Проблема, с которой я сталкиваюсь, состоит в том, что показания температуры всегда дают значение -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);
}

1 Ответ

1 голос
/ 12 апреля 2020

Проверьте ваши кабели и:

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

и это должен быть средний контакт датчика (см. Мои графики c)

Connections to ESP32 - RESISTOR!

РЕДАКТИРОВАТЬ DevKit не имеет вывода 4, либо вы используете GPIO4 (4 на плате), который находится в Arduino 24 НО

Следующее связывание контакты: 0, 2, 4, 5 (ВЫСОКИЙ во время загрузки), 12 (НИЗКИЙ во время загрузки) и 15 (ВЫСОКИЙ во время загрузки) используются для перевода ESP32 в режим начальной загрузки или перепрошивки. Не подключайте периферийные устройства к этим контактам! Если вы это сделаете, у вас могут возникнуть проблемы при попытке загрузить код, fla sh или сбросить плату.

Подключитесь к 32 (GPIO7 или D0 на печатной плате), поскольку это безопасно для тестирования

Если у вас неправильный или нет / неправильный резистор, он даст вам -127 (или вы убили датчик / это был DOA).

...