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