Правильная проводка ESP32 DS18B20

Я хочу подключить DS18B20 к моему недавно купленному Heltec ESP32 LoRa (V2). Для начального тестирования я использовал стандартный код:

#include "heltec.h"
#include <OneWire.h>
#include <DallasTemperature.h>

OneWire ds(14);
DallasTemperature sensors(&ds);

void getDS18B20values()
{
  Serial.print(" Requesting therms...");
  sensors.requestTemperatures();
  Serial.println("DONE");

  uint8_t count = sensors.getDeviceCount();
  for (int i = 0; i < count; i++)
  {
    Serial.print("Temperature " + String(i) + "is: " + String(sensors.getTempCByIndex(i)));
  }

  delay(1000);
}


void setup()
{

  //WIFI Kit серии V1 не поддерживает управление Vext
  Heltec.begin(
      true /*DisplayEnable Enable*/,
      true /*Heltec.LoRa Disable*/,
      true /*Serial Enable*/,
      true /*PABOOST Enable*/,
      868E6/*long BAND*/);

  sensors.begin(); // инициализируем термодатчики
}


void loop()
{
  getDS18B20values();

  delay(1500);
}

Вот краткая схема, которую я разработал с помощью дизайнера, предоставленного stackexchange. Не все запчасти были в наличии, пришлось немного импровизировать. Я надеюсь, что это достаточно точно.

схема

Еще одна странность заключается в том, что если я все это подключу, то смогу запустить ESP, но не смогу прошить на него какое-либо новое программное обеспечение, потому что оно не реагирует. Поэтому я предполагаю, что это проблема с проводкой, код должен быть в порядке, но я все равно опубликовал его. Я тестировал его с несколькими датчиками DS18B20. Некоторое время назад на Arduino они все еще работали. У меня больше опыта работы с ардуино, чем с ESP. Есть ли какие-либо различия в отношении проводки, с которыми я должен быть осторожен?

Изменить: у меня уже есть несколько датчиков, подключенных к ESP, BH1750, DHT11, аналоговый датчик влажности почвы и аналоговый светочувствительный резистор.

, 👍-1

Обсуждение

Пожалуйста, используйте пустой прямоугольник, если вы не можете найти подходящие схематические символы вместо случайных компонентов., @StarCat

Вы должны скептически относиться к соединению двух контактов устройства вместе :) если бы это было правильно, производитель сам мог соединить эти контакты внутри устройства, и одного из контактов там не было бы., @Sim Son


1 ответ


1

Я не проверял ваш код, но у вас определенно проблема с проводкой.

Есть две основные проблемы.

  1. Ваш Vcc подключен к выходу данных DS18B20. Это означает, что вы никогда не прочитаете ничего, кроме логического «высокого» уровня выходных данных.
  2. Не следует подключать резистор 4k7 таким образом. См. схему ниже, как это должно быть подключено. Вы также можете настроить вывод данных с внутренним подтягиванием, чтобы вам не требовалось внешнее подтягивание.

Примерно так это должно выглядеть.

схема

,