• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Nodemcu не стартует при подключении DS18B20

Mach

New member
Реализую управление газовым котлом на сабже. Структура примерно такая: модули датчиков, модуль управления котлом, сервер.
Модуль управления котлом состоит из Nodemcu и подключенного к нему блока 4 реле. В такм виде все работает, но мне захотелось добавить контроль температуры теплоносителя. Подключил к плате термодатчик DS18B20, залил скетч, плата стартовала, полет нормальный. При отключении от компьютера, плата уже не стартует самостоятельно. Откидываю термодатчик - плата снова работает нормально.
В чем может быть проблема? Спасибо.
 

gerkimuyda

New member
Питания достаточно? У меня на входе Vin 5в и несколько датчиков спокойно питаются через встроенный ams1117. Если подать 3.3v на Vin, а не на V3 - то после ams1117 оно просядет и плате может не хватать... Датчики на отдельном питании? или на паразитном?
 

Mach

New member
А датчик не на GPIO15 случайно?
Нет, на 4. Но проблема именно при подаче питания.
Питания достаточно? У меня на входе Vin 5в и несколько датчиков спокойно питаются через встроенный ams1117. Если подать 3.3v на Vin, а не на V3 - то после ams1117 оно просядет и плате может не хватать... Датчики на отдельном питании? или на паразитном?
Питаю платку по USB от мобильной зарядки на 750 мА. Питание датчиков отдельное, снимаю с платы. Реле питаются с вывода VU +5, а датчик с вывода 3.3.
 

gerkimuyda

New member
При отключении от компьютера, плата уже не стартует самостоятельно.
Что пишет в служебной инфе на 74880? Как встроенный светодиод себя ведет? Что происходит по нажатию reset? Если все дополнительное отключить и оставить только ds18b20 - плата их видит?

пс: это просто наводящие вопросы, чтобы вы локализировали проблему, а также более понятнее описали, что у вас не работает. Может просто в розетку БП не вставили?
---------------
Провожу спиритические сеансы гадания по ножкам процессора, каплям припоя, разводам от флюса. Также вызываю духа макетной платы и отлавливаю барабашек по скайпу. Ритуалы таинственного освящения светодиодом по фотошопу. Предоплата возврату не подлежит.
 
Последнее редактирование:

Mach

New member
Ого ) Проверю по всем пунктам. А 74880 это куда? )
З.Ы. БП вставил, зуб даю ))

З.З.Ы. 74880 я так понял это скорость порта? Скетч выставляет скорость 115200 и при старте репортит туда полученный IP. Так вот после заливки скетча в монитор данные попадают. При последующем выкл/вкл - нет. Ну и в сети устройства нет.
 
Последнее редактирование:

gerkimuyda

New member
Перед стартом прошивки, сам модуль (его SDK) выводит техническую инфу на скорости 74880. В частности, там есть такой параметр, как boot mode, который указывает в каком режиме находится модуль (программирование или старт из флешки и т.д.). Что он пишет? Или, если он ничего не пишет, значит и модуль не стартует вообще.
Если стартует - определите место, до куда прошивка работает, а где падает:
По программе поставьте вывод информации для отладки, например:
Serial.print("\r\n 1-start");
...
Serial.print("\r\n 2-init pins");
...
Serial.print("\r\n 3-ds18b20 read devices address");
...
Serial.print("\r\n 4-ds18b20 read temperatures);
...
Serial.print("\r\n 5-init wifi);
...
Serial.print("\r\n 6-switch relay);
А потом смотрите, до куда доходит нормально, а где начинает виснуть. Например, до 5 доходит и виснет. Если закомментировать wifi init - все остальное работает, а если включить wifi init, но выключить relay - тоже работает, тогда значит relay с wifi не дружат. Возможно по питанию просадка идет. В общем - локализуем от большего к меньшему и копаем, почему не работает. Вдруг, при переносе с макетки на основное место работы модуля вы просто ноги датчика перепутали? Или там БП дает помехи по питанию... много разных причин, но круг их поиска можно сузить, точнее локализовав проблему.
 
Последнее редактирование:
  • Like
Реакции: Mach

kab

New member
74880 я так понял это скорость порта? Скетч выставляет скорость 115200
До начала выполнения скетча (и выставления скорости скетчем) в порт на скорости 74880 загрузчик выдает свою "загрузочную" инфу. На другой скорости это представляется мусором. А там может быть что-то полезное для разбора Вашей проблемы... Так что попытайтесь выставить указанную скорость и поймать вывод при проблемной загрузке.
 
  • Like
Реакции: Mach

Mach

New member
Понял. Проверю и это. Только вопрос, как проверить реакцию на подачу питания (с reset все понятно)? Получается, питание и подключение происходит по USB. Пока нет подключения - нет и порта. Попробовать вставить провод, дождаться появления порта и быстро вызвать монитор?
 

kab

New member
Понял. Проверю и это. Только вопрос, как проверить реакцию на подачу питания (с reset все понятно)? Получается, питание и подключение происходит по USB. Пока нет подключения - нет и порта. Попробовать вставить провод, дождаться появления порта и быстро вызвать монитор?
По моему, вывод в порт буферизуется - поэтому проблемы быть не должно. Единственно - скорость установить зарание - до разрыва питания
 
  • Like
Реакции: Mach

Mach

New member
друг, при переносе с макетки на основное место работы модуля вы просто ноги датчика перепутали? Или там БП дает помехи по питанию... много разных причин, но круг их поиска можно сузить, точнее локализовав проблему.
Да я уже на основном месте пробовал - не статрует именно при подключении датчика. Вернее, стартует, но только один раз после заливки скетча. Может, амперный БП подкинуть?
 

gerkimuyda

New member
Только вопрос, как проверить реакцию на подачу питания (с reset все понятно)? Получается, питание и подключение происходит по USB.
Тут поможет не встроенный порт usb, а внешняя платка USB2UART типа такой:

Только подключаем GND, RX, TX, а питание берем от БП.
 

Сергей_Ф

Moderator
Команда форума
@Mach что подробнее? Загляните в документацию, gpio0 управляет режимом загрузки esp. Если на нем висит реле, то на нем 0 скорее всего, а это режим прошивки. Для работы должен быть + во время включения.
 

gerkimuyda

New member
От состояния GPIO0 зависит режим старта модуля (программирования или загрузка), это выводится в техн.информации 74880, что я вам писал проверить. Там все видно, в каком режиме модуль. Если он в программировании - надо менять ногу или исправлять схему. Еще я просил релюшки отключить и проверить без них.

(upd: Я хотел написать про релюшки, но забыл, когда строчил текст с сообщениями отладки. Суть в том, что все лишнее отключается от модуля и постепенно подключается с проверкой работоспособности. Так с компами поступают, когда они не стартуют: отключаются все шлейфы внутри, убираются лишние платы и включаеся комп, если работает - начинаем по очереди подключать платы, винты и т.д. - так и находим проблему или прогоняем "барабашку")
 
Последнее редактирование:

kab

New member
@Сергей_Ф
там же NodeMCU - вроде на них дополнительно не надо подтяжек?
Или наоборот, если на датчике есть подтяжки - то они становятся лишними?
 
  • Like
Реакции: Mach
Сверху Снизу