Правильная проводка 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, аналоговый датчик влажности почвы и аналоговый светочувствительный резистор.
@Cowboy_Patrick, 👍-1
Обсуждение1 ответ
Я не проверял ваш код, но у вас определенно проблема с проводкой.
Есть две основные проблемы.
- Ваш Vcc подключен к выходу данных DS18B20. Это означает, что вы никогда не прочитаете ничего, кроме логического «высокого» уровня выходных данных.
- Не следует подключать резистор 4k7 таким образом. См. схему ниже, как это должно быть подключено. Вы также можете настроить вывод данных с внутренним подтягиванием, чтобы вам не требовалось внешнее подтягивание.
Примерно так это должно выглядеть.
- Установка значения float до двух знаков после запятой
- esp32, platformio A fatal error occurred: Packet content transfer stopped (received 8 bytes) *** [upload] Error 2
- Какой тип разъема использует система GROVE?
- Как выбрать альтернативные контакты I2C на ESP32?
- Драйверы для чипа последовательного порта CH9102X
- Как преобразовать форматированный оператор print в строковую переменную?
- ESP32 - "Детектор Браунаута был активирован" при запуске Wi-Fi
- Питание esp32cam от аккумулятора
Пожалуйста, используйте пустой прямоугольник, если вы не можете найти подходящие схематические символы вместо случайных компонентов., @StarCat
Вы должны скептически относиться к соединению двух контактов устройства вместе :) если бы это было правильно, производитель сам мог соединить эти контакты внутри устройства, и одного из контактов там не было бы., @Sim Son